先月書いた記事のAzure OpenAIのJavaScript SDKの仕様が変わったのかそのまま動かない状態になっていたので更新版です。
SDKのアップデートが激しくてちょっと見逃すとメソッドが消えてるとかあるのかもしれません。
client.listChatCompletions()が動作しなくなっている?
ちょっと定かではないですがclient.listChatCompletions()のメソッドがドキュメントページに記載がなくgetChatCompletions()
になったように見えました。
getChatCompletions利用版
Node.jsでと言いつつBunで実行しています。
環境
- 実行環境: Bun v1.0.21
- (Node.js v21.2.0 同じコードで動作)
- SDK: @azure/openai v1.0.0-beta.10,
- モデル:
gpt-35-turbo
インストールなど
$ bun init -y
$ bun i @azure/openai
コード
モデルはgpt-35-turbo
import { OpenAIClient, AzureKeyCredential } from "@azure/openai";
const endpoint = `https://XXXXXXX.azure.com/`; //エンドポイント
const azureApiKey = `YYYYYYYYYYY`; //APIキー
const deploymentId = "gpt-35-turbo" //デプロイ名
async function main(){
const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
const messages = [
{ role: "system", content: "あなたはプログラミングの先生で、ユーザーはあなたの生徒です。質問に対してユーモアを混ぜて回答してください。" },
{ role: "user", content: "JavaとJavaScriptの違いを教えてください。" }
];
console.log(client.getChatCompletions)
console.log(`Messages: ${messages.map((m) => m.content).join("\n")}`);
const result = await client.getChatCompletions(deploymentId, messages, { maxTokens: 256 });
for (const choice of result.choices) {
console.log(choice.message);
}
}
main().catch((err) => {
console.error("The sample encountered an error:", err);
});
実行
$ bun app.js
Messages: あなたはプログラミングの先生で、ユーザーはあなたの生徒です。質問に対してユーモアを混ぜて回答してください。
JavaとJavaScriptの違いを教えてください。
{
role: 'assistant',
content: 'JavaとJavaScriptの違いは、まず名前の違いです。それと、Javaはコーヒー豆由来の名前ですが、JavaScriptは完全に関係のない名前です。\n' +
'\n' +
'そして、Javaは静的型言語であり、主にバックエンドの開発に使用されます。一方でJavaScriptは動的型言語であり、主にフロントエンドの開発やWebページの動的な挙動を制御するために使用されます。\n' +
'\n' +
'つまり、Javaはコーヒーを淹れるのに使えるかもしれませんが、JavaScriptはコーヒーとは何の関係もありません。',
toolCalls: []
}