概要
Jinba FlowのKnowledge機能は、RAG(Retrieval-Augmented Generation)システムを構築するための強力なベクトルデータベース機能を提供します。ナレッジベースを作成し、ドキュメントをアップロードし、意味検索を実行し、AI対応の質問応答をワークフローに統合できます。ナレッジベースとは?
ナレッジベースは、自動チャンキングとベクトル化でドキュメントを保存するベクトルデータベースです。意味検索機能を可能にし、完全一致ではなく意味に基づいて情報を見つけることができます。主な機能
- ドキュメントストレージ: PDF、DOCX、テキストファイル、その他の形式をアップロード
- 自動処理: ドキュメントは自動的にチャンク化され、ベクトル化されます
- 意味検索: 自然言語クエリを使用して関連情報を見つける
- RAGサポート: AI対応の質問応答システムの構築に最適
- ベクトル埋め込み: 高品質な埋め込みのためにOpenAIのtext-embedding-3-largeを使用
ナレッジベースの作成
- ワークスペースのサイドバーからストレージに移動
- ナレッジベースタブをクリック
- ナレッジベースを作成をクリック
- ナレッジベースの名前と説明を入力
- ナレッジベースが作成され、ファイルのアップロード準備が整います
ナレッジベースへのファイル追加
UIを使用
- ストレージページからナレッジベースを開く
- ファイルをアップロードまたはファイルを追加をクリック
- コンピュータからファイルを選択するか、URLを提供
- ファイルは自動的に処理されます:
- パース: ドキュメントからテキストコンテンツを抽出
- チャンキング: ドキュメントを管理可能なチャンクに分割(設定可能)
- 埋め込み: チャンクをベクトル埋め込みに変換
- インデックス化: 高速な類似検索のためにベクトルを保存
ワークフローを使用
JINBA_KNOWLEDGE_BASE_FILE_ADDツールを使用して、プログラムでナレッジベースにファイルを追加することもできます:
- pending: ファイルがアップロードされ、処理待ち
- processing: ファイルがチャンク化およびベクトル化中
- completed: ファイルが検索可能
- failed: 処理中にエラーが発生
ベクトル検索
ベクトル検索により、自然言語クエリを使用してナレッジベース全体で意味検索を実行できます。仕組み
- クエリベクトル化: 検索クエリがOpenAIのtext-embedding-3-largeを使用してベクトルに変換されます
- 類似検索: システムが類似したベクトルを持つチャンクを見つけます
- ランキング: 結果が類似度スコアでランク付けされます
- フィルタリング: 閾値以下の結果がフィルタリングされます
ベクトル検索の使用
- query: 自然言語検索クエリ
- knowledgeBaseId: 検索するナレッジベースのID
- topK: 返す結果の数(1-50、デフォルト: 3)
- threshold: 類似度の閾値(0-1、デフォルト: 0.3)
RAG(Retrieval-Augmented Generation)システムの構築
RAGは、ナレッジベースからの関連情報の取得とAI生成を組み合わせて、正確でコンテキストを理解した応答を作成します。RAGとは?
RAG(Retrieval-Augmented Generation)は、以下の技術です:- 取得: 意味検索を使用してナレッジベースから関連情報を取得
- 拡張: 取得したコンテキストでAIプロンプトを拡張
- 生成: クエリと取得したコンテキストの両方に基づいて応答を生成
ステップバイステップ: RAGシステムの構築
ステップ1: ナレッジベースの作成
- ストレージ → ナレッジベースに移動
- 新しいナレッジベースを作成(例:「会社のドキュメント」)
- 後で使用するためにナレッジベースIDをメモ
ステップ2: ドキュメントのアップロード
- ナレッジベースを開く
- 関連するドキュメント(PDF、DOCX、テキストファイル)をアップロード
- 処理が完了するまで待つ(ファイルは「完了」ステータスを表示)
ステップ3: RAGワークフローの構築
ベクトル検索とAI生成を組み合わせたワークフローを作成:ステップ4: シークレットの設定
- ワークスペースの認証情報に移動
- Jinba APIトークンをシークレットとして追加
- ナレッジベースIDをシークレットとして保存(またはワークフローで直接使用)
高度なRAGパターン
改良付きマルチステップRAG
ナレッジベースファイルの管理
ファイルの更新
JINBA_KNOWLEDGE_BASE_UPDATEツールを使用して、ナレッジベース内の既存ファイルを更新できます:
- FULL_REFRESH: ファイル全体を新しいコンテンツで置き換えます
- その他の更新モードは設定によって利用可能な場合があります
チャンキング設定
ナレッジベースにファイルを追加する際、ドキュメントのチャンキング方法を設定できます:- chunkSize: 各チャンクのサイズ(トークン単位、デフォルト: 512、最大: 8192)
- chunkOverlap: チャンク間のオーバーラップ(トークン単位、デフォルト: 128、最大: 2048)
- chunkingIdentifier: チャンク境界を識別するために使用される文字列(デフォルト: “\n\n”)
- 小さなチャンク(256-512): 正確な情報取得に適している
- 大きなチャンク(1024-2048): コンテキストの維持に適している
- オーバーラップ: チャンク境界を越えてコンテキストを維持するのに役立つ
RAGのベストプラクティス
- 高品質なナレッジベース: 高品質で関連性の高いドキュメントをアップロード
- 適切なチャンキング: 適切なチャンクサイズを使用(通常512-1024トークン)
- 閾値の調整: ユースケースに基づいて類似度の閾値を調整
- TopKの選択: 包括的な回答のために十分なコンテキストを取得(通常3-10チャンク)
- プロンプトエンジニアリング: 取得したコンテキストを使用するようにAIに明確に指示するプロンプトを作成
- 出典の帰属: 透明性と検証のために常に出典を引用
- エラーハンドリング: 関連情報が見つからない場合を処理
RAGのユースケース
- カスタマーサポート: 製品ドキュメントを使用して質問に回答
- 内部ナレッジ: 会社のポリシーと手順にアクセス
- リサーチアシスタント: 研究論文とドキュメントを検索
- 法的文書Q&A: 契約と法的文書に関する質問に回答
- 技術ドキュメント: 開発者が技術ドキュメントで情報を見つけるのを支援
- 製品情報: 製品仕様に関する質問に回答
関連機能
- ワークスペース - ワークスペース管理とファイルストレージについて学ぶ
- ベクトル検索ツール - 詳細なベクトル検索ドキュメント
- ナレッジベースツール - ナレッジベース管理ツール