構築するもの
以下の機能を持つチャットシステムを構築します:- ユーザーの質問を受け付ける(チャット、API、または AI アシスタント経由)
- ナレッジベースから関連情報を検索する
- AI モデルを使用して、ドキュメントに基づいた正確な回答を生成する
- ソースの参照情報付きで回答を返す
前提条件
- Jinba Flow アカウント(こちらからサインアップ)
- アップロードするドキュメント — PDF、DOCX、またはテキストファイル
- Jinba Flow の基本概念(フロー、ステップ、ツール)の基本的な理解
コーディング経験は不要です。チャットパネルまたはグラフエディタを使用してシステム全体を構築できます。以下に示す YAML マニフェストは参考用であり、そのままコピーして使用できます。
アーキテクチャ概要
構築を始める前に、全体の仕組みを確認しましょう:パート 1: ナレッジベースのセットアップ
ステップ 1: ナレッジベースの作成
1
ストレージへ移動
ワークスペースのサイドバーで ストレージ をクリックし、ナレッジベース タブを選択します。

2
新しいナレッジベースを作成
ナレッジベースを作成 をクリックします。わかりやすい名前を入力してください(例:「製品ドキュメント」「社内FAQ」)。

3
ナレッジベース ID をメモ
作成後、ナレッジベース ID をメモしておきます。フローを構築する際に必要です。ナレッジベースの設定画面や URL で確認できます。

ステップ 2: ドキュメントのアップロード
1
ナレッジベースを開く
ストレージページから、作成したナレッジベースをクリックします。
2
ファイルをアップロード
ファイルをアップロード または ファイルを追加 をクリックし、PDF、DOCX、またはテキストファイルを選択します。

3
処理完了を待つ
ファイルは以下のパイプラインで自動的に処理されます:
すべてのファイルが 「完了」 ステータスを表示するまでお待ちください。

ステップ 3: 認証情報の設定
フローを構築する前に、必要なシークレットをワークスペースに保存します。1
認証情報ページへ移動
ワークスペースの認証情報ページを開きます。
2
シークレットを追加
パート 2: RAG フローの構築
チャットシステムを動かすワークフローを作成します。完全なマニフェスト
以下を YAML コーディングパネルに直接貼り付けできます:代替手順: エディタでフローを手動構築する
YAML を貼り付ける代わりに、各ノードを手動で追加して構築したい場合は、以下の手順に従ってください。1
Input Text ノードを追加する
ノードピッカーを開いて Input Text を検索し、グラフの最初のノードとして追加します。
追加後、ノード名を Receive Question に変更して、チュートリアルのマニフェストと揃えます。


2
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
3
OpenAI Invoke ノードを追加して設定する
Invoke ノードを追加し、
モデルバージョンを 
OPENAI_INVOKE を選択します。
gpt-4o に設定し、YAML 例にあるものと同じプロンプトを貼り付けて、取得したナレッジベースのコンテキストだけを使って回答するようにします。
4
Output Text ノードを追加して設定する
最後に Output Text ノードを追加します。
ノード名を Output Answer に変更し、値に以下を設定します:


ステップごとの解説
ステップ 1: 質問の受信(INPUT_TEXT)
INPUT_TEXT ツールはフローの入力パラメータを作成します。手動実行時にはテキストボックスが表示されます。API 経由で呼び出す場合は、リクエストボディのパラメータとなります。入力ツールの詳細を参照してください。
ステップ 2: ナレッジベースの検索(JINBA_VECTOR_SEARCH)
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 を使用する
フローのテスト
1
フローを実行
フローエディタの右上にある 実行 ボタンをクリックします。

2
テスト質問を入力
プロンプトが表示されたら、アップロードしたドキュメントで回答可能な質問を入力します。

3
結果を確認
実行結果を確認します。回答にはナレッジベースの情報が参照されているはずです。

パート 3: チャットインターフェースとしてデプロイ
RAG フローが動作確認できました。次はユーザーがアクセスできるようにします。Jinba App チャット
最適な用途:既製のチャット UI が必要なエンドユーザー向け
REST API
最適な用途:カスタムアプリケーションや外部連携
MCP ツール
最適な用途:AI アシスタント連携
オプション A: Jinba App チャット(推奨)
RAG フローを Jinba App のチャットコネクタとしてデプロイし、最もシンプルなエンドユーザー体験を提供します。1
フローを公開
フローエディタで 公開 ボタンをクリックします。「このワークフローを誰がトリガーしますか?」 というダイアログが表示されます:


My team を選択し、Continue → をクリックします。

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

3
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 でコネクタを開きます
4
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 など)で使用するためにコピー

5
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 エンドポイントとして公開し、カスタムアプリケーションで利用します。1
フローを公開
上記と同じ公開手順に従いますが、「このワークフローを誰がトリガーしますか?」ダイアログで Engineers を選択します。これにより、API アクセスに最適化されます。
2
API キーを取得
公開後、フローの設定画面から自動生成された API キーを確認します。

3
API を呼び出す
オプション C: MCP ツール(AI アシスタント連携)
RAG フローを Claude Desktop などの AI アシスタントのツールとして利用可能にします。1
MCP として公開
MCP を有効にしてフローを公開します。ワークスペース設定の MCP タブに移動します。

2
AI アシスタントを設定
3
AI アシスタントから使用
RAG フローがツールとして表示されます。AI アシスタントがナレッジベースを使って質問に回答できるようになります。
パート 4: 高度なパターン
クエリ精緻化による複数ステップ RAG
複雑な質問の場合、検索結果を改善する精緻化ステップを追加します:検索結果がない場合の処理
条件付き実行を使用して、ナレッジベースに関連コンテンツがない場合を適切に処理します:ナレッジベースの自動更新
スケジュールされたフローを作成して、ナレッジベースを新しいドキュメントで自動更新します:代替バックエンド
このチュートリアルでは Jinba ナレッジベースをメインで使用していますが、特定の要件を持つチーム向けに 2 つの追加バックエンドが利用可能です。バックエンドの選び方
代替 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 が回答を生成
セットアップ概要
1
Azure 接続の設定
ワークスペース設定で 外部ナレッジベース の設定に移動します。2 つのモードで接続できます:
2
Azure リソースのセットアップ
以下が必要です:
- インデックスが設定された Azure AI Search サービス
- ドキュメント保存用の Azure Data Lake Storage Gen2
- API キーまたは APIM サブスクリプションキー
- アップロードされたドキュメントを処理するインデクサーの設定
3
ドキュメントのアップロード
Jinba ワークスペース UI からドキュメントをアップロードします。ファイルは自動的に Azure Data Lake Storage に送信され、設定されたインデクサーが検索インデックスに処理します。
4
フローでの検索
検索ステップは、ワークスペースの外部ナレッジベース設定を使用します。正確なツールとパラメータはエンタープライズデプロイメントに依存します。
主要な設定項目
接続設定はワークスペースごとに UI で設定でき、環境変数はフォールバックとして機能します。
Azure AI Search の利点
- セマンティックランキング: Azure 内蔵のセマンティックランカーにより、結果の関連性が向上
- ハイブリッド検索: ベクトル検索とキーワード検索の組み合わせ
- 内蔵インデクサー: 様々なファイル形式からコンテンツを自動抽出・インデキシング
- エンタープライズコンプライアンス: データは Azure テナント内に保持
- Azure エコシステム連携: Azure OpenAI などの他の Azure サービスとの連携
チューニングとベストプラクティス
チャンキング設定
ファイルを追加する際、コンテンツに合わせてチャンクパラメータを調整します:類似度閾値ガイド
プロンプトエンジニアリングのコツ
- グラウンディングを明示: 提供されたコンテキストのみに基づいて回答するよう LLM に指示
- 引用を要求: ソースファイル名の参照を LLM に要求
- 不確実性への対応: コンテキストが不十分な場合に「わかりません」と回答するよう指示
- トーンの設定: ユースケースに合わせたペルソナの指示を追加(フォーマル、カジュアル、技術的)
次のステップ
ナレッジベースドキュメント
ナレッジベース管理、チャンキング、RAG パターンの詳細
ベクトル検索リファレンス
パラメータの完全なリファレンスと高度な検索例
Pinecone リファレンス
フィルタリングとリランキング対応の外部ベクトルデータベース
API リファレンス
REST API 経由でのフロー呼び出しの完全ガイド
MCP 連携
MCP 経由で AI アシスタントにフローを接続
Jinba App エージェント
RAG フローをエージェントにラップしてチャットを強化