Documentation Index
Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
Use this file to discover all available pages before exploring further.
Jinba FlowのKnowledge機能は、RAG(Retrieval-Augmented Generation)システムを構築するための強力なベクトルデータベース機能を提供します。ナレッジベースを作成し、ドキュメントをアップロードし、意味検索を実行し、AI対応の質問応答をワークフローに統合できます。
ナレッジベースとは?
ナレッジベースは、自動チャンキングとベクトル化でドキュメントを保存するベクトルデータベースです。意味検索機能を可能にし、完全一致ではなく意味に基づいて情報を見つけることができます。
主な機能
- ドキュメントストレージ: PDF、DOCX、テキストファイル、その他の形式をアップロード
- 自動処理: ドキュメントは自動的にチャンク化され、ベクトル化されます
- 意味検索: 自然言語クエリを使用して関連情報を見つける
- RAGサポート: AI対応の質問応答システムの構築に最適
- ベクトル埋め込み: 高品質な埋め込みのためにOpenAIのtext-embedding-3-largeを使用
ナレッジベースの作成
- ワークスペースのサイドバーからストレージに移動
- ナレッジベースタブをクリック
- ナレッジベースを作成をクリック
- ナレッジベースの名前と説明を入力
- ナレッジベースが作成され、ファイルのアップロード準備が整います
ナレッジベースへのファイル追加
UIを使用
- ストレージページからナレッジベースを開く
- ファイルをアップロードまたはファイルを追加をクリック
- コンピュータからファイルを選択するか、URLを提供
- ファイルは自動的に処理されます:
- パース: ドキュメントからテキストコンテンツを抽出
- チャンキング: ドキュメントを管理可能なチャンクに分割(設定可能)
- 埋め込み: チャンクをベクトル埋め込みに変換
- インデックス化: 高速な類似検索のためにベクトルを保存
ワークフローを使用
JINBA_KNOWLEDGE_BASE_FILE_ADDツールを使用して、プログラムでナレッジベースにファイルを追加することもできます:
- id: add_file_to_kb
name: add_file_to_kb
tool: JINBA_KNOWLEDGE_BASE_FILE_ADD
config:
- name: token
value: "{{secrets.JINBA_API_TOKEN}}"
input:
- name: knowledgeBaseId
value: "{{secrets.KNOWLEDGE_BASE_ID}}"
- name: file
value: "https://example.com/document.pdf"
- name: filename
value: "document.pdf"
- name: executionMode
value: "SYNCHRONOUS"
- name: chunkerSettings
value:
chunkSize: 512
chunkOverlap: 128
chunkingIdentifier: "\\n\\n"
ファイル処理ステータス:
- pending: ファイルがアップロードされ、処理待ち
- processing: ファイルがチャンク化およびベクトル化中
- completed: ファイルが検索可能
- failed: 処理中にエラーが発生
ベクトル検索
ベクトル検索により、自然言語クエリを使用してナレッジベース全体で意味検索を実行できます。
仕組み
- クエリベクトル化: 検索クエリがOpenAIのtext-embedding-3-largeを使用してベクトルに変換されます
- 類似検索: システムが類似したベクトルを持つチャンクを見つけます
- ランキング: 結果が類似度スコアでランク付けされます
- フィルタリング: 閾値以下の結果がフィルタリングされます
ベクトル検索の使用
- id: search_kb
name: search_kb
tool: JINBA_VECTOR_SEARCH
config:
- name: token
value: "{{secrets.JINBA_API_TOKEN}}"
input:
- name: query
value: "認証の設定方法は?"
- name: knowledgeBaseId
value: "{{secrets.KNOWLEDGE_BASE_ID}}"
- name: topK
value: 5
- name: threshold
value: 0.3
パラメータ:
| パラメータ | 型 | 必須 | デフォルト | 説明 |
|---|
query | string | はい | - | 自然言語検索クエリ |
knowledgeBaseId | string | はい | - | 検索するナレッジベースのID |
topK | number | いいえ | 3 | 返す結果の数(1-50) |
threshold | number | いいえ | 0.3 | 類似度の閾値(0-1) |
RAG(Retrieval-Augmented Generation)システムの構築
RAGは、ナレッジベースからの関連情報の取得とAI生成を組み合わせて、正確でコンテキストを理解した応答を作成します。
RAGとは?
RAG(Retrieval-Augmented Generation)は、以下の技術です:
- 取得: 意味検索を使用してナレッジベースから関連情報を取得
- 拡張: 取得したコンテキストでAIプロンプトを拡張
- 生成: クエリと取得したコンテキストの両方に基づいて応答を生成
このアプローチにより、AIモデルは訓練データのみに依存するのではなく、独自のドキュメントとデータを使用して質問に答えることができます。
ステップバイステップ: RAGシステムの構築
ステップ1: ナレッジベースの作成
- ストレージ → ナレッジベースに移動
- 新しいナレッジベースを作成(例:「会社のドキュメント」)
- 後で使用するためにナレッジベースIDをメモ
ステップ2: ドキュメントのアップロード
- ナレッジベースを開く
- 関連するドキュメント(PDF、DOCX、テキストファイル)をアップロード
- 処理が完了するまで待つ(ファイルは「完了」ステータスを表示)
ステップ3: RAGワークフローの構築
ベクトル検索とAI生成を組み合わせたワークフローを作成:
- id: user_question
name: user_question
tool: INPUT_TEXT
input:
- name: description
value: "質問を入力してください"
- id: search_knowledge_base
name: search_knowledge_base
tool: JINBA_VECTOR_SEARCH
config:
- name: token
value: "{{secrets.JINBA_API_TOKEN}}"
input:
- name: query
value: "{{steps.user_question.result}}"
- name: knowledgeBaseId
value: "{{secrets.KNOWLEDGE_BASE_ID}}"
- name: topK
value: 5
- name: threshold
value: 0.3
- id: generate_answer
name: generate_answer
tool: ANTHROPIC_INVOKE
config:
- name: version
value: claude-3-5-sonnet-20241022
input:
- name: prompt
value: |
ナレッジベースからの以下の情報に基づいて、ユーザーの質問に答えてください。
質問: {{steps.user_question.result}}
関連情報:
{{#each steps.search_knowledge_base.result.results}}
**出典: {{file.filename}}** (関連度: {{score}})
{{chunk.content}}
---
{{/each}}
上記の情報に基づいて、包括的で正確な回答を提供してください。
情報に十分な詳細が含まれていない場合は、その旨を伝えてください。
ステップ4: シークレットの設定
- ワークスペースの認証情報に移動
- Jinba APIトークンをシークレットとして追加
- ナレッジベースIDをシークレットとして保存(またはワークフローで直接使用)
高度なRAGパターン
改良付きマルチステップRAG
- id: initial_search
name: initial_search
tool: JINBA_VECTOR_SEARCH
config:
- name: token
value: "{{secrets.JINBA_API_TOKEN}}"
input:
- name: query
value: "{{steps.user_question.result}}"
- name: knowledgeBaseId
value: "{{secrets.KNOWLEDGE_BASE_ID}}"
- name: topK
value: 10
- id: refine_query
name: refine_query
tool: ANTHROPIC_INVOKE
config:
- name: version
value: claude-3-5-sonnet-20241022
input:
- name: prompt
value: |
初期検索結果に基づいて、より具体的な検索クエリを生成してください。
元のクエリ: {{steps.user_question.result}}
初期結果:
{{#each steps.initial_search.result.results}}
- {{file.filename}}: {{chunk.content}}
{{/each}}
より具体的な情報を見つけるための改良された検索クエリを生成してください。
- id: refined_search
name: refined_search
tool: JINBA_VECTOR_SEARCH
config:
- name: token
value: "{{secrets.JINBA_API_TOKEN}}"
input:
- name: query
value: "{{steps.refine_query.result.text}}"
- name: knowledgeBaseId
value: "{{secrets.KNOWLEDGE_BASE_ID}}"
- name: topK
value: 5
- name: threshold
value: 0.4
- id: final_answer
name: final_answer
tool: ANTHROPIC_INVOKE
config:
- name: version
value: claude-3-5-sonnet-20241022
input:
- name: prompt
value: |
改良された検索結果を使用して、ユーザーの質問に答えてください。
質問: {{steps.user_question.result}}
改良された検索結果:
{{#each steps.refined_search.result.results}}
**{{file.filename}}** (スコア: {{score}})
{{chunk.content}}
{{/each}}
詳細で正確な回答を提供してください。
ナレッジベースファイルの管理
ファイルの更新
JINBA_KNOWLEDGE_BASE_UPDATEツールを使用して、ナレッジベース内の既存ファイルを更新できます:
- id: update_kb_file
name: update_kb_file
tool: JINBA_KNOWLEDGE_BASE_UPDATE
config:
- name: token
value: "{{secrets.JINBA_API_TOKEN}}"
input:
- name: knowledgeBaseId
value: "{{secrets.KNOWLEDGE_BASE_ID}}"
- name: knowledgeBaseFileId
value: "{{secrets.FILE_ID}}"
- name: fileUrl
value: "https://example.com/updated-document.pdf"
- name: updateType
value: "FULL_REFRESH"
- name: executionMode
value: "SYNCHRONOUS"
更新タイプ:
- 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: 契約と法的文書に関する質問に回答
- 技術ドキュメント: 開発者が技術ドキュメントで情報を見つけるのを支援
- 製品情報: 製品仕様に関する質問に回答
関連機能