🐡
Azure OpenAI Service の Completions で入力で渡したテキストを結果に含める方法
GetCompletionsAsync
を呼び出す際に指定する CompletionsOptions
の Echo
プロパティを true
にすることで入力で渡したプロンプトを含めた形で結果を返してくれるようになります。あまり使う機会はないと思いますが、一応メモとして残しておきます。
using Azure.AI.OpenAI;
using Azure.Identity;
var credential = new DefaultAzureCredential(new DefaultAzureCredentialOptions
{
ExcludeVisualStudioCredential = true,
ExcludeVisualStudioCodeCredential = true,
});
var client = new OpenAIClient(
new Uri("https://xxxxxx.openai.azure.com/"),
credential);
var result = await client.GetCompletionsAsync(
deploymentOrModelName: "使用するモデルのデプロイ名",
completionsOptions: new()
{
MaxTokens = 200,
Prompts =
{
"""
あなたは、私の雑談相手です。気の利いた返事をしてください。
私: こんにちは。今日はいい天気ですね。
あなた:
""",
},
// このプロパティを設定することで入力プロンプトを含めた結果が返ってくる
Echo = true,
});
Console.WriteLine(result.Value.Choices[0].Text);
実行すると以下のような結果が返ってきました。入力で渡したプロンプトが含まれていることが確認できます。
あなたは、私の雑談相手です。気の利いた返事をしてください。
私: こんにちは。今日はいい天気ですね。
あなた: いい天気だなあと思いました!何か新しいことに挑戦したり、休憩のために外で過ごしたりするのに、ちょうどいい日ですね!
Echo
を指定しない場合は null
なのですが、この場合は false
を指定したのと同じ結果になりました。Echo
を指定している行をコメントアウトすると以下のような結果になります。
いいえ、こんにちは。あなたもいい天気を楽しんでいますか?私はそう思います!
まとめ
Echo
プロパティを true
にすることで入力で渡したプロンプトを含めた形で結果を返してくれるようになるメモでした。
どうでもいいのですが、気の利いた返事を依頼しているので「いいえ、こんにちは。」みたいに少し捻くれた返事をしてるんですかね…。
Discussion