↑日記で日々積み重ねた情報をトップの「わんこのページ」にまとめています。

おのたく日記 [RDF] YouTubeも始めました→


2023-05-10(Wed) [長年日記]

[NodeJS][Azure][OpenAI] NodeJSでAzure OpenAI Serviceを利用する方法

結論:openai npmパッケージでは、OpenAPI Generatorを利用しているので、それに渡すOptionにバラメターを加えることでOpenAIと同じようにAzure OpenAI serviceの呼び出しが可能。

NodeJSでAzure OpenAI Serviceを利用する方法について説明します。

"OpenAIのAPIと同じようなAPIを使えるとMicrosoftが言っているAzure OpenAI Serviceが始まっています。

See: Azure OpeAI ServiceのREST APIリファレンス

しかし、OpenAIのAPIと異なり、Azure版は呼び出しURLが異なったり、API Keyの送り方が違うため、多くのOpen API用のオープンソースについてのライブラリが対応していないようです。また、Azure OpenAI Studioで出てくるサンプルコードでも、PythonとC#しか出てきていません。

Azure OpenAI Studioで出てくるサンブルコード

OpenAI向けのJavaScriptやTypeScript用のopeai npmパッケージでも特にAzureに関するドキュメントが見つかりませんでしたが、Azure OpenAI Serviceに対応するためには以下の3つの変更が必要です。

  • BASE_URLを変える。ENDPOINTとモデル・デプロイ名をURIに入れる
  • HTTPリクエストヘッダに"api-key"を付ける
  • パラメータにapt-version=2023-03-15-previewを付ける

上記の変更を加えたコードは以下のようになります。

switch (apiType) {

case 'azure':

this.openAiApiConfiguration.baseOptions = {

headers: {

'api-key': apiKey,

},

params: {

'api-version': '2023-03-15-preview',

}

};

if (basePath) {

this.openAiApiConfiguration.basePath = basePath + 'openai/deployments/' + MODEL;

}

break;

case 'openai':

default:

if (basePath) {

this.openAiApiConfiguration.basePath = basePath;

}

break;

}

this.openAI = new OpenAIApi(this.openAiApiConfiguration);

github/takuya-o opencommit/src/api.tsから引用

以上が、NodeJSでAzure OpenAI Serviceを利用する方法です。

同じように他のプログミング言語でもOpenAPI Generatorを利用しているならば、OpenAIのコンストラクタに渡すOptionにパラメーターを追加することでOpenAIと同じようにAzure OpenAI serviceの利用が可能だと思います。

本日のPingbacks(全0件)

Google Web検索 on-o.com内を検索