ElasticのAI Assistant
Elasticではバージョン8.8.1から、AI AssistantというElasticsearchの利用方法をOpenAIなどの生成AIにお尋ねする機能を搭載しています。
普通にAIとチャットするだけの機能ではあるものの、質問に対してElasticsearchとしてのコンテキストを理解して回答してくれるので、大変便利です。この記事もAIに書いてもらおうと思ってちょっと試した結果が以下です。
まあなかなか良い結果ではあるのですが、ちょっと概要としてハイレベルすぎる割に急にES|QLやAPMの可視化とか細かい話をし始めたりもしているので、残念ながらそのまま使うのは諦めました。が、十分実用的であることはわかるのではないでしょうか。
この記事では使い方というより、Elasticでの設定方法について(ちょっと一部わかりにくかったので)記載します。
ただし以下の点に注意して下さい。
- この機能はElasticのEnterpriseライセンスが必要です。
- Azure OpenAIのGPT-4を利用します。他は(私は)検証していません。
Azure OpenAIの設定
ここはElastic関係ないので個人的な備忘録的な側面が強いですが、まずはAzureにAzure Open AIのリソースを作成します。
作成できたら左のメニュー > Model deployments > Manage Deploymentsをクリックします。
Azure Open AI Studioという画面が開くので、そこのCreate new deploymentから適切なモデルを選んでデプロイします。ここではgpt-4をデプロイしました。
で、この後Elastic側にこのデプロイメントを使うためにエンドポイントURLなどを渡さないといけないのですが、そのURLの取得方法について記載されているドキュメントを見つけられませんでした。色々試してみた結果、Azure OpenAI SturioのPlayground > Chat > View codeをクリックすると表示されるダイアログから、適切なエンドポイントとAPI Keyのどちらも取得できることがわかりました。
ここを参照すると、Endpoint URLは以下の通りでした。
https://{OpenAIリソース名}.openai.azure.com/openai/deployments/{デプロイメント名}/chat/completions?api-version={APIバージョン}
私はうっかりAPIバージョンをモデルバージョンと取り違えて何度か404エラーになっていました。同様のエラーになった方は注意してください。APIバージョンはこの記事の執筆時点では2023-07-01-previewです。
Elasticの設定
Elastic側ではKibanaでConnectorとして設定します。Stack Management > ConnectorsからOpenAIを選択します。
ここで先ほど取得したエンドポイントのURLとAPIキーを設定します。また、Select an OpenAI providerのプルダウンからAzure OpenAIを選択します。
設定したらテストして接続を確認しましょう。
使ってみる
AI Connectorが設定できたら、セキュリティやオブザーバビリティーのAI AssistantからAI相手にチャットをすることができるようになります。
例えばセキュリティーのアラートが発生した時に、そのアラートの原因と対処方法などをAIに聞くことで、初動を早くしたりすることができる、というのが特にこの機能がリリースされた際の謳い文句で、確かにその用途が便利かつ有用だと思います。
ただもちろんそういった質問しかできないわけはないので、この投稿の最初でブログ記事を書かせようと試したように、Elasticについて詳しいAIに色々頼み事をしてみることも可能ですので、色々触って新しいユースケースを探してみてください。