このトピックでは、LangStudio を使用して「Retrieval-Augmented Generation (RAG) と Web 検索に基づくチャットボット」アプリケーションフローをデプロイする方法について説明します。このアプリケーションフローは、リアルタイム Web 検索と RAG 機能を統合し、モデルに追加の Web 検索機能とドメイン固有のナレッジベース機能を提供します。これにより、モデルはユーザーの質問に対してより正確な回答を提供できます。開発者は、アプリケーションフローテンプレートを使用して柔軟な拡張と二次開発を実行し、特定のシナリオ要件を満たすことができます。
背景情報
急速に進化する現代の情報技術のコンテキストにおいて、「RAG と Web 検索に基づくチャットボット」アプリケーションフローは、リアルタイム Web 検索と生成的人工知能の利点を組み合わせることで、ユーザーにより包括的で正確な回答を提供します。リアルタイム Web 検索と RAG 機能を統合することにより、モデルはドメイン固有のナレッジベースから専門情報を取得し、最新の Web データを利用してリアルタイムで更新できます。2 つの情報ソースの組み合わせは、非常に正確な情報が必要とされる金融やヘルスケアなどの分野で特に効果的です。開発者は、このアプリケーションフローテンプレートを柔軟に拡張およびカスタマイズして、さまざまなアプリケーションシナリオのニーズをより適切に満たし、ユーザーエクスペリエンスと意思決定支援機能を強化できます。
前提条件
SerpApi 公式 Web サイト でアカウントを登録し、API キーを取得していること(無料版では月に 100 回の検索が提供されます)。
LangStudio は、Faiss または Milvus ベクトルデータベースをサポートしています。Milvus データベースを使用する場合は、最初に Milvus データベースを作成する必要があります
説明Faiss は通常、テスト環境で使用され、追加のデータベースを作成せずに使用できます。本番環境では、大量のデータの処理をサポートする Milvus データベースを使用することをお勧めします。
RAG ナレッジベースコーパスを Object Storage Service (OSS) にアップロードしていること。
1. (オプション)LLM と埋め込みモデルをデプロイする
「RAG と Web 検索に基づくチャットボット」アプリケーションフローには、大規模言語モデル (LLM) と埋め込みサービスが必要です。このセクションでは、モデルギャラリーで必要なモデルを迅速にデプロイする方法について説明します。要件を満たし、OpenAI API をサポートするモデルサービスが既にある場合は、この手順をスキップして、既存のサービスを直接使用してください。
クイックスタート > モデルギャラリー を選択し、次の 2 つのシナリオのモデルをデプロイします。デプロイの詳細については、「モデルのデプロイとトレーニング」をご参照ください。
命令のファインチューニングをサポートする LLM を使用していることを確認してください。基本モデルは、ユーザーの指示に正しく従って質問に答えることができません。
シナリオ に large-language-model を選択します。この例では、DeepSeek-R1 を使用します。詳細については、「DeepSeek-V3 と DeepSeek-R1 のワンクリックデプロイ」をご参照ください。

シナリオ に embedding を選択します。この例では、Bge-m3 埋め込みモデル を使用します。

2. 接続を作成する
このトピックでは、クイックスタート > モデルギャラリー を使用してデプロイされた LLM と埋め込みモデルによる Elastic Algorithm Service (EAS) サービスを使用して接続を作成します。他のタイプの接続と詳細については、「接続を作成する」をご参照ください。
2.1 LLM サービス接続を作成する
LangStudio に移動し、ワークスペースを選択して、[LangStudio に入る] をクリックします。次に、[接続] タブをクリックします。[接続] タブの [モデルサービス] タブで、[新しい接続] をクリックします。

次の表に、主要なパラメーターを示します。
パラメーター | 説明 |
モデル名 | モデルギャラリー でモデルをデプロイする場合は、モデルをクリックしてモデル詳細ページに入り、モデル名を取得する方法を表示します。詳細については、「接続を作成する」をご参照ください。 |
サービスプロバイダー |
|
2.2 埋め込みモデルサービス接続を作成する
埋め込みモデルサービス接続を作成する方法は、LLM サービス接続を作成する方法 と似ています。このセクションでは、一般的な埋め込みモデルサービス接続を作成する方法について説明します。

2.3 SerpApi 接続を作成する
[接続] タブの [モデルサービス] タブで、[カスタム接続] タブをクリックします。次に、[新しい接続] をクリックします。[新しい接続] ページで、[カスタムキー] パラメーターを api_key に設定し、[カスタム値] パラメーターを 前提条件 で取得した API キーに設定します。

3. ナレッジベースインデックスを作成する
ナレッジベースインデックスを作成して、分析、チャンク化、およびベクトル化されたコーパスをベクトルデータベースに保存し、ナレッジベースを構築します。次の表に、主要なパラメーターを示します。その他のパラメーターについては、「ナレッジベースインデックスの管理」をご参照ください。
パラメーター | 説明 |
基本構成 | |
データソース OSS パス | 前提条件 でアップロードした RAG ナレッジベースコーパスの OSS パス。 |
出力 OSS パス | ドキュメントの解析によって生成された中間結果とインデックス情報を保存するパスを構成します。 重要 FAISS をベクトルデータベースとして使用する場合、アプリケーションフローは生成されたインデックスファイルを OSS に保存します。デフォルトの PAI ロールを使用する場合、[インスタンス RAM ロール]アプリケーションフロー開発のランタイムを開始する ときに構成された Free現在のワークスペースのデフォルト ストレージ パスRAM ロールに権限を付与する の値を使用すると、アプリケーションフローはユーザーワークスペースのデフォルト OSS バケットにアクセスします。したがって、カスタムロールを使用する場合は、OSS アクセス権限を付与する必要があります。カスタムロールに AliyunOSSFullAccess ポリシーをアタッチすることをお勧めします。詳細については、「」をご参照ください。 |
埋め込みモデルとデータベース | |
埋め込みタイプ | 一般埋め込みモデル を選択します。 |
埋め込み接続 | 2.2 埋め込みモデルサービス接続を作成する で作成した埋め込みモデルサービス接続を選択します。 |
ベクトルデータベースタイプ | FAISS を選択します。このトピックでは、例として FAISS を使用します。 |
4. アプリケーションフローを作成して実行する
LangStudio に移動し、ワークスペースを選択して、[LangStudio に入る] をクリックします。[アプリケーションフロー] タブで、[アプリケーションフローを作成] をクリックして、「RAG と Web 検索に基づくチャットボット」アプリケーションフローを作成します。

アプリケーションフロー詳細ページで、右上隅にある [ランタイムを作成] をクリックします。[ランタイムを作成] パネルで、パラメーターを構成します。注: Python ノードを解析したり、その他のツールを表示するには、ランタイムが開始されていることを確認する必要があります。

次のパラメーターに注意してください。
VPC: 3. ナレッジベースインデックスを作成する でベクトルデータベースタイプを Milvus に設定した場合は、Milvus インスタンスが存在する VPC を選択するか、選択した VPC と Milvus インスタンスが存在する VPC が相互接続されていることを確認する必要があります。ベクトルデータベースタイプを Faiss に設定した場合は、VPC を構成する必要はありません。
アプリケーションフローを開発します。

アプリケーションフローでは、主要なノードを次のように構成します。他のノードのデフォルト構成を維持するか、ビジネス要件に基づいてノードを構成します。
ナレッジ検索: ナレッジベースからユーザーの質問に関連するテキストを取得します。
インデックス名: 3. ナレッジベースインデックスを作成する で作成したナレッジベースインデックスを選択します。
上位 K 件: 上位 K 件の関連結果を返します。
Serp 検索: SerpApi を使用して Web 検索を実行し、特定の数の検索結果を返します。
SerpApi 接続: 2.3 SerpApi 接続を作成する で作成した SerpApi 接続を選択します。
エンジン: Bing、Google、Baidu、Yahoo などの一般的な検索エンジンをサポートし、カスタム入力もサポートします。検索エンジンとその他のパラメーターの説明については、SerApi 公式 Web サイト を参照してください。
LLM: 取得したドキュメントと Serp 検索結果をコンテキストとして使用し、ユーザーの質問とともに LLM に送信して回答を生成します。
モデル構成: 2.1 LLM サービス接続を作成する で作成した接続を選択します。
チャット履歴: チャット履歴機能を有効にして、チャット履歴を入力変数として使用するかどかを指定します。
右上隅にある [実行] をクリックして、アプリケーションフローを実行します。アプリケーションフローランタイムに関する一般的な問題については、「よくある質問」をご参照ください。

生成された回答セクションで [ログを表示] をクリックして、トレースの詳細またはトポロジーを表示します。

5. アプリケーションフローをデプロイする
アプリケーションフロー詳細ページで、右上隅にある [デプロイ] をクリックして、アプリケーションフローを EAS サービスとしてデプロイします。次のセクションでは、主要なパラメーターについて説明します。残りのデプロイパラメーターのデフォルト構成を維持するか、ビジネス要件に基づいて構成します。
リソース情報 > インスタンス: サービスインスタンスの数を構成します。このトピックのデプロイはテスト目的のみであるため、インスタンス数は 1 に設定されています。本番環境では、単一障害点のリスクを軽減するために、複数のサービスインスタンスを構成することをお勧めします。
VPC > VPC (VPC): SerpApi サービスはインターネットにアクセスする必要があるため、インターネット経由でアクセスできる VPC を構成する必要があります (EAS サービスはデフォルトではインターネットにアクセスできません)。詳細については、「インターネットアクセスを構成する」をご参照ください。さらに、3. ナレッジベースインデックスを作成する のベクトルデータベースタイプが Milvus に設定されている場合は、選択した VPC が Milvus インスタンスが存在する VPC であるか、選択した VPC と Milvus インスタンスが存在する VPC が相互接続されていることを確認する必要があります。
詳細については、「アプリケーションフローをデプロイする」をご参照ください。
6. サービスを呼び出す
デプロイが成功すると、EAS サービス詳細ページの [概要] タブが表示されます。[オンラインデバッグ] タブをクリックします。次に、リクエストを構成して送信します。リクエスト本文のキー値は、アプリケーションフローの開始ノードのチャット入力パラメーターの値と同じである必要があります。このトピックでは、デフォルトフィールド question が使用されます。
