Elasticsearch:チャットボットRAGアプリの構築

ご紹介

はじめに

このガイドを参考にして、チャットボットRAGアプリの設定と実行を開始しましょう。RAGは、検索拡張生成(Retrieval-Augmented Generation)の略です。これは、カスタムデータソースを使用し、生成AI(GenAI)大規模言語モデル(LLM)からの対応を基礎にしてLLMの幻覚などの問題を防ぐ方法です。ここでは、ElasticのサンプルチャットボットRAGアプリを設定および実行するプロセスを順を追って説明し、実際に動作する様子を確認できるようにします。

chatbot-rag-app-running.gif

このチャットボットRAGアプリはオープンソースであり、GitHubでホストされているため、クローンの作成、フォーク、独自のバージョンの作成が行えます。このアプリはElastic Cloudを使用しており、RAGアプリの検索拡張「真の情報源」として機能しるElasticsearchインデックスをホストしています。これにより、生成される対応が、インデックスに含まれる文書内の情報に基づいていることが保証されます。チャットボットアプリは、OpenAIのような複数の人気LLMサービスをサポートするようにコーディングされています。アプリのアーキテクチャーは、Python FlaskバックエンドとReactフロントエンドに基づいています。アプリの完全な要件リストについては、「Elasticsearch Labsチャットボットチュートリアル」をご覧ください。

チャットボットRAGアプリは、RAGアプリを学んで実験するのに最適な方法です。ローカルコンピューターで実行でき、Elastic CloudとLLMの統合がどのように行われるかを直接確認し、独自のドキュメントセットに合わせてカスタマイズされた、生成AIを活用する検索エクスペリエンスを作成できます。このアプリは、OpenAI、AWS Bedrock、Azure OpenAI、Google Vertex AI、Mistral AI、CohereなどのさまざまなLLMとの統合をサポートしています。サンプルのチャットボットRAGアプリをローカルコンピューターにデプロイするには、Dockerを使用する方法とPythonを使用する方法の2つがあります。


始めましょう

チャットボットRAGアプリの実行

希望する導入方法に応じて、以下の「Dockerでチャットボットアプリを実行する」または「Pythonでチャットボットアプリを実行する」セクションの手順に従ってください。Dockerを使用すると必要な手順が少なくなりますが、Pythonを使用すると、アプリのバックエンドコンポーネントとフロントエンドコンポーネントを設定および実行する方法についてより深く理解できます。どちらの方法でアプリを実行しても、OpenAIをLLMとして使用します。アプリをOpenAIで実行したら、サポートされている他のLLMのいずれかを使用するようにアプリを更新するのは、最小限の手順で行えます。

 

Dockerでチャットボットアプリを実行する

Dockerを使用してチャットボットRAGアプリを実行するプロセスには、次のものが含まれます。

  1. アプリのコードのクローン作成
  2. Elastic Cloudデプロイの作成
  3. OpenAI APIキーの作成
  4. アプリの設定の入力

このガイドツアーでは、ローカルコンピューター上でアプリを実行するために必要なすべてのステップをご紹介します。

ガイドツアー:Docker を使用して OpenAI でチャットボット RAG アプリを実行する

 

Pythonでチャットボットアプリを実行する

Pythonを使用してチャットボットRAGアプリを実行するプロセスには、次のものが含まれます。

  1. アプリのコードのクローン作成
  2. Elastic Cloudデプロイの作成
  3. OpenAI APIキーの作成
  4. アプリの設定の入力

アプリとその依存関係が設定されると、アプリのPythonバックエンドが起動します。すると、Reactのフロントエンドが起動してアプリのUIが提供され、ブラウザで操作できるようになります。

このガイドツアーでは、ローカルコンピューター上でアプリを実行するために必要なすべてのステップをご紹介します。

ガイドツアー:Pythonを使用してOpenAIでチャットボットRAGアプリを実行する


Elasticsearchを使用する

実行中のアプリを操作する

アプリを起動したら、質問をしたり、あらかじめ設定された質問のいずれかを使用してみてください。アプリは、チャットの履歴を取り込むElasticインデックスを含むようにコード化されているので、チャットボットの「記憶」をテストするフォローアップの質問をしてみてください。

chatbot-rag-app-response.png


今後の見通し

ElasticチャットボットRAGサンプルアプリを実行するプロセスについて学ぶために、時間を割いていただきありがとうございます。Elasticの導入を始めるにあたって、環境全体でデプロイを行うときにユーザーとして管理すべき運用、セキュリティ、データの要素について理解しておいてください。

準備は整いましたか?Elastic Cloudの14日間無料トライアルに登録しましょう。

無料トライアルを始める