LoginSignup
2
0

OpenAI公式npmモジュールでAzure Open AIのGPT APIを使うコピペサンプル

Last updated at Posted at 2023-12-06

Azure Open AIのAPIをNode.jsから使ってみます。Azure Open AIのライブラリ(@azure/openai)を使ったら上手くいかず公式(openai)を使ったら上手くいきました。

色々準備

まずはOpenAIのライブラリインストール

ライブラリを入れておきましょう。

$ npm i openai

公式を使う場合のはこちらに残しています。

モデルを作成する

Azureの管理画面からOpenAIのリソースを作成し、モデルデプロイをします。
(ちなみに、現状この時にどこのリージョンを選ぶかで、GPT4が使えたり使えなかったりします)

スクリーンショット 2023-12-06 13.53.29.png

Azure AI Studioっていうページに連れて行かれます。
デプロイってところでモデルを選んでデプロイし、名前をつけます。

例えばn0bisuke-gpt-35-turboなど自分で分かる名前にしましょう。

スクリーンショット 2023-12-06 13.52.54.png

APIキー

APIキーはキーとエンドポイントの項目で確認できます。

スクリーンショット 2023-12-06 13.56.28.png

次のコードでリソース名を入れる場所がありますが、ここで表示されるエンドポイントの以下の部分です。

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 さんありがとうございます!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0