Azure OpenAI Service の REST APIで連続したチャットを行いたい

ichinoseipa 20 評価のポイント
2024-07-19T01:01:29.08+00:00

どこかに書いているのだと思うのですが、見つけられず、すみません、問い合わせさせてください。

AzureOpenAIのAPIを利用してチャットを行う際に、

前の質問回答を踏まえた質問を、APIで投げたいのですが、

どうすればいいかおしえていただけないでしょうか。

Azure OpenAI Service の REST API リファレンス

https://video2.skills-academy.com/ja-jp/azure/ai-services/openai/reference

を見ますと、

応答にIDが返ってきているので、これを次の質問の際に使うのかとも思ったのですが、

それを渡すようなパラメータなど見つけられず。

すみません。

よろしくお願いいたします。

Azure
Azure
Microsoft が管理する世界のデータ センター ネットワークを介してアプリケーションとサービスを構築、配置、および管理するインフラストラクチャおよびクラウド コンピューティング プラットフォーム。
295 件の質問
0 件のコメント コメントはありません
{count} 件の投票

承認済みの回答
  1. Aki Nishikawa 1,740 評価のポイント Microsoft 社員
    2024-07-20T04:32:41.04+00:00

    @ichinoseipa さん

    調査されている通り、idはレスポンスには含まれていますが、リクエストで渡すことができません。そのため、messagesの配列に過去のターンを含むすべてのリクエスト・レスポンスを入れてAzure OpenAI Serviceに投げ込む必要があります。具体的には以下のような感じです。AOAIへのリクエスト(システムプロンプト+ユーザープロンプト)が以下のような形、

    {
      "messages": [
        {
          "role": "system",
          "content": [...] // システムプロンプト
        },
        {
          "role": "user",
          "content": [...] // ユーザープロンプト-1
        }
      ]
    }
    

    レスポンスは、REST APIの以下のような形だった場合、

    {
      "messages": [
        {
          "role": "assistant",
          "content": [...] // AOAIからの応答-1
        }
      ]
    }
    

    次のターンでは、これまでのリクエスト、レスポンスのメッセージを全て渡す必要があります。

    {
      "messages": [
        {
          "role": "system",
          "content": [...] // システムプロンプト
        },
        {
          "role": "user",
          "content": [...] // ユーザープロンプト-1
        },
        {
          "role": "assistant",
          "content": [...] // AOAIからの応答-1
        },
        {
          "role": "user",
          "content": [...] // ユーザープロンプト-2
        }
      ]
    }
    

    OpenAI Studioで何ターンか実施してみると、わかりやすいかと思います。

    1 人がこの回答が役に立ったと思いました。

0 件の追加の回答

並べ替え方法: 最も役に立つ

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。