Azure AI Foundry モデルで、画像を使用した Azure OpenAI の GPT-4 Turbo の使用を開始します。
注
モデルの選択
最新のビジョン対応モデルは、gpt-4o
と gpt-4o mini
です。 これらのモデルは、パブリック プレビューの段階にあります。 利用可能な最新の GA モデルは、gpt-4
バージョンの turbo-2024-04-09
です。
重要
視覚機能を備えたチャット補完モデルを使用する場合は、追加の使用料金が適用される場合があります。
この記事を使用して、画像を解釈するチャット補完モデルをデプロイしてテストするために Azure AI Foundry の使用を開始します。
前提条件
- Azure サブスクリプション。 無料で作成できます。
- Azure サブスクリプションを取得したら、Azure OpenAI リソースを作成します。 リソース作成の詳細については、リソース デプロイ ガイドを参照してください。
- Azure OpenAI リソースを接続として追加した Azure AI Foundry プロジェクト。
メディアを準備する
このクイックスタートを完了するには、画像が必要です。 このサンプル画像または、任意の利用できる画像を使用できます。
Azure AI Foundry に移動する
- Azure AI Foundry にアクセスし、Azure OpenAI リソースに関連付けられている資格情報でサインインします。 サインイン ワークフローの途中または後で、適切なディレクトリ、Azure サブスクリプション、Azure OpenAI リソースを選択します。
- 作業するプロジェクトを選択します。
- 左側のナビゲーション メニューで、[モデル + エンドポイント] を選択し、[+ モデルのデプロイ] を選択します。
- モデル名 ( gpt-4o または gpt-4o-mini) を選び、画像対応のデプロイを選択します。 表示されたウィンドウで、名前とデプロイの種類を選択します。 Azure OpenAI リソースが接続されていることを確認します。 モデル デプロイの詳細については、リソース デプロイ ガイドを参照してください。
- [デプロイ] を選択します。
- 次に、新しいモデルを選択し、[プレイグラウンドで開く] を選択します。 チャット プレイグラウンドで、作成したデプロイが [デプロイ] ドロップダウンで選択されます。
プレイグラウンド
このチャット セッションでは、入力した画像を解釈できるようにアシスタントに指示します。
アシスタント セットアップ、チャット セッション、設定、パネルの全般的ヘルプについては、「チャットのクイックスタート」を参照してください。
チャット セッションを開始して画像を分析する
このチャット セッションでは、入力した画像を解釈できるようにアシスタントに指示します。
開始するには、[デプロイ] ドロップダウンで画像対応のデプロイが選択されていることを確認します。
[設定] パネルのコンテキスト テキスト ボックスで、アシスタントをガイドするためのプロンプト
"You're an AI assistant that helps people find information."
を指定します。または、画像またはシナリオに合わせてプロンプトを調整できます。注
モデルから有益ではない応答が返されないようにするため、タスクに特化したシステム メッセージに更新することをお勧めします。
[変更の適用] を選択して変更を保存します。
チャット セッション ウィンドウで、添付ファイル ボタンを選択し、[画像のアップロード] を選択します。 イメージを選択します。
チャット フィールドにプロンプト
Describe this image
を追加してから、送信アイコンを選択して送信します。送信アイコンは [停止] ボタンに置き換えられます。 これを選択すると、アシスタントは要求の処理を停止します。 このクイックスタートでは、アシスタントに返信を完了させます。
アシスタントは、画像の説明と共に応答します。
画像の分析に関連するフォローアップの質問をします。
"What should I highlight about this image to my insurance company?"
のように入力できます。次に示すような関連する応答が表示されるはずです。
When reporting the incident to your insurance company, you should highlight the following key points from the image: 1. **Location of Damage**: Clearly state that the front end of the car, particularly the driver's side, is damaged. Mention the crumpled hood, broken front bumper, and the damaged left headlight. 2. **Point of Impact**: Indicate that the car has collided with a guardrail, which may suggest that no other vehicles were involved in the accident. 3. **Condition of the Car**: Note that the damage seems to be concentrated on the front end, and there is no visible damage to the windshield or rear of the car from this perspective. 4. **License Plate Visibility**: Mention that the license plate is intact and can be used for identification purposes. 5. **Environment**: Report that the accident occurred near a roadside with a guardrail, possibly in a rural or semi-rural area, which might help in establishing the accident location and context. 6. **Other Observations**: If there were any other circumstances or details not visible in the image that may have contributed to the accident, such as weather conditions, road conditions, or any other relevant information, be sure to include those as well. Remember to be factual and descriptive, avoiding speculation about the cause of the accident, as the insurance company will conduct its own investigation.
コードの表示とエクスポート
チャット セッションの任意の時点で、チャット ウィンドウの上部にある [未加工の JSON の表示] スイッチを有効にして、JSON 形式で整形された会話を表示できます。 クイックスタート チャット セッションの開始時の内容を次に示します。
[
{
"role": "system",
"content": [
"You are an AI assistant that helps people find information."
]
},
]
リソースをクリーンアップする
Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。
この記事を使用して、GPT-4 Turbo with Vision モデルをデプロイして使用するために Azure OpenAI REST API の使用を開始します。
前提条件
- Azure サブスクリプション。 無料で作成できます。
- Python 3.8 以降のバージョン。
- 次の Python ライブラリ:
requests
、json
。 - GPT-4 Turbo と Visionモデルがデプロイされた Azure AI Foundry Models の Azure OpenAI リソース。 使用可能なリージョンについては、 GPT-4 および GPT-4 Turbo プレビュー モデルの可用性 に関するページを参照してください。 リソース作成の詳細については、リソース デプロイ ガイドを参照してください。
注
現在、GPT-4 Turbo with Vision モデルのコンテンツ フィルター処理をオフにすることはサポートされていません。
キーとエンドポイントを取得する
Azure OpenAI API を正常に呼び出すには、Azure OpenAI リソースに関する次の情報が必要です。
変数 | 名前 | 値 |
---|---|---|
エンドポイント | api_base |
エンドポイント値は、Azure portal のリソースの [キーとエンドポイント] にあります。 また、Azure AI Foundry ポータルの [デプロイ] ページからエンドポイントを見つけることもできます。 エンドポイントの例: https://docs-test-001.openai.azure.com/ 。 |
キー | api_key |
キー値は、Azure portal のリソースの [キーとエンドポイント] にあります。 Azure では、リソースに対して 2 つのキーが生成されます。 いずれかの値を使用できます。 |
Azure portal でリソースに移動します。 ナビゲーション ウィンドウで、[リソース管理] の [キーとエンドポイント] を選択します。 [エンドポイント] の値とアクセス キーの値をコピーします。 KEY 1 または KEY 2 のいずれかの値を使用できます。 2 つのキーを用意しておくと、サービスを中断させることなく、キーのローテーションと再生成を安全に行うことができます。
新しい Python アプリケーションを作成する
quickstart.py という名前の新しい Python ファイルを作成します。 好みのエディターまたは IDE で新しいファイルを開きます。
quickstart.py の内容を次のコードで置き換えます。
# Packages required: import requests import json api_base = '<your_azure_openai_endpoint>' deployment_name = '<your_deployment_name>' API_KEY = '<your_azure_openai_key>' base_url = f"{api_base}openai/deployments/{deployment_name}" headers = { "Content-Type": "application/json", "api-key": API_KEY } # Prepare endpoint, headers, and request body endpoint = f"{base_url}/chat/completions?api-version=2023-12-01-preview" data = { "messages": [ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": [ { "type": "text", "text": "Describe this picture:" }, { "type": "image_url", "image_url": { "url": "<image URL>" } } ] } ], "max_tokens": 2000 } # Make the API call response = requests.post(endpoint, headers=headers, data=json.dumps(data)) print(f"Status Code: {response.status_code}") print(response.text)
次の変更を行います。
- エンドポイント URL とキーを適切なフィールドに入力します。
- 適切なフィールドに GPT-4 Turbo with Vision デプロイ名を入力します。
"image"
フィールドの値を画像の URL に変更します。ヒント
URL ではなく、Base 64 でエンコードされた画像データを使うこともできます。 詳細については、GPT-4 Turbo with Vision の攻略ガイドに関するページを参照してください。
python
コマンドを使用してアプリケーションを実行します。python quickstart.py
リソースをクリーンアップする
Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。
この記事を参照して、Azure OpenAI Python SDK の使用を開始し、GPT-4 Turbo with Vision モデルをデプロイして使います。
ライブラリのソース コード | パッケージ (PyPi) |
前提条件
- Azure サブスクリプション。 無料で作成できます。
- Python 3.8 以降のバージョン。
- 次の Python ライブラリ:
os
- GPT-4 Turbo と Visionモデルがデプロイされた Azure AI Foundry Models の Azure OpenAI リソース。 使用可能なリージョンについては、 GPT-4 および GPT-4 Turbo プレビュー モデルの可用性 に関するページを参照してください。 リソース作成の詳細については、リソース デプロイ ガイドを参照してください。
設定
次を使用して、OpenAI Python クライアント ライブラリをインストールします。
pip install openai
注
このライブラリは、OpenAI によって保持されます。 このライブラリの最新の更新を追跡するには、リリース履歴を参照してください。
キーとエンドポイントを取得する
Azure OpenAI に対して正常に呼び出しを行うには、エンドポイントとキーが必要です。
変数名 | 値 |
---|---|
ENDPOINT |
サービス エンドポイントは、Azure portal でリソースを調べるときに、[キーとエンドポイント] セクションで確認できます。 または、Azure AI Foundry ポータルの [デプロイ] ページからエンドポイントを見つけることができます。 エンドポイントの例: https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
この値は、Azure portal からリソースを確認する際に、 [Keys & Endpoint](キーとエンドポイント) セクションで確認することができます。 KEY1 または KEY2 を使用できます。 |
Azure portal でリソースに移動します。 [キーとエンドポイント] セクションは、[リソース管理] セクションにあります。 エンドポイントとアクセス キーをコピーします。これらは、API 呼び出しを認証するために両方とも必要です。 KEY1
または KEY2
を使用できます。 常に 2 つのキーを用意しておくと、サービスを中断させることなく、キーのローテーションと再生成を安全に行うことができます。
環境変数
キーとエンドポイントの永続的な環境変数を作成して割り当てます。
重要
Microsoft Entra 認証と Azure リソースのマネージド ID を併用して、クラウドで実行されるアプリケーションに資格情報を格納しないようにすることをお勧めします。
API キーは慎重に使用してください。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。 API キーを使用する場合は、Azure Key Vault に安全に保存し、キーを定期的にローテーションし、ロールベースのアクセス制御とネットワーク アクセス制限を使用して Azure Key Vault へのアクセスを制限してください。 アプリで API キーを安全に使用する方法の詳細については、Azure Key Vault を使用した API キーに関するページを参照してください。
AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。
setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE"
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE"
新しい Python アプリケーションを作成する
quickstart.py という名前の新しい Python ファイルを作成します。 好みのエディターまたは IDE で新しいファイルを開きます。
quickstart.py の内容を次のコードで置き換えます。
from openai import AzureOpenAI api_base = os.getenv("AZURE_OPENAI_ENDPOINT") api_key= os.getenv("AZURE_OPENAI_API_KEY") deployment_name = '<your_deployment_name>' api_version = '2023-12-01-preview' # this might change in the future client = AzureOpenAI( api_key=api_key, api_version=api_version, base_url=f"{api_base}/openai/deployments/{deployment_name}" ) response = client.chat.completions.create( model=deployment_name, messages=[ { "role": "system", "content": "You are a helpful assistant." }, { "role": "user", "content": [ { "type": "text", "text": "Describe this picture:" }, { "type": "image_url", "image_url": { "url": "<image URL>" } } ] } ], max_tokens=2000 ) print(response)
次の変更を行います。
- 適切なフィールドに GPT-4 Turbo with Vision デプロイの名前を入力します。
"url"
フィールドの値を画像の URL に変更します。ヒント
URL ではなく、Base 64 でエンコードされた画像データを使うこともできます。 詳細については、GPT-4 Turbo with Vision の攻略ガイドに関するページを参照してください。
python
コマンドを使用してアプリケーションを実行します。python quickstart.py
重要
API キーは慎重に使用してください。 API キーは、コード内に直接含めないようにし、絶対に公開しないでください。 API キーを使用する場合は、Azure Key Vault 内に安全に保存してください。 アプリで API キーを安全に使用する方法の詳細については、Azure Key Vault を使用した API キーに関するページを参照してください。
AI サービスのセキュリティの詳細については、「Azure AI サービスに対する要求の認証」を参照してください。
リソースをクリーンアップする
Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。
この記事を参照して OpenAI JavaScript SDK の使用を開始し、GPT-4 Turbo with Vision モデルをデプロイして使用します。
この SDK は OpenAI によって提供されており、Azure によって提供される Azure 固有の種類が含まれています。
リファレンスのドキュメント | ライブラリのソース コード | パッケージ (npm) | サンプル
前提条件
- Azure サブスクリプション - 無料アカウントを作成します
- Node.js の LTS バージョン
- Azure CLI をローカル開発環境でのパスワードレス認証に使用する場合は、Azure CLI でサインインして必要なコンテキストを作成します。
- サポートされるリージョンに作成された Azure OpenAI リソース (利用可能なリージョンの情報をご覧ください)。 詳細については、「Azure OpenAI を使用してリソースを作成し、モデルをデプロイする」を参照してください。
注
このライブラリは、OpenAI によって保持されます。 このライブラリの最新の更新を追跡するには、リリース履歴を参照してください。
Microsoft Entra ID の前提条件
Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。
- Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
- ユーザー アカウントに
Cognitive Services User
ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。
設定
vision-quickstart
新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。mkdir vision-quickstart && cd vision-quickstart
次のコマンドで
package.json
を作成します。npm init -y
次を使用して JavaScript 用の OpenAI クライアント ライブラリをインストールします。
npm install openai
推奨されるパスワードレス認証は次のとおりです。
npm install @azure/identity
リソース情報の取得
Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。
変数名 | 値 |
---|---|
AZURE_OPENAI_ENDPOINT |
この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。 |
AZURE_OPENAI_DEPLOYMENT_NAME |
この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。 |
OPENAI_API_VERSION |
API バージョンの詳細を参照してください。 コードでバージョンを変更することも、環境変数を使用することもできます。 |
注意事項
SDK で推奨されるキーレス認証を使用するには、AZURE_OPENAI_API_KEY
環境変数が設定されていないことを確認します。
画像プロンプト用の新しい JavaScript アプリケーションを作成する
azure-samples/cognitive-services-sample-data-files からイメージを選択します。 次のコードでイメージ URL を使用するか、 IMAGE_URL
環境変数をイメージ URL に設定します。
ヒント
URL ではなく、Base 64 でエンコードされた画像データを使うこともできます。 詳細については、GPT-4 Turbo with Vision の攻略ガイドに関するページを参照してください。
次のコードを使用して
index.js
ファイルを作成します。const AzureOpenAI = require('openai').AzureOpenAI; const { DefaultAzureCredential, getBearerTokenProvider } = require('@azure/identity'); // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const imageUrl = process.env.IMAGE_URL || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01-preview"; const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4-with-turbo"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } function createMessages() { return { messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: [ { type: "text", text: "Describe this picture:", }, { type: "image_url", image_url: { url: imageUrl, }, }, ], }, ], model: "", max_tokens: 2000, }; } async function printChoices(completion) { for (const choice of completion.choices) { console.log(choice.message); } } export async function main() { console.log("== Get GPT-4 Turbo with vision Sample =="); const client = getClient(); const messages = createMessages(); const completion = await client.chat.completions.create(messages); await printChoices(completion); } main().catch((err) => { console.error("Error occurred:", err); });
次のコマンドを使用して Azure にサインインします。
az login
JavaScript ファイルを実行します。
node index.js
リソースをクリーンアップする
Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。
この記事を参照して OpenAI JavaScript SDK の使用を開始し、GPT-4 Turbo with Vision モデルをデプロイして使用します。
この SDK は OpenAI によって提供されており、Azure によって提供される Azure 固有の種類が含まれています。
リファレンスのドキュメント | ライブラリのソース コード | パッケージ (npm) | サンプル
前提条件
- Azure サブスクリプション - 無料アカウントを作成します
- Node.js の LTS バージョン
- TypeScript
- Azure CLI をローカル開発環境でのパスワードレス認証に使用する場合は、Azure CLI でサインインして必要なコンテキストを作成します。
- サポートされるリージョンに作成された Azure OpenAI リソース (利用可能なリージョンの情報をご覧ください)。 詳細については、「Azure OpenAI を使用してリソースを作成し、モデルをデプロイする」を参照してください。
注
このライブラリは、OpenAI によって保持されます。 このライブラリの最新の更新を追跡するには、リリース履歴を参照してください。
Microsoft Entra ID の前提条件
Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。
- Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
- ユーザー アカウントに
Cognitive Services User
ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。
設定
vision-quickstart
新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。mkdir vision-quickstart && cd vision-quickstart
次のコマンドで
package.json
を作成します。npm init -y
次のコマンドを使用して、
package.json
を ECMAScript に更新します。npm pkg set type=module
次を使用して JavaScript 用の OpenAI クライアント ライブラリをインストールします。
npm install openai
推奨されるパスワードレス認証は次のとおりです。
npm install @azure/identity
リソース情報の取得
Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。
変数名 | 値 |
---|---|
AZURE_OPENAI_ENDPOINT |
この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。 |
AZURE_OPENAI_DEPLOYMENT_NAME |
この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。 |
OPENAI_API_VERSION |
API バージョンの詳細を参照してください。 コードでバージョンを変更することも、環境変数を使用することもできます。 |
注意事項
SDK で推奨されるキーレス認証を使用するには、AZURE_OPENAI_API_KEY
環境変数が設定されていないことを確認します。
画像プロンプト用の新しい JavaScript アプリケーションを作成する
azure-samples/cognitive-services-sample-data-files からイメージを選択します。 次のコードでイメージ URL を使用するか、 IMAGE_URL
環境変数をイメージ URL に設定します。
ヒント
URL ではなく、Base 64 でエンコードされた画像データを使うこともできます。 詳細については、GPT-4 Turbo with Vision の攻略ガイドに関するページを参照してください。
次のコードを使用して
index.ts
ファイルを作成します。import { AzureOpenAI } from "openai"; import { DefaultAzureCredential, getBearerTokenProvider } from "@azure/identity"; import type { ChatCompletion, ChatCompletionCreateParamsNonStreaming, } from "openai/resources/index"; // You will need to set these environment variables or edit the following values const endpoint = process.env.AZURE_OPENAI_ENDPOINT || "Your endpoint"; const imageUrl = process.env["IMAGE_URL"] || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = process.env.OPENAI_API_VERSION || "2024-07-01-preview"; const deploymentName = process.env.AZURE_OPENAI_DEPLOYMENT_NAME || "gpt-4-with-turbo"; // keyless authentication const credential = new DefaultAzureCredential(); const scope = "https://cognitiveservices.azure.com/.default"; const azureADTokenProvider = getBearerTokenProvider(credential, scope); function getClient(): AzureOpenAI { return new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment: deploymentName, }); } function createMessages(): ChatCompletionCreateParamsNonStreaming { return { messages: [ { role: "system", content: "You are a helpful assistant." }, { role: "user", content: [ { type: "text", text: "Describe this picture:", }, { type: "image_url", image_url: { url: imageUrl, }, }, ], }, ], model: "", max_tokens: 2000, }; } async function printChoices(completion: ChatCompletion): Promise<void> { for (const choice of completion.choices) { console.log(choice.message); } } export async function main() { console.log("== Get GPT-4 Turbo with vision Sample =="); const client = getClient(); const messages = createMessages(); const completion = await client.chat.completions.create(messages); await printChoices(completion); } main().catch((err) => { console.error("Error occurred:", err); });
TypeScript コードをトランスパイルするために
tsconfig.json
ファイルを作成して、ECMAScript 向けの次のコードをコピーします。{ "compilerOptions": { "module": "NodeNext", "target": "ES2022", // Supports top-level await "moduleResolution": "NodeNext", "skipLibCheck": true, // Avoid type errors from node_modules "strict": true // Enable strict type-checking options }, "include": ["*.ts"] }
TypeScript から JavaScript にトランスパイルします。
tsc
次のコマンドを使用して Azure にサインインします。
az login
次のコマンドを使用して、コードを実行します。
node index.js
リソースをクリーンアップする
Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。
この記事を参照して、Azure OpenAI Python .NET SDK の使用を開始し、GPT-4 Turbo with Vision モデルをデプロイして使います。
前提条件
- Azure サブスクリプション。 無料で作成できます。
- .NET 8.0 SDK
- GPT-4 Turbo と Visionモデルがデプロイされた Azure AI Foundry Models の Azure OpenAI リソース。 使用可能なリージョンについては、 GPT-4 および GPT-4 Turbo プレビュー モデルの可用性 に関するページを参照してください。 リソース作成の詳細については、リソース デプロイ ガイドを参照してください。
Microsoft Entra ID の前提条件
Microsoft Entra ID で推奨されるキーレス認証の場合、次のことを行う必要があります。
- Microsoft Entra ID でのキーレス認証に使われる Azure CLI をインストールします。
- ユーザー アカウントに
Cognitive Services User
ロールを割り当てます。 Azure portal の [アクセス制御 (IAM)]>[ロールの割り当ての追加] で、ロールを割り当てることができます。
設定
vision-quickstart
新しいフォルダーを作成し、次のコマンドを使用してクイック スタート フォルダーに移動します。mkdir vision-quickstart && cd vision-quickstart
次のコマンドを使用して新しいコンソール アプリケーションを作成します。
dotnet new console
dotnet add package コマンドを使用して、OpenAI .NET クライアント ライブラリをインストールします。
dotnet add package Azure.AI.OpenAI
Microsoft Entra ID を使用する推奨されるキーレス認証の場合、次のコマンドを使用して Azure.Identity パッケージをインストールします。
dotnet add package Azure.Identity
Microsoft Entra ID を使用する推奨されるキーレス認証の場合、次のコマンドを使用して Azure にサインインします。
az login
リソース情報の取得
Azure OpenAI リソースでアプリケーションを認証するには、次の情報を取得する必要があります。
変数名 | 値 |
---|---|
AZURE_OPENAI_ENDPOINT |
この値は、Azure portal からリソースを調べる際の キーとエンドポイント セクションにあります。 |
AZURE_OPENAI_DEPLOYMENT_NAME |
この値は、モデルのデプロイ時にデプロイに対して選択したカスタム名に対応します。 この値は、Azure portal の [リソース管理]>[モデル デプロイ] にあります。 |
OPENAI_API_VERSION |
API バージョンの詳細を参照してください。 コードでバージョンを変更することも、環境変数を使用することもできます。 |
クイック スタートを実行する
このクイックスタートのサンプル コードでは、推奨されるキーレス認証に Microsoft Entra ID を使用します。 API キーを使用する場合は、 DefaultAzureCredential
オブジェクトを AzureKeyCredential
オブジェクトに置き換えることができます。
AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential());
クイック スタートを実行するには、次の手順に従います。
Program.cs
の内容を次のコードに置き換え、プレースホルダーの値を自分の値で更新します。using Azure; using Azure.AI.OpenAI; using Azure.Identity; using OpenAI.Chat; // Required for Passwordless auth string deploymentName = "gpt-4"; string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? "https://<your-resource-name>.openai.azure.com/"; string key = Environment.GetEnvironmentVariable("AZURE_OPENAI_API_KEY") ?? "<your-key>"; // Use the recommended keyless credential instead of the AzureKeyCredential credential. AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new DefaultAzureCredential()); //AzureOpenAIClient openAIClient = new AzureOpenAIClient(new Uri(endpoint), new AzureKeyCredential(key)); var chatClient = openAIClient.GetChatClient(deploymentName); var imageUri = "YOUR_IMAGE_URL"; var chatMessages = new List<ChatMessage> { new SystemChatMessage("You are a helpful assistant."), new UserChatMessage($"Describe this picture: {imageUrl}") }; ChatCompletion chatCompletion = await chatClient.CompleteChatAsync(chatMessages); Console.WriteLine($"[ASSISTANT]:"); Console.WriteLine($"{chatCompletion.Content[0].Text}");
アプリケーションを実行するには、Visual Studio の上部にある
dotnet run
コマンドまたは実行ボタンを使用します。dotnet run
アウトプット
アプリケーションの出力は、 imageUri
変数で指定したイメージの説明になります。 アシスタントは画像を分析し、その内容に基づいて詳細な説明を提供します。
リソースをクリーンアップする
Azure OpenAI リソースをクリーンアップして削除したい場合は、リソースまたはリソース グループを削除できます。 リソース グループを削除すると、それに関連付けられている他のリソースも削除されます。