自社のドキュメントに基づいて質問に回答する AI チャットシステムを構築しましょう。このチュートリアルでは、ナレッジベースの作成、RAG ワークフローの構築、チャットインターフェースとしてのデプロイまで、すべてのステップを順を追って説明します。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.
構築するもの
以下の機能を持つチャットシステムを構築します:- ユーザーの質問を受け付ける(チャット、API、または AI アシスタント経由)
- ナレッジベースから関連情報を検索する
- AI モデルを使用して、ドキュメントに基づいた正確な回答を生成する
- ソースの参照情報付きで回答を返す
前提条件
- Jinba Flow アカウント(こちらからサインアップ)
- アップロードするドキュメント — PDF、DOCX、またはテキストファイル
- Jinba Flow の基本概念(フロー、ステップ、ツール)の基本的な理解
コーディング経験は不要です。チャットパネルまたはグラフエディタを使用してシステム全体を構築できます。以下に示す YAML マニフェストは参考用であり、そのままコピーして使用できます。
アーキテクチャ概要
構築を始める前に、全体の仕組みを確認しましょう:パート 1: ナレッジベースのセットアップ
ステップ 1: ナレッジベースの作成
ステップ 2: ドキュメントのアップロード
ステップ 3: 認証情報の設定
フローを構築する前に、必要なシークレットをワークスペースに保存します。認証情報ページへ移動
ワークスペースの認証情報ページを開きます。
シークレットを追加
以下のシークレットを追加します:
| シークレット名 | 値 | 用途 |
|---|---|---|
JINBA_API_TOKEN | Jinba API トークン | ベクトル検索の認証 |
KNOWLEDGE_BASE_ID | ステップ 1 のナレッジベース ID | 検索対象のナレッジベースを指定 |
ANTHROPIC_API_KEY | Anthropic API キー (任意) | Claude ベースの生成用 |
OpenAI API キーがなくても、
OPENAI_INVOKE ツールは Jinba API クレジットで利用できます。パート 2: RAG フローの構築
チャットシステムを動かすワークフローを作成します。完全なマニフェスト
以下を YAML コーディングパネルに直接貼り付けできます:代替手順: エディタでフローを手動構築する
YAML を貼り付ける代わりに、各ノードを手動で追加して構築したい場合は、以下の手順に従ってください。Input Text ノードを追加する
ノードピッカーを開いて Input Text を検索し、グラフの最初のノードとして追加します。
追加後、ノード名を Receive Question に変更して、チュートリアルのマニフェストと揃えます。


Vector Search ノードを追加して設定する
最初のノードの下にある + コネクタをクリックし、Vector Search を検索して 
次のように設定します:
JINBA_VECTOR_SEARCH ノードを追加します。
-
Token:
JINBAFLOW_WS_API_KEYシークレット -
Query:
{{steps.user_question.result}} - Knowledge Base ID: あなたのナレッジベース ID
-
Top K:
5 -
Threshold:
0.3
OpenAI Invoke ノードを追加して設定する
Invoke ノードを追加し、
モデルバージョンを 
OPENAI_INVOKE を選択します。
gpt-4o に設定し、YAML 例にあるものと同じプロンプトを貼り付けて、取得したナレッジベースのコンテキストだけを使って回答するようにします。
ステップごとの解説
ステップ 1: 質問の受信(INPUT_TEXT)
INPUT_TEXT ツールはフローの入力パラメータを作成します。手動実行時にはテキストボックスが表示されます。API 経由で呼び出す場合は、リクエストボディのパラメータとなります。入力ツールの詳細を参照してください。
ステップ 2: ナレッジベースの検索(JINBA_VECTOR_SEARCH)
| パラメータ | 値 | 理由 |
|---|---|---|
topK | 5 | 最も関連性の高い 5 つのチャンクを返す |
threshold | 0.3 | 関連度の低い結果をフィルタリング |
needs: [user_question] により、検索はユーザーの質問を受け取ってから実行されます。詳しくはステップモジュールオプションをご覧ください。
ステップ 3: 回答の生成(LLM)
{{steps.search_knowledge.results | dump}} テンプレートは検索結果をプロンプトに注入します。gpt-4o モデルにより、高品質な回答を生成します。変数とテンプレートで詳しく学べます。
ステップ 4: 回答の出力(OUTPUT_TEXT)
OUTPUT_TEXT はフローの最終出力を定義します。チャットインターフェースでは、このステップの出力がユーザーに表示されます。
OpenAI の代わりに Anthropic Claude を使用する
OpenAI の代わりに Anthropic Claude を使用する
OpenAI の代わりに Google Gemini を使用する
OpenAI の代わりに Google Gemini を使用する
フローのテスト
パート 3: チャットインターフェースとしてデプロイ
RAG フローが動作確認できました。次はユーザーがアクセスできるようにします。Jinba App チャット
最適な用途:既製のチャット UI が必要なエンドユーザー向け
REST API
最適な用途:カスタムアプリケーションや外部連携
MCP ツール
最適な用途:AI アシスタント連携
オプション A: Jinba App チャット(推奨)
RAG フローを Jinba App のチャットコネクタとしてデプロイし、最もシンプルなエンドユーザー体験を提供します。フローを公開
フローエディタで 公開 ボタンをクリックします。「このワークフローを誰がトリガーしますか?」 というダイアログが表示されます:
My team を選択し、Continue → をクリックします。

| オプション | 説明 | 選択するタイミング |
|---|---|---|
| My team | 誰でも使えるシンプルなインターフェース | ✅ チャット UI パス(オプション A)にはこれを選択 |
| Engineers | コードから API 経由で呼び出す | API パス(オプション B)にはこれを選択 |
| Automatic | スケジュールまたはイベント発生時に実行 | スケジュール/イベント駆動フロー向け |

Jinba Flow → Jinba App の関係を理解する
「My team」を選択すると、Jinba Flow(構築する場所)と Jinba App(チームが使用する場所)が別々の製品であることを説明する教育画面が表示されます:
- 設計上の分離 — Jinba Flow はビルダー、Jinba App はチームが使うチャットインターフェース
- エンタープライズグレードのセキュリティ — Jinba App は独自の認証とアクセス制御を持つ
- チームにとってシンプル — コード不要、複雑さなし — 慣れ親しんだチャットインターフェース

MCP を有効化して Jinba App に接続
Create an MCP ダイアログが表示されます。フローがチャットツールとしてどのように表示されるかのプレビューが表示されます:
-
@フロー名と説明のチャットプレビュー - チャット体験を試せる Demo ボタン
-
Enable MCP for this flow トグル

- Workspace Token — 認証に使用
- Connection Snippet — MCP クライアント(Claude Desktop、Cursor など)用の JSON 設定
- Connect with Jinba App ボタン — クリックして Jinba App でコネクタを開きます
MCP 接続設定の構成
MCP を有効にすると、MCP → Connect タブに移動します。このページにはいくつかの重要なセクションがあります:
- Your Token — ワークスペース認証トークン(秘密にしてください)
- 1-Click Connect — Connect をクリックして、このフローを Jinba App に即座にリンク
- Visibility — デフォルトは「Unlisted」(アクセスルールのユーザーのみ使用可能)。全ワークスペースメンバーに表示したい場合は「Listed」に変更
- Access Scope Settings — JWT クレームを使用してアクセス権を設定(例:メールホワイトリスト)
-
MCP Configuration JSON Snippet — 外部 MCP クライアント(Claude Desktop、Cursor など)で使用するためにコピー

RAG システムとチャット
Jinba App を開き、新しいチャットを開始します:
詳しくは Jinba Flow コネクタをご覧ください。
- 新しいチャット をクリック
- チャット入力の下にあるコネクタアイコン(⚙️)をクリック
- 「Search agents and connectors…」ドロップダウンで、ワークスペースの MCP コネクタ(例:「Tutorial Demonstrations MCP … 1 tool」)を見つける
- MCP コネクタをクリックして、RAG Chat Demo ツールが一覧に表示されることを確認
- ツールを選択 — チャット入力バーにタグとして表示されます
-
質問を入力して Enter を押す

user_question)と Result(RAG レスポンスのコンテンツ)が表示され、その後に AI のフォーマット済み回答が続きます。
オプション B: REST API
RAG フローを API エンドポイントとして公開し、カスタムアプリケーションで利用します。API を呼び出す
オプション C: MCP ツール(AI アシスタント連携)
RAG フローを Claude Desktop などの AI アシスタントのツールとして利用可能にします。AI アシスタントを設定
パート 4: 高度なパターン
クエリ精緻化による複数ステップ RAG
複雑な質問の場合、検索結果を改善する精緻化ステップを追加します:検索結果がない場合の処理
条件付き実行を使用して、ナレッジベースに関連コンテンツがない場合を適切に処理します:ナレッジベースの自動更新
スケジュールされたフローを作成して、ナレッジベースを新しいドキュメントで自動更新します:代替バックエンド
このチュートリアルでは Jinba ナレッジベースをメインで使用していますが、特定の要件を持つチーム向けに 2 つの追加バックエンドが利用可能です。バックエンドの選び方
| 機能 | Jinba ナレッジベース | Pinecone | Azure AI Search |
|---|---|---|---|
| セットアップの複雑さ | ⭐ 最もシンプル | ⭐⭐ 中程度 | ⭐⭐⭐ 高度 |
| 外部依存 | なし | Pinecone アカウント | Azure サブスクリプション |
| ドキュメントアップロード | UI + API | API のみ | Azure ポータル / ADLS |
| メタデータフィルタリング | ❌ | ✅ リッチなフィルタ構文 | ✅ OData フィルタ |
| 名前空間の分離 | ❌ | ✅ | ✅ インデックス |
| リランキング | ❌ | ✅ 内蔵モデル | ✅ セマンティックランカー |
| インデクサー / パイプライン | 自動 | 手動 | ✅ 内蔵インデクサー |
| コスト | Jinba プランに含まれる | 別途 Pinecone 課金 | Azure 課金 |
| 最適な用途 | 大半のユースケース、クイックスタート | 高度な検索要件 | エンタープライズ / Azure ネイティブ組織 |
代替 A: Pinecone
メタデータフィルタリング、名前空間の分離、リランキングが必要な場合は、Pinecone をベクトルバックエンドとして使用します。Pinecone RAG マニフェスト
検索ステップを Pinecone に置き換えます:代替 B: Azure AI Search(エンタープライズ)
Azure エコシステムを既に利用しているエンタープライズ組織向けに、Jinba Flow は Azure AI Search を外部ナレッジベースバックエンドとしてサポートしています。高度なインデキシング、セマンティックランキング、Azure Data Lake Storage Gen2 との連携が可能です。仕組み
Azure AI Search 連携は、組み込みのナレッジベースとは異なる動作をします:- ドキュメントは Azure に保存 — Azure Data Lake Storage Gen2 にアップロード
- インデキシングは Azure が処理 — Azure AI Search のインデクサーがドキュメントを処理・インデキシング
- 検索クエリは Azure を経由 — 直接または Azure API Management (APIM) 経由
- 結果は Jinba Flow に返される — LLM が回答を生成
セットアップ概要
Azure 接続の設定
ワークスペース設定で 外部ナレッジベース の設定に移動します。2 つのモードで接続できます:
| モード | 使用するとき |
|---|---|
| APIM モード | Azure API Management 経由 — 本番環境に推奨 |
| ダイレクトモード | Azure AI Search に直接接続 — 開発用にシンプル |
Azure リソースのセットアップ
以下が必要です:
- インデックスが設定された Azure AI Search サービス
- ドキュメント保存用の Azure Data Lake Storage Gen2
- API キーまたは APIM サブスクリプションキー
- アップロードされたドキュメントを処理するインデクサーの設定
ドキュメントのアップロード
Jinba ワークスペース UI からドキュメントをアップロードします。ファイルは自動的に Azure Data Lake Storage に送信され、設定されたインデクサーが検索インデックスに処理します。
主要な設定項目
| 設定 | 説明 |
|---|---|
| エンドポイント URL | Azure AI Search または APIM エンドポイント |
| API キー | 認証キー |
| インデックス API パス | インデックス操作用のパス |
| 検索 API パス | 検索クエリ用のパス |
| ADLS API パス | ファイルストレージ操作用のパス |
| インデクサー名 | ファイルアップロード後にトリガーするインデクサー |
接続設定はワークスペースごとに UI で設定でき、環境変数はフォールバックとして機能します。
Azure AI Search の利点
- セマンティックランキング: Azure 内蔵のセマンティックランカーにより、結果の関連性が向上
- ハイブリッド検索: ベクトル検索とキーワード検索の組み合わせ
- 内蔵インデクサー: 様々なファイル形式からコンテンツを自動抽出・インデキシング
- エンタープライズコンプライアンス: データは Azure テナント内に保持
- Azure エコシステム連携: Azure OpenAI などの他の Azure サービスとの連携
チューニングとベストプラクティス
チャンキング設定
ファイルを追加する際、コンテンツに合わせてチャンクパラメータを調整します:| コンテンツタイプ | チャンクサイズ | オーバーラップ | 理由 |
|---|---|---|---|
| FAQ / 短い回答 | 256–512 | 64 | 精密で焦点を絞った検索 |
| 技術ドキュメント | 512–1024 | 128 | 精密さとコンテキストのバランス |
| 長文コンテンツ | 1024–2048 | 256 | 文脈の維持 |
類似度閾値ガイド
| 閾値 | 動作 | 使用するとき |
|---|---|---|
| 0.7–1.0 | 非常に厳密、ほぼ完全一致のみ | 正確な事実検索 |
| 0.4–0.7 | 高い関連性、密接に関連 | 大半の Q&A ユースケース |
| 0.2–0.4 | 中程度、周辺的な結果も含む | 探索的または広範な質問 |
| 0.0–0.2 | 非常に広範、多くの結果 | 本番環境には非推奨 |
プロンプトエンジニアリングのコツ
- グラウンディングを明示: 提供されたコンテキストのみに基づいて回答するよう LLM に指示
- 引用を要求: ソースファイル名の参照を LLM に要求
- 不確実性への対応: コンテキストが不十分な場合に「わかりません」と回答するよう指示
- トーンの設定: ユースケースに合わせたペルソナの指示を追加(フォーマル、カジュアル、技術的)
次のステップ
ナレッジベースドキュメント
ナレッジベース管理、チャンキング、RAG パターンの詳細
ベクトル検索リファレンス
パラメータの完全なリファレンスと高度な検索例
Pinecone リファレンス
フィルタリングとリランキング対応の外部ベクトルデータベース
API リファレンス
REST API 経由でのフロー呼び出しの完全ガイド
MCP 連携
MCP 経由で AI アシスタントにフローを接続
Jinba App エージェント
RAG フローをエージェントにラップしてチャットを強化
Jinba Toolbox









