分享方式:


快速入門:在 AI 聊天中使用影像

開始使用 Azure OpenAI 服務的 GPT-4 Turbo 解讀影像。

注意

模型選擇

最新的視覺功能模型是 gpt-4ogpt-4o mini。 這些處於公開預覽狀態。 最新的可用 GA 模型是 gpt-4 版本 turbo-2024-04-09

透過 Azure OpenAI Studio 以無程式碼方法開始探索含有視覺功能的 GPT-4 Turbo。

必要條件

注意

含有視覺功能的 GPT-4 Turbo 目前不支援關閉內容篩選。

移至 Azure OpenAI Studio

瀏覽至 [Azure OpenAI Studio] 並使用與您 Azure OpenAI 資源相關聯的認證來登入。 在登入工作流程期間 (或之後),選取適當的目錄、Azure 訂用帳戶和 Azure OpenAI 資源。

在 [管理] 下,透過選取模型名稱:"gpt-4" 和模型版本 "vision-preview",以選取 [部署] 和 [建立] 含有視覺功能的 GPT-4 Turbo 部署。 如需模型部署的詳細資訊,請參閱資源部署指南

在 [遊樂場] 區段下,選取 [聊天]

遊樂場

您可以透過此頁面,快速逐一查看並實驗模型的功能。

如需助理設定、聊天工作階段、設定和面板的一般協助,請參閱聊天快速入門

開始聊天工作階段以分析影像或影片

在此聊天工作階段中,您會指示助理協助了解輸入的影像。

  1. 若要開始,請從下拉式清單中選取含有視覺功能的 GPT-4 Turbo 部署。

  2. 在 [助理設定] 窗格中,提供系統訊息來引導助理。 預設系統訊息:「您是 AI 助理,可協助人員尋找資訊。」您可以根據您要上傳的影像或案例自訂系統訊息。

    注意

    建議將系統訊息更為工作專屬內容,藉此避免模型的不實用回應。

  3. 儲存變更,並在系統提示確認更新系統訊息時,選取 [繼續]

  4. 在 [聊天工作階段] 窗格中,輸入文字提示 (例如「描述此影像」) 並使用附件按鈕上傳影像。 您可以針對使用案例使用不同的文字提示。 然後選取傳送

  5. 觀察提供的輸出。 請考慮詢問與影像分析相關的後續問題以深入了解。

OpenAI Studio 聊天遊樂場的螢幕擷取畫面。

清除資源

如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。

您可以閱讀本文,開始使用 Azure OpenAI REST API 來部署及使用含有視覺功能的 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 1KEY 2 值。 持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

螢幕擷取畫面:顯示 Azure 入口網站中 Azure OpenAI 資源的 [金鑰] 和 [端點] 頁面。

建立新的 Python 應用程式

建立命名為 quickstart.py 的新 Python 檔案。 在您慣用的編輯器或整合式開發環境 (IDE) 中,開啟新檔案。

  1. 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)
    
  2. 進行下列變更:

    1. 在適當的欄位中輸入您的端點 URL 和金鑰。
    2. 在適當的欄位中,輸入含有視覺功能的 GPT-4 Turbo 部署名稱。
    3. "image" 欄位的值變更為影像的 URL。

      提示

      您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南

  3. 使用 python 命令執行應用程式:

    python quickstart.py
    

清除資源

如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。

您可以閱讀本文,開始使用 Azure OpenAI Python SDK 來部署及使用含有視覺功能的 GPT-4 Turbo 模型。

程式庫原始程式碼 | 套件 (NuGet) |

必要條件

設定

使用下列項目安裝 OpenAI Python 用戶端程式庫:

pip install openai

注意

程式庫是由 OpenAI 進行維護。 參照版本歷程記錄來追蹤程式庫的最新更新。

擷取金鑰和端點

若要成功對 Azure OpenAI 進行呼叫,您需要端點金鑰

變數名稱
ENDPOINT 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1KEY2。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

Azure 入口網站中某個 Azure OpenAI 資源,以紅色圓圈強調端點和存取金鑰位置的概觀使用者介面螢幕擷取畫面。

環境變數

為您的金鑰和端點建立及指派永續性環境變數。

重要

如果您使用 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) 中,開啟新檔案。

  1. 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)
    
  2. 進行下列變更:

    1. 在適當的欄位中,輸入含有視覺功能的 GPT-4 Turbo 部署名稱。
    2. "url" 欄位的值變更為影像的 URL。

      提示

      您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南

  3. 使用 python 命令執行應用程式:

    python quickstart.py
    

清除資源

如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。

您可以閱讀本文,開始使用 OpenAI JavaScript SDK 來部署及使用含有視覺功能的 GPT-4 Turbo 模型。

此 SDK 是由 OpenAI 提供的 Azure 特定類型所提供。

參考文件 | 程式庫來源程式碼 | 套件 (npm) | 範例

必要條件


注意

程式庫是由 OpenAI 進行維護。 參照版本歷程記錄來追蹤程式庫的最新更新。

擷取金鑰和端點

若要成功對 Azure OpenAI 進行呼叫,您需要端點金鑰

變數名稱
ENDPOINT 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1KEY2。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

Azure 入口網站中某個 Azure OpenAI 資源,以紅色圓圈強調端點和存取金鑰位置的概觀使用者介面螢幕擷取畫面。

環境變數

為您的金鑰和端點建立及指派永續性環境變數。

重要

如果您使用 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。

  1. 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);
    });
    
  2. 進行下列變更:

    1. 在適當的欄位中,輸入含有視覺功能的 GPT-4 Turbo 部署名稱。
    2. "url" 欄位的值變更為影像的 URL。

      提示

      您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南

  3. 使用下列命令執行您的應用程式:

    node quickstart.js
    

清除資源

如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。

您可以閱讀本文,開始使用 OpenAI JavaScript SDK 來部署及使用含有視覺功能的 GPT-4 Turbo 模型。

此 SDK 是由 OpenAI 提供的 Azure 特定類型所提供。

參考文件 | 程式庫來源程式碼 | 套件 (npm) | 範例

必要條件

注意

程式庫是由 OpenAI 進行維護。 參照版本歷程記錄來追蹤程式庫的最新更新。

擷取金鑰和端點

若要成功對 Azure OpenAI 進行呼叫,您需要端點金鑰

變數名稱
ENDPOINT 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1KEY2。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

Azure 入口網站中某個 Azure OpenAI 資源,以紅色圓圈強調端點和存取金鑰位置的概觀使用者介面螢幕擷取畫面。

環境變數

為您的金鑰和端點建立及指派永續性環境變數。

重要

如果您使用 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。

  1. 建立 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);
    });
    
  2. 進行下列變更:

    1. 在適當的欄位中,輸入含有視覺功能的 GPT-4 Turbo 部署名稱。
    2. "url" 欄位的值變更為影像的 URL。

      提示

      您也可以使用 Base 64 編碼影像資料,而不是 URL。 如需詳細資訊,請參閱含有視覺功能的 GPT-4 Turbo 操作指南

  3. 使用下列命令建置應用程式:

    tsc
    
  4. 使用下列命令執行您的應用程式:

    node quickstart.js
    

清除資源

如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。

使用本文開始使用 Azure OpenAI .NET SDK 來部署和使用 GPT-4 Turbo 搭配視覺模型。

必要條件

設定

擷取金鑰和端點

若要成功對 Azure OpenAI 進行呼叫,您需要端點金鑰

變數名稱
AZURE_OPENAI_ENDPOINT 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Studio 中的 [部署 ] 頁面找到端點。 範例端點為:https://docs-test-001.openai.azure.com/
AZURE_OPENAI_API_KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1KEY2。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。

此螢幕擷取畫面顯示 Azure 入口網站中某個 Azure OpenAI 資源的概觀 UI,其中標示出端點和存取金鑰位置。

建立 .NET 應用程式

  1. 使用 dotnet new 指令建立 .NET 應用程式:

    dotnet new console -n OpenAISpeech
    
  2. 變更為新應用程式的目錄:

    cd OpenAISpeech
    

安裝用戶端程式庫

安裝客戶端連結 Azure.OpenAI 庫:

dotnet add package Azure.AI.OpenAI

無密碼驗證比密鑰型替代方案更安全,而且是連線到 Azure 服務的建議方法。 如果您選擇使用無密碼驗證,您必須完成下列作業:

  1. 新增 Azure.Identity 套件。

    dotnet add package Azure.Identity
    
  2. Cognitive Services User 角色指派給您的使用者帳戶。 這可以在訪問控制 (IAM)> [新增角色指派] 底下的 OpenAI 資源 Azure 入口網站 中完成。

  3. 使用 Visual Studio 或 Azure CLI 透過 az login登入 Azure。

更新應用程式程式碼

  1. 將的內容 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 服務安全性

  2. 使用 dotnet run Visual Studio 頂端的 命令或執行按鈕執行應用程式:

    dotnet run
    

應用程式會在您為 speechFilePath 變數指定的位置產生音訊檔案。 播放裝置上的檔案,以聆聽產生的音訊。

清除資源

如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。

下一步