3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft AzureAdvent Calendar 2024

Day 22

Windows のコマンドプロンプトで curl + Azure OpenAI Service(VS Code の REST Client での例を参考に)【Microsoft Azure】

Posted at

この記事は、「Microsoft Azure Advent Calendar 2024」の 22日目の記事です。

はじめに

諸事情により、Azure OpenAI Service でのキー認証を使った API利用の動作確認を行うことがありました。

その時に試した内容を、メモとして残すための記事になります。

実際に試してみる

前提条件

この後の内容を進めるにあたり、Azure OpenAI Service関連で以下が準備できている前提となります。

  • エンドポイント
  • デプロイID
  • APIバージョン
  • APIキー

公式の「Azure OpenAI Service の REST API リファレンス」での記載の以下にあたる部分です。

参考にしたページで書かれた内容でいうと、以下になります。

image.png

VS Code の REST Client + Azure OpenAI Service

それでは以下の参考情報を元に、VS Code の REST Client で Azure OpenAI Service の API を使ってみます。

●Azure Open AI Chat-Completions API試してみる|maito17s
https://note.com/maito17s/n/naeca2a8cc0d0

VS Code の REST Client で実行する内容

VS Code の REST Client で実行する内容として、以下を用意しました。

# 設定
@endpoint = 【エンドポイント】
@deployment_id = 【デプロイID】
@api_version = 【APIバージョン】

@api_key = 【APIキー】

@message = 【送信するメッセージ】

POST {{endpoint}}/openai/deployments/{{deployment_id}}/chat/completions?api-version={{api_version}}
api-key: {{api_key}}
Content-Type: application/json

{
    "messages": [
        { "role": "user", "content": "{{message}}" }
    ]
}

自分が上記を試した際には、デプロイしたモデルなどは以下としました。

  • デプロイID(デプロイしたモデルの名称と一致させた形): gpt-4o
  • APIバージョン: 2024-05-01-preview

なお、参照したページの内容を簡素化しており、例えば送信する JSON の部分は最小限にしています。

Windows のコマンドプロンプトで curl + Azure OpenAI Service

次に Windows のコマンドプロンプトで curl を利用した形でやってみます。
VS Code の REST Client で試した内容をもとに、curl で実行する内容を作ります。

以下が具体的な内容で、ここでは文字コードが UTF-8 のバッチファイルを作り、そこで curl の処理を実行しています。

chcp 65001

set ENDPOINT=【エンドポイント】
set DEPLOYMENT_ID=【デプロイID】
set API_VERSION=【APIバージョン】

set API_KEY=【APIキー】

set MESSAGE=【送信するメッセージ】

curl %ENDPOINT%openai/deployments/%DEPLOYMENT_ID%/chat/completions?api-version=%API_VERSION% -X POST -H Content-Type:application/json -H api-key:%API_KEY% -d "{\"messages\": [{ \"role\": \"user\", \"content\": \"%MESSAGE%\"}]}"

pause

コマンドプロンプトで UTF-8 を扱うため「chcp 65001」という処理を入れています。

また、その他で自分が少しはまったところは、API で送る JSON の部分です。
以下に書かれているように、「送る内容全体は「"」(ダブルクォーテーション)で囲み、JSON内のキー名と値は「"」(バックスラッシュ+ダブルクォーテーション)で囲む」というやり方になります。

●curl linuxとwindowsの違いまとめ
https://tako-xyz.com/curl-linux-windows-difference-summary/

その他

なお今回は詳細には触れないですが、PowerShell で実行する場合は「Invoke-RestMethod」を使った方法があります。

●Invoke-RestMethod (Microsoft.PowerShell.Utility) - PowerShell | Microsoft Learn
https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/invoke-restmethod

●Quickstart - Get started using GPT-35-Turbo and GPT-4 with Azure OpenAI Service - Azure OpenAI Service | Microsoft Learn
https://learn.microsoft.com/en-us/azure/ai-services/openai/chatgpt-quickstart?tabs=command-line%2Cjavascript-keyless%2Ctypescript-keyless%2Cpython-new&pivots=programming-language-powershell

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?