Azure Open AIのAPIをNode.jsから使ってみます。Azure Open AIのライブラリ(@azure/openai)を使ったら上手くいかず公式(openai)を使ったら上手くいきました。
色々準備
まずはOpenAIのライブラリインストール
ライブラリを入れておきましょう。
$ npm i openai
公式を使う場合のはこちらに残しています。
モデルを作成する
Azureの管理画面からOpenAIのリソースを作成し、モデルデプロイをします。
(ちなみに、現状この時にどこのリージョンを選ぶかで、GPT4が使えたり使えなかったりします)
Azure AI Studioっていうページに連れて行かれます。
デプロイってところでモデルを選んでデプロイし、名前をつけます。
例えばn0bisuke-gpt-35-turbo
など自分で分かる名前にしましょう。
APIキー
APIキーはキーとエンドポイント
の項目で確認できます。
次のコードでリソース名を入れる場所がありますが、ここで表示されるエンドポイントの以下の部分です。
https://リソース名.openai.azure.com
公式ライブラリを使ったAzure Open AIの使い方コード
こちらにあったコードでうまくいきました。
apiVersion
はこちらを見ましょうとのこと。
const OpenAI = require('openai');
const resource = 'リソース名'; //エンドポイントの最初の文字列 "リソース名".openai.azure.com
const model = 'n0bisuke-gpt-35-turbo'; //作ったモデル名
const apiVersion = '2023-06-01-preview';
const apiKey = `APIキー`; //APIキー
const openai = new OpenAI({
apiKey,
baseURL: `https://${resource}.openai.azure.com/openai/deployments/${model}`,
defaultQuery: { 'api-version': apiVersion },
defaultHeaders: { 'api-key': apiKey },
});
async function main() {
const completion = await openai.chat.completions.create({
messages: [{ role: 'user', content: 'あなたの名前は?' }],
model: model,
});
console.log(completion.choices[0].message.content);
}
main().catch((err) => {
console.error(err);
process.exit(1);
});
$ node app.js
私はGPT-3という人工知能です。
@azure/openaiは?
ちょっと検証中ですが、こういうエラーが出続けます。
The completion operation does not work with the specified model, gpt-35-turbo. Please choose different model and try again. You can learn more about which models can be used with each operation
ライブラリのバグなのか、サンプルコードのバグなのか、以下の記事をみるとなんとなく別のエンドポイント(/chat
にしないといけないけどそうなってない?)に向いてしまっているのかも
追記: モデルが違うっぽい?
すぐコメントもらえました。 @horihiro さんありがとうございます!
コメントしましたhttps://t.co/nDyHIyx2ga
— ほりひろ loves <⚡> (@hori__hiro) December 6, 2023