LangStudio で、Web 検索と RAG を備えたチャットアシスタントのアプリケーションフローを構築します。このフローは、リアルタイムの Web 検索と検索拡張生成 (RAG) を統合し、モデルがドメイン固有のナレッジベースとリアルタイムの Web データの両方にアクセスできるようになり、より正確な回答を生成します。
背景
このアプリケーションフローは、RAG とリアルタイムの Web 検索を組み合わせて、正確な回答を提供します。モデルは、ドメイン固有の知識を取得し、リアルタイムの Web データで補完します。これは、金融やヘルスケアなど、高精度が求められるドメインで特に効果的です。
前提条件
-
SerpApi の公式サイトで登録し、api_key を取得します。
-
Milvus を使用するには、Milvus インスタンスを作成します。
説明Faiss はテスト用であり、個別のデータベースは不要です。本番環境では、大規模データ用に Milvus を使用します。
-
RAG ナレッジベースのコーパスを OSS にアップロードします。
1. (任意) LLM と埋め込みモデルのデプロイ
モデルギャラリーから必要なモデルサービスをデプロイします。互換性のあるモデルサービスがすでにある場合は、この手順をスキップしてください。
[クイックスタート] > [モデルギャラリー] に移動し、次の 2 つのシナリオに対応するモデルをデプロイします。詳細については、「モデルのデプロイとトレーニング」をご参照ください。
指示チューニング済みの LLM を使用してください。ベースモデルは、ユーザーの指示に正しく従うことができません。
-
[Scenario] では、大規模言語モデル を選択します。この例では、[DeepSeek-R1] を使用します。詳細については、「DeepSeek-V3 および DeepSeek-R1 モデルのワンクリックデプロイ」をご参照ください。
-
[Scenario] では、[Embedding] を選択します。この例では、bge-m3 汎用ベクトルモデルを使用します。
2. 接続の作成
このガイドの LLM および埋め込みモデルサービス接続は、クイックスタート > [モデルギャラリー] からデプロイされた EAS サービスに基づいています。その他の接続タイプと設定については、「接続設定」をご参照ください。
2.1 LLM 接続の作成
-
LangStudio に移動し、リージョンとワークスペースを選択します。
-
接続 > モデルサービス タブで 接続の作成 をクリックし、次のパラメーターを設定します。
-
[接続タイプ]: 汎用 LLM モデルサービス接続 を選択します。
-
[サービスプロバイダー]: PAI-EAS モデルサービス を選択します。
-
[EAS サービス]: 手順 1 でデプロイした LLM サービスを選択します。
サービスを選択すると、LangStudio がデプロイされた LLM の VPC エンドポイントとトークンを
base_urlとapi_keyフィールドに自動的に入力します。 -
[モデル名]: OpenAI API リクエストの
modelパラメーター値です。これはモデルギャラリーでモデルカードをクリックして、モデル詳細ページで確認できます。 -
ツール呼び出し、[構造化出力]、[ディープシンキング]、[ビジュアル]: モデルの機能に基づいてこれらのオプションを有効にします。
-
2.2 埋め込みモデル接続の作成
セクション 2.1 と同じプロセスで、埋め込みモデル接続を作成します。
接続の作成 ページで、接続タイプ を 汎用埋め込みモデルサービス接続 に、サービスプロバイダー を PAI-EAS モデルサービス に設定し、次のパラメーターを設定します。
-
[EAS サービス]: デプロイ済みの EAS サービスインスタンスを選択します。
-
[モデル名]:モデル名を入力します。例:
default。 -
base_url: EAS サービスのエンドポイントを入力します。
-
api_key: EAS サービスの API キーを入力します。
2.3 SerpApi 接続の作成
接続 > カスタム タブで 接続の作成 をクリックして SerpApi 接続を作成します。「前提条件」セクションで取得した api_key を設定します。
「新規接続」ページで、[名前]を serp_api_conn に設定します。[キーと値] セクションで行を追加し、[カスタムキー]を api_key に設定し、[カスタム値]に SerpApi API キーを入力して、[シークレット] チェックボックスを選択します。
3. ナレッジベースインデックスの作成
ナレッジベースインデックスを作成して、コーパスを解析、チャンク化、ベクトル化してベクトルデータベースに格納します。主要なパラメーターは以下のとおりです。詳細については、「ナレッジベース管理」をご参照ください。
|
パラメーター |
説明 |
|
基本設定 |
|
|
データソースの OSS パス |
「前提条件」の RAG ナレッジベースコーパスの OSS パスを指定します。 |
|
出力先の OSS パス |
ドキュメント解析中に生成される中間結果とインデックスデータのパスです。 重要
FAISS を使用する場合、フローはインデックスファイルを OSS に保存します。デフォルトの PAI ロール (ランタイムの起動時に設定された [RAM ロール]) を使用すると、フローはワークスペースのデフォルトストレージバケットにアクセスできます。このパラメーターは、ワークスペースのデフォルトストレージパスと同じ OSS バケット内のディレクトリに設定してください。カスタムロールを使用する場合は、そのロールに OSS へのアクセス権 (AliyunOSSFullAccess を推奨) を付与します。詳細については、「RAM ロールの権限管理」をご参照ください。 |
|
埋め込みモデルとデータベース |
|
|
埋め込みタイプ |
汎用埋め込みモデルサービス接続 を選択します。 |
|
埋め込み接続 |
セクション 2.2 で作成した埋め込みモデルサービス接続を選択します。 |
|
ベクトルデータベースタイプ |
FAISS を選択します。このガイドでは FAISS を例として使用します。 |
4. アプリケーションフローの作成と実行
-
LangStudio に移動し、ワークスペースを選択して [Application Flows] タブに移動し、[New Application Flow] をクリックして「Web 検索と RAG を備えたチャットアシスタント」フローを作成します。
-
右上隅の ランタイムの選択 をクリックし、ランタイムを選択します。Python ノードの解析や他のツールを表示するには、実行中のランタイムが必要です。
利用可能なランタイムがない場合は、[LangStudio] ページの ランタイム タブに移動し、ランタイムの作成 をクリックして作成します。主要なパラメーターは以下のとおりです。
VPC設定: 手順 3 で Milvus を選択した場合、Milvus インスタンスと同じ VPC または相互接続された VPC を使用します。FAISS は VPC 設定を必要としません。
-
アプリケーションフローを開発します。

残りの設定はデフォルトのままにするか、必要に応じて調整します。主要なノード設定は以下のとおりです。
-
ナレッジベース検索: ナレッジベースから関連テキストを取得します。
-
ナレッジベースインデックス名: 手順 3 で作成したナレッジベースインデックスを選択します。
-
Top K: 上位 K 件の一致する結果を返します。
-
-
Serp検索: SerpApi 経由で Web 検索を行い、結果を返します。
-
SerpApi接続: セクション 2.3 で作成した SerpApi 接続を選択します。
-
検索エンジン: Bing、Google、Baidu、Yahoo、およびカスタム入力に対応しています。サポートされているエンジンとパラメーターは、SerpApi の公式サイトに記載されています。
-
-
大規模モデルノード: 取得したドキュメントと検索結果をコンテキストとしてユーザーのクエリとともに LLM に送信し、応答を生成します。
-
モデル設定: セクション 2.1 で作成した接続を選択します。
-
会話履歴: 会話履歴を入力変数として有効にします。
-
詳細については、「プリセットコンポーネントリファレンス」をご参照ください。
-
-
右上隅の 実行 をクリックして、アプリケーションフローを実行します。一般的な問題については、「よくある質問」を参照してトラブルシューティングしてください。
-
生成された回答の下にある トレースの表示 をクリックして、トレースの詳細またはトポロジービューを表示します。
5. アプリケーションフローのデプロイ
アプリケーションフロー開発ページで、右上隅の デプロイメント をクリックし、フローを EAS サービスとしてデプロイします。主要なパラメーターは以下のとおりです。
-
[リソース情報] > [インスタンス数]: サービスインスタンスの数を設定します。テスト用には 1 に設定します。本番環境では、単一障害点を回避するために複数のインスタンスを使用してください。
-
[VPC] > [Virtual Private Cloud (VPC)]: SerpApi はパブリックインターネットアクセスを必要とするため、この機能を備えた VPC を設定します (EAS サービスにはデフォルトでこの機能がありません)。EAS サービスがパブリックリソースまたは内部リソースにアクセスできるようにする。手順 3 で Milvus を選択した場合は、Milvus インスタンスと同じ VPC を使用するか、VPC が相互接続されていることを確認してください。
詳細については、「アプリケーションフローのデプロイ」をご参照ください。
6. サービスの呼び出し
デプロイ後、PAI-EAS コンソールにリダイレクトされます。 オンラインデバッグ タブで、リクエストを送信します。 リクエストボディのキーは、アプリケーションフローの [Start] ノードにある [Conversation Input] フィールドと一致させる必要があります。 デフォルトのフィールド名は questionです。
API 呼び出しを含むその他の呼び出し方法については、「アプリケーションフローのデプロイ - サービスの呼び出し」をご参照ください。