0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dify x TiDB:分散ベクトルストレージでナレッジパイプラインを強化

Posted at

著者:Zhenan Sun(デジタルマーケティング)
DifyはTiDB Vectorをナレッジパイプラインに統合し、分散型のセマンティック検索をサポートします。これにより、知識検索のスピードを高速化するとともに、プロダクションレベルのAIアプリケーション向けにスケーラブルなコンテキスト管理機能を提供します。

このたび、Difyのナレッジパイプラインが高性能な分散ベクトルデータベースであるTiDB Vectorと正式に統合されました。これにより、大規模かつインテリジェントな検索を実現するためのデータ基盤がさらに強化されています。

数週間前にリリースしたナレッジパイプラインは、開発者がモジュール型のRAG(検索拡張生成)ワークフローを構築できるように設計されています。ナレッジの取り込み、解析、埋め込み(テキストを数値ベクトルに変換する処理)などを簡単に行えます。また、TiDB Vectorとの連携により、解析済みのテーブル、抽出したエンティティ、埋め込み済みのテキストなど、処理済みのナレッジをAgent WorkflowやChatflowといった下流のAIアプリケーションでシームレスに再利用できるようになりました。

knowledge_pipeline_v2.png

TiDB Vectorの特徴

TiDB Vectorは統合型の高性能データレイヤーを提供します。これにより、ハイブリッドSQL+ベクトル検索をサポートし、開発者はSQL構文によって構造化メタデータのフィルタリングを行い、その後、セマンティック検索を実施できます。その結果、TiDBの分散アーキテクチャによるエンタープライズレベルのスケーラビリティと高い安定性を維持しながら、コンテキストを考慮した正確な応答を実現します。

TiDB Vectorの設定手順

前提条件

  • Difyをローカル環境にデプロイ済みであること
  • TiDB Cloudアカウントを作成済みであること

1. TiDB CloudでTiDB Vectorクラスタを作成する

  • TiDB Cloudでクラスタを作成し、必要な情報を設定します。

  • スキーマを初期化します:

    create schema dify;
    
  • クラスタの接続情報(HOST、PORT=4000、USER、PASSWORD、DATABASE)を控えておきます。

tidb1.jpg

2. Dify環境設定

docker-compose.yaml内のapiおよびworkerの環境変数を、TiDBクラスタの情報に基づいて設定します。

```yaml
# ベクトルストアにTiDB Vectorを指定
VECTOR_STORE: tidb_vector

# 以下はTiDBクラスタ情報で置き換えてください
TIDB_VECTOR_HOST: gateway01.eu-central-1.prod.aws.tidbcloud.com
TIDB_VECTOR_PORT: 4000
TIDB_VECTOR_USER: <your_user>.root
TIDB_VECTOR_PASSWORD: <your_password>
TIDB_VECTOR_DATABASE: dify
```

3. パイプラインでのデータアップロードおよび処理

Difyのナレッジパイプラインを活用することで、非構造化データの処理からTiDBへの保存までを自動化できます。データの抽出、チャンク分割、埋め込み生成、ベクトル保存などの処理が、設定に応じて自動的に実行されます。

セットアップを容易にするため、すぐに使える複数の処理テンプレートを用意しています。一般的なシナリオ向けに設計された事前構築済みテンプレートを選択するだけで、一般文書の効率的な処理や、長文テクニカルマニュアルに適した階層型(親子)チャンク分割、表形式データからの構造化Q&A抽出などに対応可能です。

pipeline.png

ナレッジベース作成とデータアップロードを完了すると、テキストやメタデータ、生成された埋め込みを含む処理済みコンテンツが安全にTiDBに保存されます。

tidb2.jpg

4. RAGアプリケーションワークフロー構築

ナレッジベースが整ったら、それをコンテキストとしてエージェントベースのワークフローを構築できます。TiDB Vectorに蓄積されたデータはKnowledge Node(知識検索ノード)を通じてコンテキスト情報として取得でき、LLM(大規模言語モデル)の推論精度向上に寄与します。

  • Knowledge Retrieval Node(知識検索ノード)
    TiDB Vectorをベクトルストレージとして使用する場合、既存のナレッジベースをデータソースとして選択します。ユーザーが質問を送信すると、このノードは自動的に質問をベクトルに変換し、TiDBで類似度検索を実行して最も関連性の高い情報を取得します。

  • LLM Node(LLMノード)
    TiDBから取得された情報はLLMノードに渡され、モデルがより正確で、コンテキストを考慮し、実世界のデータに根ざした応答を生成できるようになります。

DifyのビジュアルワークフロービルダーとTiDBの分散ベクトルストレージを組み合わせることで、AIアシスタント、ドキュメントQ&Aシステムやナレッジボットを効率的に設計・導入・スケールできます。このモジュール式かつエンドツーエンドなアプローチによって、RAG開発のあらゆるステップを単一の統合ワークフロー内でスムーズに遂行可能です。

TiDBについて

TiDBはオープンソースの分散SQLデータベースで、企業のデジタルトランスフォーメーションを支援します。分散アーキテクチャにより、多様な業務負荷に対応できるスケーラブルなデータ基盤を実現しています。従来は異なるデータ処理ニーズに複数の技術スタックが必要でしたが、TiDBはリアルタイムHTAP(ハイブリッドトランザクショナル・アナリティカル処理)プラットフォームとしてそれらを統合し、トランザクション処理と分析処理の双方をサポートします。

Difyについて

DifyはAIネイティブなアプリケーション開発を支援するオープンソースプラットフォームです。アプリケーションの作成から運用・管理までを簡単かつ一元的に行えます。拡張性に優れたプラグインエコシステムにより、開発者や企業はAI機能の統合やワークフローのカスタマイズも容易です。AI導入の障壁を低減し、ユーザーがより効率的かつ柔軟にインテリジェントアプリケーションを構築できる環境を提供しています。

公式サイト | GitHub | ドキュメント | X(旧Twitter) | Discord | Linkedin | Youtube

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?