Azure OpenAI on your dataをREST API経由で利用する

以前のブログ記事では、「Azure OpenAI on your data」をAzure OpenAI StudioにてGUIで利用する方法を、紹介しました。

「Azure OpenAI on your data」(以後 "on your data" )に、REST APIで直接アクセスする方法もあります。
この記事では、REST API でon your data機能を利用します。

「Azure OpenAI on your data」におけるAPIの仕組み

on your data機能はAzure OpenAI Studio (GUI)からでも利用できますが、最終的に内部では以下の仕組みのAPIを使用していると思われます。

  1. 通常のチャット用APIを利用する場合と同様に、ユーザーはAzure OpenAIのAPIにリクエストを投げます。ただしon your data機能を利用する際は、"dataSources"パラメータとして検索対象のデータソースを指定します。
  2. このリクエストを受け取ったAzure OpenAIが、ユーザーからのプロンプトを基に検索キーワードを決定し、データソースとして指定されたCognitive Searchのインデックスで検索を実行します。
  3. 検索結果を基にユーザーへの回答を作成します。
  4. ユーザーはAPIから、回答の文章と参照したデータ情報をレスポンスとして受け取ります。

※2, 3 の部分はAzureで仕組みが隠蔽されていますので、内部でどのように検索を実行し、どのように検索結果を整理して回答を生成しているかは不明です。

APIにAzure OpenAIとCognitive Searchに関するパラメータを渡すだけで、この一連の流れを一度のリクエストで実行してくれます。

REST API で on your data機能を使う

リクエスト

以下のようにAPI経由でon your data機能にリクエストを投げてみました。

APIエンドポイント

on your data等の拡張機能のAPIを利用する際は、以下のURLにPOSTリクエストを送信します。

https://[Azure OpenAI のエンドポイント]/openai/deployments/[使用するデプロイモデル名]/extensions/chat/completions?api-version=[APIバージョン]

"dataSources"パラメータ

"dataSources"には、検索対象のCognitive SearchのエンドポイントURL・キー・インデックスなどのパラメータを指定します。"messages" には通常通りプロンプトを入れます。

システムメッセージに相当する内容は、"messages"パラメータではなく、"dataSources"の"roleInfomation"で指定する点に注意が必要です。

"dataSources"パラメータの詳細については、以下のドキュメントを参考にしました。

レスポンス

実際にAPIから以下内容のレスポンスが返ってきました。

role「assistant」としてチャットの回答が返ってきます。また、role「tool」として参照データに関する情報が返ってきます。

回答内容と参照データを確認すると、参照したデータを基に適切に回答文が生成されていました。

最後に

今回は「Azure OpenAI on your data」をREST API経由で利用してみました。Azure OpenAI Studioから利用する場合と同様に、APIからでもCognitive Searchのデータと連携したチャットが可能でした。

リクエストパラメータである"dataSources"の入力形式から予想するに、Cognitive Search以外もデータソースとして今後指定できるようになりそうな予感がします。あくまで願望ですが、bing検索リソースなども手軽に連携できるようになると期待しています。

参考

執筆担当者プロフィール
赤津 陸

赤津 陸(日本ビジネスシステムズ株式会社)

Azure環境向けのクラウドマネージドサービスの運用に従事し、現在はAI関連の業務をしています。

担当記事一覧