快速入門:在 AI 聊天中使用影像
開始使用 Azure OpenAI 服務的 GPT-4 Turbo 解讀影像。
注意
模型選擇
最新的視覺功能模型是 gpt-4o
和 gpt-4o mini
。 這些處於公開預覽狀態。 最新的可用 GA 模型是 gpt-4
版本 turbo-2024-04-09
。
透過 Azure AI Studio 開始探索具有視覺功能的 GPT-4 Turbo 與無程式代碼方法。
必要條件
- Azure 訂用帳戶。 免費建立一個。
- 已部署含有視覺功能的 GPT-4 Turbo 模型的 Azure OpenAI 服務資源。 如需了解可用區域,請參閱 GPT-4 和 GPT-4 Turbo 預覽版模型可用性。 如需資源建立的詳細資訊,請參閱資源部署指南。
注意
含有視覺功能的 GPT-4 Turbo 目前不支援關閉內容篩選。
移至 Azure AI Studio
流覽至 Azure AI Studio ,並使用與您的 Azure OpenAI 資源相關聯的認證登入。 在登入工作流程期間 (或之後),選取適當的目錄、Azure 訂用帳戶和 Azure OpenAI 資源。
在 [管理] 下,透過選取模型名稱:"gpt-4" 和模型版本 "vision-preview",以選取 [部署] 和 [建立] 含有視覺功能的 GPT-4 Turbo 部署。 如需模型部署的詳細資訊,請參閱資源部署指南。
在 [遊樂場] 區段下,選取 [聊天]。
遊樂場
您可以透過此頁面,快速逐一查看並實驗模型的功能。
如需助理設定、聊天工作階段、設定和面板的一般協助,請參閱聊天快速入門。
開始聊天工作階段以分析影像或影片
在此聊天工作階段中,您會指示助理協助了解輸入的影像。
若要開始,請從下拉式清單中選取含有視覺功能的 GPT-4 Turbo 部署。
在 [助理設定] 窗格中,提供系統訊息來引導助理。 預設系統訊息:「您是 AI 助理,可協助人員尋找資訊。」您可以根據您要上傳的影像或案例自訂系統訊息。
注意
建議將系統訊息更為工作專屬內容,藉此避免模型的不實用回應。
儲存變更,並在系統提示確認更新系統訊息時,選取 [繼續]。
在 [聊天工作階段] 窗格中,輸入文字提示 (例如「描述此影像」) 並使用附件按鈕上傳影像。 您可以針對使用案例使用不同的文字提示。 然後選取傳送。
觀察提供的輸出。 請考慮詢問與影像分析相關的後續問題以深入了解。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
您可以閱讀本文,開始使用 Azure OpenAI REST API 來部署及使用含有視覺功能的 GPT-4 Turbo 模型。
必要條件
- Azure 訂用帳戶。 免費建立一個。
- Python 3.8 或更新版本。
- 下列 Python 程式庫:
requests
、json
。 - 已部署含有視覺功能的 GPT-4 Turbo 模型的 Azure OpenAI 服務資源。 如需了解可用區域,請參閱 GPT-4 和 GPT-4 Turbo 預覽版模型可用性。 如需資源建立的詳細資訊,請參閱資源部署指南。
注意
含有視覺功能的 GPT-4 Turbo 目前不支援關閉內容篩選。
擷取金鑰和端點
若要成功呼叫 Azure OpenAI API,您需要有關 Azure OpenAI 資源的下列資訊:
變數 | 名稱 | 值 |
---|---|---|
端點 | api_base |
端點值位於 Azure 入口網站中資源的 [金鑰] 和 [端點]。 您也可以透過 Azure AI Studio 中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
索引鍵 | api_key |
金鑰值同樣也位於 Azure 入口網站中資源的 [金鑰] 和 [端點]。 Azure 會為您的資源產生兩個金鑰。 您可以使用任何一者。 |
移至您在 Azure 入口網站中的資源。 在瀏覽窗格中,選取 [資源管理] 下的 [金鑰和端點]。 複製端點值和存取金鑰值。 您可以使用 KEY 1 或 KEY 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 部署名稱。
- 將
"image"
欄位的值變更為影像的 URL。提示
您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南。
使用
python
命令執行應用程式:python quickstart.py
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
您可以閱讀本文,開始使用 Azure OpenAI Python SDK 來部署及使用含有視覺功能的 GPT-4 Turbo 模型。
程式庫原始程式碼 | 套件 (NuGet) |
必要條件
- Azure 訂用帳戶。 免費建立一個。
- Python 3.8 或更新版本。
- 下列 Python 程式庫:
os
- 已部署含有視覺功能的 GPT-4 Turbo 模型的 Azure OpenAI 服務資源。 如需了解可用區域,請參閱 GPT-4 和 GPT-4 Turbo 預覽版模型可用性。 如需資源建立的詳細資訊,請參閱資源部署指南。
設定
使用下列項目安裝 OpenAI Python 用戶端程式庫:
pip install openai
注意
程式庫是由 OpenAI 進行維護。 參照版本歷程記錄來追蹤程式庫的最新更新。
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 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 部署名稱。
- 將
"url"
欄位的值變更為影像的 URL。提示
您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南。
使用
python
命令執行應用程式:python quickstart.py
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
您可以閱讀本文,開始使用 OpenAI JavaScript SDK 來部署及使用含有視覺功能的 GPT-4 Turbo 模型。
此 SDK 是由 OpenAI 提供的 Azure 特定類型所提供。
參考文件 | 程式庫來源程式碼 | 套件 (npm) | 範例
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- LTS 版本的 Node.js
- Azure CLI 用於本地開發環境中的無密碼驗證,請使用 Azure CLI 登入以建立必要內容。
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
注意
程式庫是由 OpenAI 進行維護。 參照版本歷程記錄來追蹤程式庫的最新更新。
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 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"
建立節點應用程式
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。 然後執行 npm init
命令以使用 package.json 檔案建立節點應用程式。
npm init
安裝用戶端程式庫
使用下列項目安裝用戶端程式庫:
npm install openai @azure/identity
應用程式的 package.json 檔案將會隨著相依項目更新。
為影像提示建立新的 JavaScript 應用程式
從 azure-samples/cognitive-services-sample-data-files 中選取映像,並在環境變數中設定映像的 URL。
將 quickstart.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"] || "<endpoint>"; const imageUrl = process.env["IMAGE_URL"] || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = "2024-07-01-preview"; const deploymentName = "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); });
進行下列變更:
- 在適當的欄位中,輸入含有視覺功能的 GPT-4 Turbo 部署名稱。
- 將
"url"
欄位的值變更為影像的 URL。提示
您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南。
使用下列命令執行您的應用程式:
node quickstart.js
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
您可以閱讀本文,開始使用 OpenAI JavaScript SDK 來部署及使用含有視覺功能的 GPT-4 Turbo 模型。
此 SDK 是由 OpenAI 提供的 Azure 特定類型所提供。
參考文件 | 程式庫來源程式碼 | 套件 (npm) | 範例
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- LTS 版本的 Node.js
- TypeScript
- Azure CLI 用於本地開發環境中的無密碼驗證,請使用 Azure CLI 登入以建立必要內容。
- 在支援的區域中建立的 Azure OpenAI 資源 (請查看區域可用性)。 如需詳細資訊,請參閱使用 Azure OpenAI 建立資源及部署模型。
注意
程式庫是由 OpenAI 進行維護。 參照版本歷程記錄來追蹤程式庫的最新更新。
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 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"
建立節點應用程式
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。 然後執行 npm init
命令以使用 package.json 檔案建立節點應用程式。
npm init
安裝用戶端程式庫
使用下列項目安裝用戶端程式庫:
npm install openai @azure/identity
應用程式的 package.json 檔案將會隨著相依項目更新。
為影像提示建立新的 JavaScript 應用程式
從 azure-samples/cognitive-services-sample-data-files 中選取映像,並在環境變數中設定映像的 URL。
建立 quickstart.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"] || "<endpoint>"; const imageUrl = process.env["IMAGE_URL"] || "<image url>"; // Required Azure OpenAI deployment name and API version const apiVersion = "2024-07-01-preview"; const deploymentName = "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); });
進行下列變更:
- 在適當的欄位中,輸入含有視覺功能的 GPT-4 Turbo 部署名稱。
- 將
"url"
欄位的值變更為影像的 URL。提示
您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南。
使用下列命令建置應用程式:
tsc
使用下列命令執行您的應用程式:
node quickstart.js
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
使用本文開始使用 Azure OpenAI .NET SDK 來部署和使用 GPT-4 Turbo 搭配視覺模型。
必要條件
- Azure 訂用帳戶。 您可以免費建立一個訂用帳戶。
- The .NET 8.0 SDK
- 已部署含有視覺功能的 GPT-4 Turbo 模型的 Azure OpenAI 服務資源。 如需了解可用區域,請參閱 GPT-4 和 GPT-4 Turbo 預覽版模型可用性。 如需資源建立的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
AZURE_OPENAI_ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
AZURE_OPENAI_API_KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
建立 .NET 應用程式
使用
dotnet new
指令建立 .NET 應用程式:dotnet new console -n OpenAISpeech
變更為新應用程式的目錄:
cd OpenAISpeech
安裝用戶端程式庫
安裝客戶端連結 Azure.OpenAI
庫:
dotnet add package Azure.AI.OpenAI
建議使用無密碼驗證
無密碼驗證比密鑰型替代方案更安全,而且是連線到 Azure 服務的建議方法。 如果您選擇使用無密碼驗證,您必須完成下列作業:
新增
Azure.Identity
套件。dotnet add package Azure.Identity
將
Cognitive Services User
角色指派給您的使用者帳戶。 這可以在訪問控制 (IAM)>[新增角色指派] 底下的 OpenAI 資源 Azure 入口網站 中完成。使用 Visual Studio 或 Azure CLI 透過
az login
登入 Azure。
更新應用程式程式碼
將的內容
program.cs
取代為下列程序代碼,並使用您自己的佔位元值來更新佔位元值。using Azure; using Azure.AI.OpenAI; using Azure.Identity; using OpenAI.Chat; // Required for Passwordless auth var endpoint = new Uri("YOUR_AZURE_OPENAI_ENDPOINT"); var credentials = new AzureKeyCredential("YOUR_AZURE_OPENAI_KEY"); // var credentials = new DefaultAzureCredential(); // Use this line for Passwordless auth var deploymentName = "gpt-4"; // Default name, update with your own if needed var openAIClient = new AzureOpenAIClient(endpoint, credentials); var chatClient = openAIClient.GetChatClient(deploymentName); var imageUri = "YOUR_IMAGE_URL"; List<ChatMessage> messages = [ new UserChatMessage( ChatMessageContentPart.CreateTextMessageContentPart("Please describe the following image:"), ChatMessageContentPart.CreateImageMessageContentPart(new Uri(imageUri), "image/png")) ]; ChatCompletion chatCompletion = await chatClient.CompleteChatAsync(messages); Console.WriteLine($"[ASSISTANT]:"); Console.WriteLine($"{chatCompletion.Content[0].Text}");
重要
在生產環境中,請使用安全方式來儲存及存取 Azure Key Vault 等認證。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性。
使用
dotnet run
Visual Studio 頂端的 命令或執行按鈕執行應用程式:dotnet run
應用程式會在您為 speechFilePath
變數指定的位置產生音訊檔案。 播放裝置上的檔案,以聆聽產生的音訊。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。