おのたく日記 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#しか出てきていません。
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の利用が可能だと思います。
|