すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:オープンソースの大規模モデルアプリケーション開発プラットフォームとの連携のベストプラクティス

最終更新日:Dec 28, 2024

このドキュメントでは、Dify を例に、OpenSearch LLM インテリジェント Q&A エディションを大規模モデルアプリケーション開発プラットフォームと統合して、Retrieval-Augmented Generation (RAG) システムを構築する方法を紹介します。

背景

AIGC 技術の急速な発展に伴い、LLM アプリケーションも継続的に進化しています。LLM、エージェントフレームワーク、ワークフローオーケストレーション機能などをベースに、さまざまなシナリオ向けの多様なアプリケーションサービスを構築できます。中でも、Retrieval-Augmented Generation (RAG) システムは、企業ナレッジベース、インテリジェントカスタマーサービス、E コマースガイダンスなどのシナリオにおいて中核的な役割を果たしています。

OpenSearch LLM インテリジェント Q&A エディションは、データの解析と処理、スライス、ベクトル化、テキストとベクトルの検索、マルチモーダル LLM、その他のモデルと機能を統合しています。このドキュメントでは、OpenSearch LLM インテリジェント Q&A エディションを使用して大規模モデルアプリケーション開発プラットフォームと連携し、RAG システムを構築する方法について説明します。

大規模モデルアプリケーションプラットフォーム

大規模モデル業界では、Alibaba Cloud BaiLian や Dify など、ますます多くのアプリケーションフレームワークと開発プラットフォームが登場しています。開発者はこれらのフレームワークとプラットフォームに基づいてビジネスアプリケーションを迅速に構築でき、RAG システムもその中で共通の要素となっています。そのため、大規模モデルアプリケーション開発プラットフォームには、通常、RAG システムが組み込まれています。

しかし、RAG システムの精度と検索効率は密接に関連しており、アプリケーション開発プラットフォームはしばしば以下の問題に直面します。

1. 使い勝手の悪さ: ナレッジベースドキュメントの形式、数量、サイズに関するさまざまな制限により、開発者は複雑なデータ前処理を実行する必要があり、実際のアプリケーションニーズを満たせない場合があります。

2. 専門性の低さ: ほとんどがブラックボックスシステムであるため、開発者はコアとなる部分をカスタマイズおよび最適化することが難しく、アプリケーション全体のパフォーマンスが低下します。

3. エンタープライズレベルの機能の弱さ: エンタープライズレベルの権限分離、高速なデータのインポート/更新機能のサポートが不足しているため、実際の運用アプリケーションへの実装が困難です。

上記の問題に対処するために、OpenSearch LLM インテリジェント Q&A エディションを RAG システムとして使用し、ワークフローに適用して、エンタープライズレベルのアプリケーションを迅速に構築できます。現在、OpenSearch は BaiLian のモデルとの連携をサポートしており、LLM の選択肢を豊富にし、カスタマイズされた RAG 効果を実現します。具体的な使用方法については、LLM 管理を参照してください。

さらに、OpenSearch は豊富な呼び出しと認証メカニズムをサポートしており、BaiLian や Dify などのアプリケーション開発プラットフォームと柔軟に連携できます。

以下では、Dify を例に、オープンソースアプリケーションプラットフォームとの連携のベストプラクティスを紹介します。

全体アーキテクチャ

開発者はナレッジベースを OpenSearch に事前にインポートし、ワークフローで処理されたダイアログリクエストを使用して OpenSearch の RAG システムにアクセスします。OpenSearch は、ナレッジベースと LLM に基づいて、ダイアログ結果、参照リンク、参照画像を返します。開発者は、ビジネスニーズに応じてワークフローを通じて結果を処理し、最終的にエンドユーザーに出力します。

OpenSearch LLM インテリジェント Q&A エディションでの RAG システムの構築

1. RAG システムの構築

OpenSearch LLM インテリジェント Q&A エディションは、数分で RAG システムを構築できるワンストップ RAG 製品であり、コンソールでモデルの選択、プロンプトのカスタマイズ、効果の最適化を視覚的に行うことができます。詳細は、コンソールを使用したエンタープライズナレッジベース Q&Aを参照してください。

2. API キーの作成と取得

パブリック API ドメイン名と API キーを作成して取得し、安全に保管してください。

アプリケーションプラットフォームでのビジネスアプリケーションの構築

ステップ 1: 大規模モデルアプリケーションプラットフォームでワークフローを作成する

基本的な RAG ワークフローには、次の 4 つのステップが含まれます。

開始: ユーザーが入力したダイアログコンテンツを取得します。

OpenSearch LLM インテリジェント Q&A エディション (HTTP リクエスト): ダイアログコンテンツを OpenSearch に入力し、RAG システムに基づいて出力結果を返します。

出力結果の解析 (コード実行): 結果のダイアログコンテンツを解析します。

回答の返却: 最終結果をユーザーに返します。

ステップ 2: HTTP リクエストを使用して OpenSearch RAG システムにアクセスする

認証 API-Key:

  • 認証タイプ: API-Key

  • API 認証タイプ: Bearer

  • API キー: OpenSearch LLM インテリジェント Q&A エディションから取得した API キー。

URL アドレス: OpenSearch LLM インテリジェント Q&A エディションから取得したパブリック API ドメイン名 + OpenSearch インターフェースアドレス (参照 URL: v3/openapi/apps/[app_name]/actions/knowledge-search)

BODY: JSON 形式を選択します。具体的な内容とパラメーターについては、SearchKnowledge-Q&A ドキュメントクエリを参照してください。

ステップ 3: 出力結果を解析する

OpenSearch のインターフェース戻り値は JSON 形式で、ダイアログ結果、参照リンク、参照画像などが含まれます。開発者はコード実行を使用して出力結果を解析し、必要に応じて戻り値を取得できます。

出力結果のみを取得するための参照コード:

def main(body: str) -> str:
    import json
    dat = json.loads(body)
    return {
        'result': [ans['answer'] for ans in dat['result']['data']][0]
    }
    // 出力結果のみを取得

効果プレビュー

この基盤の上に、他のワークフローを構築して、豊富なビジネスアプリケーションフローを作成できます。

たとえば、以下は OpenSearch と Qwen モデルに基づいて構築されたインテリジェントダイアログアシスタントです。

まず、ユーザーのダイアログの意図を判断し、アフターサービスの問題、製品使用方法の問題、雑談に分類します。

アフターサービスの問題と製品使用方法の問題については、OpenSearch の対応するナレッジベースにアクセスし、RAG システムを使用して返信します。

雑談については、Qwen モデルにアクセスしてユーザーとチャットし、一般的な問題を解決します。

ワンストップ RAG 製品を使用してワークフローを構築するだけでなく、Alibaba Cloud AI Search 開発ワークベンチを使用することもできます。ワークベンチが提供するドキュメント解析、ベクトル化、検索、並べ替えなどのアトミック機能を通じて、Dify ツールをカスタマイズして RAG システムのさまざまな部分を迅速に最適化できます。