Skip to main content
自社のドキュメントに基づいて質問に回答する AI チャットシステムを構築しましょう。このチュートリアルでは、ナレッジベースの作成、RAG ワークフローの構築、チャットインターフェースとしてのデプロイまで、すべてのステップを順を追って説明します。

構築するもの

以下の機能を持つチャットシステムを構築します:
  1. ユーザーの質問を受け付ける(チャット、API、または AI アシスタント経由)
  2. ナレッジベースから関連情報を検索する
  3. AI モデルを使用して、ドキュメントに基づいた正確な回答を生成する
  4. ソースの参照情報付きで回答を返す

前提条件

コーディング経験は不要です。チャットパネルまたはグラフエディタを使用してシステム全体を構築できます。以下に示す YAML マニフェストは参考用であり、そのままコピーして使用できます。

アーキテクチャ概要

構築を始める前に、全体の仕組みを確認しましょう:
このチュートリアルでは Jinba ナレッジベース をメインのバックエンドとして使用します。他のバックエンドについては、末尾の代替バックエンドをご覧ください。

パート 1: ナレッジベースのセットアップ

ステップ 1: ナレッジベースの作成

1

ストレージへ移動

ワークスペースのサイドバーで ストレージ をクリックし、ナレッジベース タブを選択します。ストレージ ナレッジベース画面
2

新しいナレッジベースを作成

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

ナレッジベース ID をメモ

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

ステップ 2: ドキュメントのアップロード

1

ナレッジベースを開く

ストレージページから、作成したナレッジベースをクリックします。
2

ファイルをアップロード

ファイルをアップロード または ファイルを追加 をクリックし、PDF、DOCX、またはテキストファイルを選択します。ナレッジベースへのファイルアップロード
3

処理完了を待つ

ファイルは以下のパイプラインで自動的に処理されます:すべてのファイルが 「完了」 ステータスを表示するまでお待ちください。ファイル処理ステータス
ファイルサイズによっては、処理に数分かかる場合があります。ファイルの処理が完了するまで次のステップに進まないでください。

ステップ 3: 認証情報の設定

フローを構築する前に、必要なシークレットをワークスペースに保存します。
1

認証情報ページへ移動

ワークスペースの認証情報ページを開きます。
2

シークレットを追加

以下のシークレットを追加します:
OpenAI API キーがなくても、OPENAI_INVOKE ツールは Jinba API クレジットで利用できます。

パート 2: RAG フローの構築

チャットシステムを動かすワークフローを作成します。

完全なマニフェスト

以下を YAML コーディングパネルに直接貼り付けできます:
最短ルートは上記の YAML マニフェストをそのまま貼り付ける方法です。ノードを視覚的に組み立てたい場合は、エディタ上で 4 つのノードを手動追加して設定することもできます。

代替手順: エディタでフローを手動構築する

YAML を貼り付ける代わりに、各ノードを手動で追加して構築したい場合は、以下の手順に従ってください。
1

Input Text ノードを追加する

ノードピッカーを開いて Input Text を検索し、グラフの最初のノードとして追加します。手動構築 - Input Text ノードを追加追加後、ノード名を Receive Question に変更して、チュートリアルのマニフェストと揃えます。手動構築 - Receive Question を設定
2

Vector Search ノードを追加して設定する

最初のノードの下にある + コネクタをクリックし、Vector Search を検索して JINBA_VECTOR_SEARCH ノードを追加します。手動構築 - Vector Search ノードを追加次のように設定します:
  • Token: JINBAFLOW_WS_API_KEY シークレット
  • Query: {{steps.user_question.result}}
  • Knowledge Base ID: あなたのナレッジベース ID
  • Top K: 5
  • Threshold: 0.3 手動構築 - Vector Search ノードを設定
3

OpenAI Invoke ノードを追加して設定する

Invoke ノードを追加し、OPENAI_INVOKE を選択します。手動構築 - OpenAI Invoke ノードを追加モデルバージョンを gpt-4o に設定し、YAML 例にあるものと同じプロンプトを貼り付けて、取得したナレッジベースのコンテキストだけを使って回答するようにします。手動構築 - OpenAI Invoke ノードを設定
4

Output Text ノードを追加して設定する

最後に Output Text ノードを追加します。手動構築 - Output Text ノードを追加ノード名を Output Answer に変更し、値に以下を設定します:
手動構築 - Output Text ノードを設定

ステップごとの解説

ステップ 1: 質問の受信(INPUT_TEXT

INPUT_TEXT ツールはフローの入力パラメータを作成します。手動実行時にはテキストボックスが表示されます。API 経由で呼び出す場合は、リクエストボディのパラメータとなります。入力ツールの詳細を参照してください。

ステップ 2: ナレッジベースの検索(JINBA_VECTOR_SEARCH

このステップはセマンティック検索を実行します。キーワードの完全一致ではなく、意味に基づいてコンテンツを検索します。 needs: [user_question] により、検索はユーザーの質問を受け取ってから実行されます。詳しくはステップモジュールオプションをご覧ください。
topK: 5threshold: 0.3 から始めましょう。回答にコンテキストが不足する場合は topK を増やし、関連性の低いコンテンツが含まれる場合は threshold を上げてください。詳しくはベクトル検索リファレンスをご覧ください。

ステップ 3: 回答の生成(LLM)

{{steps.search_knowledge.results | dump}} テンプレートは検索結果をプロンプトに注入します。gpt-4o モデルにより、高品質な回答を生成します。変数とテンプレートで詳しく学べます。

ステップ 4: 回答の出力(OUTPUT_TEXT

OUTPUT_TEXT はフローの最終出力を定義します。チャットインターフェースでは、このステップの出力がユーザーに表示されます。
生成ステップを以下に置き換えます:
詳しくは Anthropic ツールリファレンスをご覧ください。
生成ステップを以下に置き換えます:
詳しくは Gemini ツールリファレンスをご覧ください。

フローのテスト

1

フローを実行

フローエディタの右上にある 実行 ボタンをクリックします。グラフエディタでの RAG フロー
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 は独自の認証とアクセス制御を持つ
  • チームにとってシンプル — コード不要、複雑さなし — 慣れ親しんだチャットインターフェース
Got it, continue をクリックして MCP セットアップに進みます。Flow と App の関係説明画面
3

MCP を有効化して Jinba App に接続

Create an MCP ダイアログが表示されます。フローがチャットツールとしてどのように表示されるかのプレビューが表示されます:
  • @フロー名 と説明のチャットプレビュー
  • チャット体験を試せる Demo ボタン
  • Enable MCP for this flow トグル MCP 作成ダイアログ
Enable MCP for this flow トグルを必ずオンにしてください。これが Jinba Flow と Jinba App の間の接続を作成します — 「Connect with Jinba App」ボタンは有効化後にのみ表示されます。
有効化すると、追加オプションが表示されます:
  • Workspace Token — 認証に使用
  • Connection Snippet — MCP クライアント(Claude Desktop、Cursor など)用の JSON 設定
  • Connect with Jinba App ボタン — クリックして Jinba App でコネクタを開きます
MCP を有効にすると、AI アシスタント(Claude、Cursor など)からもこのフローをツールとして呼び出せるようになります — Jinba App チャット MCP ツールアクセスの両方を1つのトグルで取得できます。
詳しくは公開をご覧ください。
4

MCP 接続設定の構成

MCP を有効にすると、MCP → Connect タブに移動します。このページにはいくつかの重要なセクションがあります:
  1. Your Token — ワークスペース認証トークン(秘密にしてください)
  2. 1-Click ConnectConnect をクリックして、このフローを Jinba App に即座にリンク
  3. Visibility — デフォルトは「Unlisted」(アクセスルールのユーザーのみ使用可能)。全ワークスペースメンバーに表示したい場合は「Listed」に変更
  4. Access Scope Settings — JWT クレームを使用してアクセス権を設定(例:メールホワイトリスト)
  5. MCP Configuration JSON Snippet — 外部 MCP クライアント(Claude Desktop、Cursor など)で使用するためにコピー MCP Connect タブ
Jinba App でフローをツールとして利用するには、1-Click Connect ボタンを必ずクリックしてください。この手順を行わないと、MCP が有効でも Jinba App にツールが表示されません。
チームメンバーのメールアドレスを Access Scope Settings に追加して、彼らもこのツールを使えるようにしましょう。+ Add Rule をクリックしてメールルールを追加できます。
5

RAG システムとチャット

Jinba App を開き、新しいチャットを開始します:
  1. 新しいチャット をクリック
  2. チャット入力の下にあるコネクタアイコン(⚙️)をクリック
  3. 「Search agents and connectors…」ドロップダウンで、ワークスペースの MCP コネクタ(例:「Tutorial Demonstrations MCP … 1 tool」)を見つける
  4. MCP コネクタをクリックして、RAG Chat Demo ツールが一覧に表示されることを確認
  5. ツールを選択 — チャット入力バーにタグとして表示されます
  6. 質問を入力して Enter を押す コネクタ選択
ツールが自動的に実行されます — 展開可能なセクションに Argumentsuser_question)と Result(RAG レスポンスのコンテンツ)が表示され、その後に AI のフォーマット済み回答が続きます。Jinba App での RAG チャット
Auto Select モードも使用できます — Jinba App が質問に基づいて適切なツールを自動的に選択するため、毎回手動でコネクタを選択する必要がありません。
詳しくは Jinba Flow コネクタをご覧ください。
このコネクタにカスタム指示を組み合わせた Jinba App エージェントを作成することもできます。

オプション B: REST API

RAG フローを API エンドポイントとして公開し、カスタムアプリケーションで利用します。
1

フローを公開

上記と同じ公開手順に従いますが、「このワークフローを誰がトリガーしますか?」ダイアログで Engineers を選択します。これにより、API アクセスに最適化されます。
2

API キーを取得

公開後、フローの設定画面から自動生成された API キーを確認します。API キーの場所
3

API を呼び出す

Python の例:
非同期モードやエラーハンドリングの詳細は API リファレンスをご覧ください。

オプション C: MCP ツール(AI アシスタント連携)

RAG フローを Claude Desktop などの AI アシスタントのツールとして利用可能にします。
1

MCP として公開

MCP を有効にしてフローを公開します。ワークスペース設定の MCP タブに移動します。MCP 設定
2

AI アシスタントを設定

AI アシスタントの設定に Jinba Flow MCP サーバーを追加します:
詳しくは MCP ガイドをご覧ください。
3

AI アシスタントから使用

RAG フローがツールとして表示されます。AI アシスタントがナレッジベースを使って質問に回答できるようになります。

パート 4: 高度なパターン

クエリ精緻化による複数ステップ RAG

複雑な質問の場合、検索結果を改善する精緻化ステップを追加します:

検索結果がない場合の処理

条件付き実行を使用して、ナレッジベースに関連コンテンツがない場合を適切に処理します:

ナレッジベースの自動更新

スケジュールされたフローを作成して、ナレッジベースを新しいドキュメントで自動更新します:
このフローをスケジュールして、毎日または毎週実行できます。

代替バックエンド

このチュートリアルでは Jinba ナレッジベースをメインで使用していますが、特定の要件を持つチーム向けに 2 つの追加バックエンドが利用可能です。

バックエンドの選び方

代替 A: Pinecone

メタデータフィルタリング、名前空間の分離、リランキングが必要な場合は、Pinecone をベクトルバックエンドとして使用します。

Pinecone RAG マニフェスト

検索ステップを Pinecone に置き換えます:
次に、生成ステップを Pinecone の出力フォーマットに合わせます:
詳しくは Pinecone ツールリファレンスでインデックスの作成とドキュメントの upsert をご覧ください。

代替 B: Azure AI Search(エンタープライズ)

Azure エコシステムを既に利用しているエンタープライズ組織向けに、Jinba Flow は Azure AI Search を外部ナレッジベースバックエンドとしてサポートしています。高度なインデキシング、セマンティックランキング、Azure Data Lake Storage Gen2 との連携が可能です。
Azure AI Search 連携はエンタープライズ機能です。ワークスペースで有効にするには、Jinba 管理者または Jinba 営業チームにお問い合わせください。

仕組み

Azure AI Search 連携は、組み込みのナレッジベースとは異なる動作をします:
  1. ドキュメントは Azure に保存 — Azure Data Lake Storage Gen2 にアップロード
  2. インデキシングは Azure が処理 — Azure AI Search のインデクサーがドキュメントを処理・インデキシング
  3. 検索クエリは Azure を経由 — 直接または Azure API Management (APIM) 経由
  4. 結果は 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 サービスとの連携

チューニングとベストプラクティス

チャンキング設定

ファイルを追加する際、コンテンツに合わせてチャンクパラメータを調整します:

類似度閾値ガイド

プロンプトエンジニアリングのコツ

  1. グラウンディングを明示: 提供されたコンテキストのみに基づいて回答するよう LLM に指示
  2. 引用を要求: ソースファイル名の参照を LLM に要求
  3. 不確実性への対応: コンテキストが不十分な場合に「わかりません」と回答するよう指示
  4. トーンの設定: ユースケースに合わせたペルソナの指示を追加(フォーマル、カジュアル、技術的)

次のステップ

ナレッジベースドキュメント

ナレッジベース管理、チャンキング、RAG パターンの詳細

ベクトル検索リファレンス

パラメータの完全なリファレンスと高度な検索例

Pinecone リファレンス

フィルタリングとリランキング対応の外部ベクトルデータベース

API リファレンス

REST API 経由でのフロー呼び出しの完全ガイド

MCP 連携

MCP 経由で AI アシスタントにフローを接続

Jinba App エージェント

RAG フローをエージェントにラップしてチャットを強化