Elasticsearch Serverlessプロジェクトを管理するAIエージェント

Elasticsearch Serverless プロジェクトを簡単に管理し、プロジェクトの作成、削除、ステータス チェックを可能にする自然言語対応の AI エージェント。

Elastic Cloud Serverlessを使用すると、運用の手間から解放されます。スケールを自動化し、負荷スパイクを処理し、構築に集中しましょう。14日間の無料トライアルを開始して、実際にお試しください!

これらのガイドに従って、AIを活用した検索エクスペリエンスを構築するか、業務システムやソフトウェアを横断的に検索することができます。

AIエージェントを使用してサーバーレスElasticsearchプロジェクトを管理する方法

  1. リポジトリのクローンを作成します。 git clone https://github.com/elastic/elasticsearch-labs/supporting-blog-content/serverless-ai-agent aを使用して GitHub からツールのコードをダウンロードし、 cd serverless-ai-agentを使用してディレクトリに移動します。
  2. 環境の設定: python -m venv venvを使用して仮想環境 (オプション) を作成し、アクティブ化します (Windows の場合はsource venv/bin/activateまたはvenv\Scripts\activate )。次に、 pip install -r requirements.txtを使用して必要な Python パッケージをインストールします。
  3. 資格情報を構成する:プロジェクト ルートに.envファイルを作成し、Elasticsearch API URL ( ES_URL )、API キー ( API_KEY )、リージョン ( REGION )、OpenAI API キー ( OPENAI_API_KEY ) を入力します。
  4. ツールを実行します:ターミナルでpython main.pyを実行してツールを実行します。これにより、AI エージェントが起動し、コマンドのプロンプトが表示されます。
  5. 自然言語でプロジェクトを管理する: 「my\_project という名前のサーバーレス プロジェクトを作成する」、「my\_project という名前のサーバーレス プロジェクトのステータスを取得する」、「my\_project という名前のサーバーレス プロジェクトを削除する」などのわかりやすい英語のコマンドを使用してツールを操作します。AI はコマンドを解釈し、対応する機能を実行します。

背景

この小さなコマンドライン ツールを使用すると、Serverless Elasticsearch プロジェクトをわかりやすい英語で管理できます。AI (この場合は OpenAI) と対話して、ユーザーの意図を理解し、LlamaIndex を使用して適切な関数を呼び出します。

Elasticsearch Serverless AIエージェントは何ができるのか

  • プロジェクトを作成する: 新しい Serverless Elasticsearch プロジェクトを起動します。
  • プロジェクトの削除: 既存のプロジェクトを削除します (削除後はクリーンアップされます)。
  • プロジェクトのステータスを取得: プロジェクトの進行状況を確認します。
  • プロジェクトの詳細を取得: プロジェクトに関するすべての重要な詳細を取得します。

GitHub でコードを確認してください。

Elasticsearch Serverless AIエージェントの仕組み

次のように入力すると:

「my_project という名前のサーバーレス プロジェクトを作成する」

…舞台裏ではこんなことが起こっています:

  • ユーザー入力とコンテキスト:自然言語コマンドが AI エージェントに送信されます。
  • 関数の説明:詳細な説明が与えられているため、AI エージェントは、create_ess_project、delete_ess_project、get_ess_project_status、get_ess_project_details などのいくつかの関数についてすでに認識しています。これらの説明は、各関数が何を実行し、どのようなパラメータが必要かを AI に伝えます。
  • LLM 処理:クエリと関数情報が LLM に送信されます。つまり、AI は次のことを認識します。
    • ユーザークエリ: わかりやすい英語での指示。
    • 利用可能な機能と説明: 各ツールの機能の詳細により、適切なツールを選択できます。
    • コンテキスト/履歴チャット情報: 会話なので、以前に話された内容を記憶します。
  • 関数の呼び出しと応答: AI はどの関数を呼び出すかを判断し、適切なパラメーター (プロジェクト名など) を渡して、関数が実行されます。応答はわかりやすい形式で返されます。

つまり、自然言語クエリと詳細なツール説明のリストの両方を LLM に送信して、LLM がそれを「理解」し、リクエストに適したアクションを選択できるようにします。

AIエージェントを設定する

前提条件:

AI エージェントを実行する前に、次の設定がされていることを確認してください。

  1. Python (v3.7 以降)がインストールされています。
  2. Elastic Cloud にセットアップされたElasticsearch サーバーレス アカウント
  3. 言語モデルと対話するためのOpenAI アカウント

手順:

1. リポジトリをクローンします。

2. 仮想環境を作成する (オプションですが推奨):環境関連の問題に直面している場合は、分離のために仮想環境を設定できます。

3. 依存関係をインストールします。次のコマンドを実行して、必要な依存関係がすべてインストールされていることを確認します。

4. 環境を設定する: .env を作成するプロジェクト ルートに次の変数を含むファイルを作成します。以下に、役に立つサンプルの.env.exampleファイルを示します。

ES_URLAPI_KEYOPENAI_API_KEYの値が正しいことを確認してください。API キーはそれぞれのサービス ダッシュボードで確認できます。

5. プロジェクト ファイル:ツールは、 projects.jsonファイルを使用してプロジェクト マッピング (プロジェクト名とその詳細) を保存します。このファイルが存在しない場合は自動的に作成されます。

AIエージェントの実行

次のようなプロンプトが表示されます。

コマンドを入力すると、AI エージェントが魔法のように動作します。完了したら、 exitまたはquitと入力して終了します。

さらに詳しい情報

  • LLM 統合: LLM には、クエリと利用可能な各機能の詳細な説明の両方が提供されます。これにより、コンテキストを理解し、たとえば、 create_ess_projectを呼び出すかdelete_ess_projectを呼び出すかを決定するのに役立ちます。
  • ツールの説明: 各関数ツール (FunctionTool.from_defaults を使用して作成)親切な説明があります。この説明は LLM に送信されるプロンプトに含まれているため、LLM は利用可能なアクションと各アクションで期待される内容を「認識」します。
  • 永続性: プロジェクトとその詳細はprojects.jsonに保存されます。毎回情報を再入力する必要がなくなります。
  • 詳細ログ: エージェントは詳細モードに設定されており、デバッグや、命令が関数呼び出しにどのように変換されるかを確認するのに最適です。

Elasticsearch AIエージェントの利用例

関連記事

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう