@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で何ターンか実施してみると、わかりやすいかと思います。