快速入門:開始使用 Azure OpenAI 服務來產生文字

使用本文開始對 Azure OpenAI 進行第一次呼叫。

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶

  • 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 的存取權。

    目前只有應用程式會授予此服務的存取權。 您可以填妥 https://aka.ms/oai/access 的表單,以申請 Azure OpenAI 的存取權。 如有問題,請在此存放庫中提出問題來與我們連絡。

  • 已部署模型的 Azure OpenAI 資源。 如需模型部署的詳細資訊,請參閱資源部署指南

提示

試用新的統一 Azure AI Studio (預覽版), 將來自多個 Azure AI 服務的功能整合在一起。

移至 Azure OpenAI Studio

流覽至 Azure OpenAI Studio, https://oai.azure.com/ 並使用可存取 OpenAI 資源的認證登入。 在登入工作流程期間 (或之後),選取適當的目錄、Azure 訂用帳戶和 Azure OpenAI 資源。

從 Azure OpenAI Studio 登陸頁面流覽至進一步探索範例,以快速完成、管理您的部署和模型,以及尋找學習資源,例如檔和社群論壇。

Azure OpenAI Studio 登陸頁面的螢幕快照。

移至實驗和微調工作流程的 遊樂場

操場

透過 GPT-3 遊樂場開始探索無程式代碼方法的 Azure OpenAI 功能。 這隻是一個文字框,您可以在其中提交提示以產生完成。 您可以從此頁面快速反覆運算並實驗功能。

Azure OpenAI Studio 遊樂場頁面的螢幕快照,其中已醒目提示區段。

您可以選取部署,並從一些預先載入的範例中選擇以開始使用。 如果您的資源沒有部署,請選取 [建立部署 ],並遵循精靈所提供的指示。 如需模型部署的詳細資訊,請參閱資源部署指南

您可以實驗組態設定,例如溫度和回應前文字,以改善工作的效能。 您可以在 REST API深入瞭解每個參數。

  • 選取 [ 產生] 按鈕會將輸入的文字傳送至完成 API,並將結果串流回文本框中。
  • 選取 [復原] 按鈕以復原先前的產生呼叫。
  • 選取 [重新產生] 按鈕會一併完成復原和產生呼叫。

Azure OpenAI 也會對提示輸入和產生的輸出執行內容仲裁。 如果偵測到有害內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。

在 GPT-3 遊樂場中,您也可以根據選取的設定預先填入 Python 和 curl 程式代碼範例。 只要選取範例下拉式功能表旁的 [檢視程式碼] 即可。 您可以撰寫應用程式,使用 OpenAI Python SDK、curl 或其他 REST API 用戶端完成相同的工作。

嘗試文字摘要

若要在 GPT-3 遊樂場中使用 Azure OpenAI 進行文字摘要,請遵循下列步驟:

  1. 登入 Azure OpenAI Studio

  2. 選取要使用的訂用帳戶和 OpenAI 資源。

  3. 選取 登陸頁面頂端的 GPT-3 遊樂場

  4. 從 [部署] 下拉式功能表中選取部署。 如果您的資源沒有部署,請選取 [建立部署 ],然後重新流覽此步驟。

  5. 從 [範例] 下拉式清單中選取 [摘要文字]。

    Azure OpenAI Studio 遊樂場頁面的螢幕快照,其中顯示 [摘要文字] 下拉式清單選取專案

  6. 選取 Generate。 Azure OpenAI 會嘗試擷取文字的內容,並簡潔地重新命名。 您應該會得到類似下列文字的結果:

    Tl;dr A neutron star is the collapsed core of a supergiant star. These incredibly dense objects are incredibly fascinating due to their strange properties and their potential for phenomena such as extreme gravitational forces and a strong magnetic field.
    

回應的正確性可能會因模型而異。 此範例中的 Davinci 型模型很適合這種摘要,而 Codex 型模型在此特定工作中不會執行。

清除資源

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

下一步

原始程式碼套件 (NuGet) | 範例 |

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 服務的存取權。 目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。
  • .NET Core 的 目前版本
  • 已部署模型的 Azure OpenAI 服務資源 gpt-35-turbo-instruct 。 如需模型部署的詳細資訊,請參閱資源部署指南

設定

建立新的 .NET Core 應用程式

在主控台視窗中 (例如 cmd、PowerShell 或 Bash),使用 dotnet new 命令建立名為 azure-openai-quickstart 的新主控台應用程式。 此命令會建立具有單一 C# 原始程式檔的簡單 「Hello World」 專案: Program.cs

dotnet new console -n azure-openai-quickstart

將目錄變更為新建立的應用程式資料夾。 您可以使用下列命令來建置應用程式:

dotnet build

建置輸出應該不會有警告或錯誤。

...
Build succeeded.
 0 Warning(s)
 0 Error(s)
...

使用下列項目安裝 OpenAI .NET 用戶端連結庫:

dotnet add package Azure.AI.OpenAI --prerelease

擷取金鑰和端點

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

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>程式代碼檢視中找到值。> 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

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

Azure 入口網站 中 Azure OpenAI 資源概觀 UI 的螢幕快照,其中端點和存取密鑰位置會以紅色圓圈圈。

環境變數

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

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

建立範例應用程式

從項目目錄中,開啟 program.cs 檔案,並以下列程式代碼取代 :

using Azure;
using Azure.AI.OpenAI;
using static System.Environment;

string endpoint = GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT");
string key = GetEnvironmentVariable("AZURE_OPENAI_API_KEY");

var client = new OpenAIClient(new Uri(endpoint), new AzureKeyCredential(key));

CompletionsOptions completionsOptions = new()
{
    DeploymentName = "gpt-35-turbo-instruct", 
    Prompts = { "When was Microsoft founded?" },
};

Response<Completions> completionsResponse = client.GetCompletions(completionsOptions);
string completion = completionsResponse.Value.Choices[0].Text;
Console.WriteLine($"Chatbot: {completion}");

重要

在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

dotnet run program.cs

輸出

Chatbot:

Microsoft was founded on April 4, 1975.

清除資源

如果您想要清除並移除 Azure OpenAI 資源,您可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。

下一步

原始程式碼套件 (Go)| 範例 |

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 服務的存取權。 目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。
  • 在本機安裝 Go 1.21.0 或更高版本。
  • 已部署模型的 Azure OpenAI 服務資源 gpt-35-turbo-instuct 。 如需模型部署的詳細資訊,請參閱資源部署指南

設定

擷取金鑰和端點

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

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>程式代碼檢視中找到值。> 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

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

Azure 入口網站 中 Azure OpenAI 資源概觀 UI 的螢幕快照,其中端點和存取密鑰位置會以紅色圓圈。

環境變數

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

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

建立範例應用程式

建立名為 completions.go 的新檔案。 將下列程式代碼複製到 completions.go 檔案。

package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Azure/azure-sdk-for-go/sdk/ai/azopenai"
	"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
)

func main() {
	azureOpenAIKey := os.Getenv("AZURE_OPENAI_API_KEY")
	modelDeploymentID := "gpt-35-turbo-instruct"

	azureOpenAIEndpoint := os.Getenv("AZURE_OPENAI_ENDPOINT")

	if azureOpenAIKey == "" || modelDeploymentID == "" || azureOpenAIEndpoint == "" {
		fmt.Fprintf(os.Stderr, "Skipping example, environment variables missing\n")
		return
	}

	keyCredential, err := azopenai.NewKeyCredential(azureOpenAIKey)

	if err != nil {
		// TODO: handle error
	}

	client, err := azopenai.NewClientWithKeyCredential(azureOpenAIEndpoint, keyCredential, nil)

	if err != nil {
		// TODO: handle error
	}

	resp, err := client.GetCompletions(context.TODO(), azopenai.CompletionsOptions{
		Prompt:       []string{"What is Azure OpenAI, in 20 words or less"},
		MaxTokens:    to.Ptr(int32(2048)),
		Temperature:  to.Ptr(float32(0.0)),
		Deployment: modelDeploymentID,
	}, nil)

	if err != nil {
		// TODO: handle error
	}

	for _, choice := range resp.Choices {
		fmt.Fprintf(os.Stderr, "Result: %s\n", *choice.Text)
	}

}

重要

在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

現在開啟命令提示字元並執行:

go mod init completions.go

下一次執行:

go mod tidy
go run completions.go

輸出

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

清除資源

如果您想要清除並移除 Azure OpenAI 資源,您可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。

下一步

原始碼成品 (Maven) | 範例 |

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 服務的存取權。 目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。
  • 已部署模型的 Azure OpenAI 服務資源 gpt-35-turbo-instruct 。 如需模型部署的詳細資訊,請參閱資源部署指南

設定

擷取金鑰和端點

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

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>程式代碼檢視中找到值。> 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

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

Azure 入口網站 中 Azure OpenAI 資源概觀 UI 的螢幕快照,其中端點和存取密鑰位置會以紅色圓圈顯示。

環境變數

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

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

建立新的 Java 應用程式

建立新的 Gradle 專案。

在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。

mkdir myapp && cd myapp

從您的工作目錄執行 gradle init 命令。 此命令會建立 Gradle 的基本組建檔案,包括 build.gradle.kts,此檔案將在執行階段用來建立及設定您的應用程式。

gradle init --type basic

出現選擇 DSL 的提示時,請選取 [Kotlin]

安裝 Java SDK

本快速入門會使用 Gradle 相依性管理員。 您可以在 Maven 中央存放庫中找到用戶端程式庫和其他相依性管理員的資訊。

找出 build.gradle.kts ,並使用您慣用的 IDE 或文本編輯器加以開啟。 然後複製下列組建組態。 此組態會將專案定義為 Java 應用程式,其進入點為 OpenAIQuickstart 類別。 它會匯入 Azure AI 視覺連結庫。

plugins {
    java
    application
}
application { 
    mainClass.set("GetCompletionsSample")
}
repositories {
    mavenCentral()
}
dependencies {
    implementation(group = "com.azure", name = "azure-ai-openai", version = "1.0.0-beta.3")
    implementation("org.slf4j:slf4j-simple:1.7.9")
}

建立範例應用程式

  1. 建立 Java 檔案。

    從您的工作目錄中,執行下列命令以建立專案來源資料夾:

    mkdir -p src/main/java
    

    流覽至新的資料夾,並建立名為 GetCompletionsSample.java 的檔案。

  2. 在慣用的編輯器或 IDE 中開啟GetCompletionsSample.java,並貼上下列程式代碼。

    package com.azure.ai.openai.usage;
    
    import com.azure.ai.openai.OpenAIClient;
    import com.azure.ai.openai.OpenAIClientBuilder;
    import com.azure.ai.openai.models.Choice;
    import com.azure.ai.openai.models.Completions;
    import com.azure.ai.openai.models.CompletionsOptions;
    import com.azure.ai.openai.models.CompletionsUsage;
    import com.azure.core.credential.AzureKeyCredential;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class GetCompletionsSample {
    
        public static void main(String[] args) {
            String azureOpenaiKey = System.getenv("AZURE_OPENAI_API_KEY");;
            String endpoint = System.getenv("AZURE_OPENAI_ENDPOINT");;
            String deploymentOrModelId = "gpt-35-turbo-instruct";
    
            OpenAIClient client = new OpenAIClientBuilder()
                .endpoint(endpoint)
                .credential(new AzureKeyCredential(azureOpenaiKey))
                .buildClient();
    
            List<String> prompt = new ArrayList<>();
            prompt.add("When was Microsoft founded?");
    
            Completions completions = client.getCompletions(deploymentOrModelId, new CompletionsOptions(prompt));
    
            System.out.printf("Model ID=%s is created at %s.%n", completions.getId(), completions.getCreatedAt());
            for (Choice choice : completions.getChoices()) {
                System.out.printf("Index: %d, Text: %s.%n", choice.getIndex(), choice.getText());
            }
    
            CompletionsUsage usage = completions.getUsage();
            System.out.printf("Usage: number of prompt token is %d, "
                    + "number of completion token is %d, and number of total tokens in request and response is %d.%n",
                usage.getPromptTokens(), usage.getCompletionTokens(), usage.getTotalTokens());
        }
    }
    

    重要

    在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

  3. 瀏覽回專案根資料夾,並使用下列專案建置應用程式:

    gradle build
    

    然後,使用 命令執行 gradle run 它:

    gradle run
    

輸出

Model ID=cmpl-7JZRbWuEuHX8ozzG3BXC2v37q90mL is created at 1684898835.
Index: 0, Text:

Microsoft was founded on April 4, 1975..
Usage: number of prompt token is 5, number of completion token is 11, and number of total tokens in request and response is 16.

清除資源

如果您想要清除並移除 Azure OpenAI 資源,您可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。

下一步

原始碼成品 (Maven) | 範例 |

必要條件

設定

擷取金鑰和端點

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

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>程式代碼檢視中找到值。> 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

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

Azure 入口網站 中 Azure OpenAI 資源概觀 UI 的螢幕快照,其中端點和存取密鑰位置會以紅色圓圈圈。

環境變數

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

注意

Spring AI 會將模型名稱預設為 gpt-35-turbo。 只有在您已使用不同的名稱部署模型時,才需要提供 SPRING_AI_AZURE_OPENAI_MODEL 值。

export SPRING_AI_AZURE_OPENAI_API_KEY="REPLACE_WITH_YOUR_KEY_VALUE_HERE"
export SPRING_AI_AZURE_OPENAI_ENDPOINT="REPLACE_WITH_YOUR_ENDPOINT_HERE"
export SPRING_AI_AZURE_OPENAI_MODEL="REPLACE_WITH_YOUR_MODEL_NAME_HERE"

建立新的 Spring 應用程式

建立新的 Spring 專案。

在Bash視窗中,為您的應用程式建立新的目錄,然後流覽至該目錄。

mkdir ai-completion-demo && cd ai-completion-demo

從您的工作目錄執行 spring init 命令。 此命令會為您的 Spring 專案建立標準目錄結構,包括主要 Java 類別來源檔案,以及 用於管理 Maven 型專案的pom.xml 檔案。

spring init -a ai-completion-demo -n AICompletion --force --build maven -x

產生的檔案與資料夾類似下列結構:

ai-completion-demo/
|-- pom.xml
|-- mvn
|-- mvn.cmd
|-- HELP.md
|-- src/
    |-- main/
    |   |-- resources/
    |   |   |-- application.properties
    |   |-- java/
    |       |-- com/
    |           |-- example/
    |               |-- aicompletiondemo/
    |                   |-- AiCompletionApplication.java
    |-- test/
        |-- java/
            |-- com/
                |-- example/
                    |-- aicompletiondemo/
                        |-- AiCompletionApplicationTests.java

編輯 Spring 應用程式

  1. 編輯pom.xml檔案。

    從項目目錄的根目錄中,在慣用的編輯器或 IDE 中開啟 pom.xml 檔案,並以下列內容覆寫檔案:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>3.2.0</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>ai-completion-demo</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>AICompletion</name>
        <description>Demo project for Spring Boot</description>
        <properties>
            <java.version>17</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.experimental.ai</groupId>
                <artifactId>spring-ai-azure-openai-spring-boot-starter</artifactId>
                <version>0.7.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        <repositories>
            <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
            </repository>
        </repositories>
    </project>
    
  2. 從 src/main/java/com/example/aicompletiondemo 資料夾,開啟慣用編輯器或 IDE 中的AiCompletionApplication.java,並貼上下列程式代碼:

    package com.example.aicompletiondemo;
    
    import java.util.Collections;
    import java.util.List;
    
    import org.springframework.ai.client.AiClient;
    import org.springframework.ai.prompt.Prompt;
    import org.springframework.ai.prompt.messages.Message;
    import org.springframework.ai.prompt.messages.MessageType;
    import org.springframework.ai.prompt.messages.UserMessage;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class AiCompletionApplication implements CommandLineRunner
    {
        private static final String ROLE_INFO_KEY = "role";
    
        @Autowired
        private AiClient aiClient;
    
        public static void main(String[] args) {
            SpringApplication.run(AiCompletionApplication.class, args);
        }
    
        @Override
        public void run(String... args) throws Exception
        {
            System.out.println(String.format("Sending completion prompt to AI service. One moment please...\r\n"));
    
            final List<Message> msgs =
                    Collections.singletonList(new UserMessage("When was Microsoft founded?"));
    
            final var resps = aiClient.generate(new Prompt(msgs));
    
            System.out.println(String.format("Prompt created %d generated response(s).", resps.getGenerations().size()));
    
            resps.getGenerations().stream()
              .forEach(gen -> {
                  final var role = gen.getInfo().getOrDefault(ROLE_INFO_KEY, MessageType.ASSISTANT.getValue());
    
                  System.out.println(String.format("Generated respose from \"%s\": %s", role, gen.getText()));
              });
        }
    
    }
    

    重要

    在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

  3. 瀏覽回專案根資料夾,並使用下列命令執行應用程式:

    ./mvnw spring-boot:run
    

輸出

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.1.5)

2023-11-07T12:47:46.126-06:00  INFO 98687 --- [           main] c.e.a.AiCompletionApplication            : No active profile set, falling back to 1 default profile: "default"
2023-11-07T12:47:46.823-06:00  INFO 98687 --- [           main] c.e.a.AiCompletionApplication            : Started AiCompletionApplication in 0.925 seconds (process running for 1.238)
Sending completion prompt to AI service. One moment please...

Prompt created 1 generated response(s).
Generated respose from "assistant": Microsoft was founded on April 4, 1975.

清除資源

如果您想要清除並移除 Azure OpenAI 資源,您可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。

下一步

如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫

原始程式碼套件 (npm) | 範例 |

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶
  • 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 服務的存取權。 目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。
  • LTS 版本的 Node.js
  • 已部署模型的 Azure OpenAI 服務資源 gpt-35-turbo-instruct 。 如需模型部署的詳細資訊,請參閱資源部署指南

設定

擷取金鑰和端點

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

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>程式代碼檢視中找到值。> 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2

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

Azure 入口網站 中 Azure OpenAI 資源概觀 UI 的螢幕快照,其中端點和存取密鑰位置會以紅色圓圈。

環境變數

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

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 安裝適用於 JavaScript 的 Azure OpenAI 用戶端連結庫:

npm install @azure/openai

您的應用程式package.json檔案將會隨著相依性更新。

建立範例應用程式

開啟您在其中建立新專案的命令提示字元,並建立名為 Completion.js 的新檔案。 將下列程式代碼複製到Completion.js檔案中。

const { OpenAIClient, AzureKeyCredential } = require("@azure/openai");
const endpoint = process.env["AZURE_OPENAI_ENDPOINT"] ;
const azureApiKey = process.env["AZURE_OPENAI_API_KEY"] ;

const prompt = ["When was Microsoft founded?"];

async function main() {
  console.log("== Get completions Sample ==");

  const client = new OpenAIClient(endpoint, new AzureKeyCredential(azureApiKey));
  const deploymentId = "gpt-35-turbo-instruct";
  const result = await client.getCompletions(deploymentId, prompt);

  for (const choice of result.choices) {
    console.log(choice.text);
  }
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

module.exports = { main };

重要

在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

使用下列命令來執行指令碼:

node.exe Completion.js

輸出

== Get completions Sample ==

Microsoft was founded on April 4, 1975.

清除資源

如果您想要清除並移除 Azure OpenAI 資源,您可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。

下一步

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

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶

  • 在所需的 Azure OpenAI 訂用帳戶中授與服務的存取權

    目前只有應用程式會授予此服務的存取權。 您可以填妥 https://aka.ms/oai/access 的表單,以申請 Azure OpenAI 的存取權。 如有問題,請在此存放庫中提出問題來與我們連絡。

  • Python 3.8 或更新版本

  • 下列為 Python 程式庫:os、requests、json

  • 已部署模型的 Azure OpenAI 服務資源 gpt-35-turbo-instruct 。 如需模型部署的詳細資訊,請參閱資源部署指南

設定

使用下列項目安裝 OpenAI Python 用戶端連結庫:

pip install openai

注意

此程式庫是由 OpenAI 維護,目前為預覽版本。 參閱版本歷程記錄version.py 認可歷程記錄來追蹤程式庫的最新更新。

擷取金鑰和端點

若要成功對 Azure OpenAI 服務進行呼叫,您需要下列專案:

變數名稱
ENDPOINT 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰和端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>檢視程式代碼中找到此值。> 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 檢查來自 Azure 入口網站 的資源時,可以在 [金鑰和端點] 區段中找到此值。 您可以使用 KEY1KEY2
DEPLOYMENT-NAME 此值會對應至您在部署模型時為部署選擇的自訂名稱。 此值可在 Azure 入口網站 中的資源管理>模型部署中找到,或是在 Azure OpenAI Studio 中的管理>部署找到。

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

Azure 入口網站 中 Azure OpenAI 資源的 [概觀] 刀鋒視窗螢幕快照,其中端點和存取密鑰位置會以紅色圓圈。

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

環境變數

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

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

建立新的 Python 應用程式

  1. 建立名為 quickstart.py 的新 Python 檔案。 然後在您慣用的編輯器或 IDE 中開啟它。

  2. 將 quickstart.py 的內容取代為下列程式碼。 變更程式代碼以新增金鑰、端點和部署名稱:

import os
from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-02-01",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )
    
deployment_name='REPLACE_WITH_YOUR_DEPLOYMENT_NAME' #This will correspond to the custom name you chose for your deployment when you deployed a model. Use a gpt-35-turbo-instruct deployment. 
    
# Send a completion call to generate an answer
print('Sending a test completion job')
start_phrase = 'Write a tagline for an ice cream shop. '
response = client.completions.create(model=deployment_name, prompt=start_phrase, max_tokens=10)
print(start_phrase+response.choices[0].text)

重要

在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

  1. python 快速入門檔案上使用 命令執行應用程式:

    python quickstart.py
    

輸出

輸出會在提示之後 Write a tagline for an ice cream shop. 包含回應文字。 在此範例中傳 The coldest ice cream in town! 回的 Azure OpenAI。

Sending a test completion job
Write a tagline for an ice cream shop. The coldest ice cream in town!

多次執行程序代碼,以查看您取得的其他回應類型,因為回應不一定相同。

瞭解您的結果

由於 我們的範例 Write a tagline for an ice cream shop. 提供很少的內容,因此模型通常不一定會傳回預期的結果。 如果回應看似非預期或截斷,您可以調整令牌數目上限。

Azure OpenAI 也會對提示輸入和產生的輸出執行內容仲裁。 如果偵測到有害內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。

清除資源

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

下一步

必要條件

  • Azure 訂用帳戶 - 建立免費帳戶

  • 在所需的 Azure OpenAI 訂用帳戶中授與服務的存取權

    目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。 如有問題,請在此存放庫中提出問題來與我們連絡。

  • Python 3.8 或更新版本

  • 下列為 Python 程式庫:os、requests、json

  • 已部署模型的 Azure OpenAI 資源。 如需模型部署的詳細資訊,請參閱資源部署指南

設定

擷取金鑰和端點

若要成功對 Azure OpenAI 進行呼叫,您需要下列專案:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Azure OpenAI Studio]>[遊樂場]>[程式碼檢視] 中找到該值。 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2
DEPLOYMENT-NAME 此值會對應至您在部署模型時為部署選擇的自訂名稱。 此值可以在 Azure 入口網站中的 [資源管理]>[部署] 底下找到,也可以在 Azure OpenAI Studio 的 [管理]>[部署]下找到。

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

Azure 入口網站 中 Azure OpenAI 資源的 [概觀] 刀鋒視窗螢幕快照,其中端點和存取密鑰位置會以紅色圓圈。

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

環境變數

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

setx AZURE_OPENAI_API_KEY "REPLACE_WITH_YOUR_KEY_VALUE_HERE" 
setx AZURE_OPENAI_ENDPOINT "REPLACE_WITH_YOUR_ENDPOINT_HERE" 

REST API

在bash殼層中,執行下列命令。 您必須將 取代 gpt-35-turbo-instruct 為您部署 gpt-35-turbo-instruct 模型時所選擇的部署名稱。 除非您選擇與基礎模型名稱相同的部署名稱,否則輸入模型名稱會導致錯誤。

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/gpt-35-turbo-instruct/completions?api-version=2024-02-01 \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d "{\"prompt\": \"Once upon a time\"}"

使用範例端點的命令第一行格式會顯示如下 curl https://docs-test-001.openai.azure.com/openai/deployments/{YOUR-DEPLOYMENT_NAME_HERE}/completions?api-version=2024-02-01 \。 如果您遇到錯誤雙重檢查,請確定端點與 /openai/deployments之間沒有兩倍/的 分隔。

如果您想要在一般的 Windows 命令提示字元中執行此命令,您必須改變文字以移除 \ 和 換行符。

重要

在生產環境中,請使用安全的方式來儲存和存取您的認證,例如 Azure Key Vault。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

輸出

完成 API 的輸出如下所示。

{
    "id": "ID of your call",
    "object": "text_completion",
    "created": 1675444965,
    "model": "gpt-35-turbo-instruct",
    "choices": [
        {
            "text": " there lived in a little village a woman who was known as the meanest",
            "index": 0,
            "finish_reason": "length",
            "logprobs": null
        }
    ],
    "usage": {
        "completion_tokens": 16,
        "prompt_tokens": 3,
        "total_tokens": 19
    }
}

Azure OpenAI 服務也會對提示輸入和產生的輸出執行 con 帳篷模式 ration。 如果偵測到有害內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。

清除資源

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

下一步

必要條件

擷取金鑰和端點

若要成功對 Azure OpenAI 服務進行呼叫,您需要下列專案:

變數名稱
ENDPOINT 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Azure OpenAI Studio]>[遊樂場]>[程式碼檢視] 中找到該值。 範例端點為:https://docs-test-001.openai.azure.com/
API-KEY 從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1KEY2
DEPLOYMENT-NAME 此值會對應至您在部署模型時為部署選擇的自訂名稱。 此值可以在 Azure 入口網站中的 [資源管理]>[部署] 底下找到,也可以在 Azure OpenAI Studio 的 [管理]>[部署]下找到。

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

Azure 入口網站 中 Azure OpenAI 資源的 [概觀] 刀鋒視窗螢幕快照,其中端點和存取密鑰位置會以紅色圓圈。

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

環境變數

$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'

建立新的 PowerShell 腳本

  1. 建立名為 quickstart.ps1 的新 PowerShell 檔案。 然後在您慣用的編輯器或 IDE 中開啟它。

  2. 以下列程序代碼取代 quickstart.ps1 的內容。 變更程式代碼以新增金鑰、端點和部署名稱:

    # Azure OpenAI metadata variables
    $openai = @{
        api_key     = $Env:AZURE_OPENAI_API_KEY
        api_base    = $Env:AZURE_OPENAI_ENDPOINT # your endpoint should look like the following https://YOUR_RESOURCE_NAME.openai.azure.com/
        api_version = '2024-02-01' # this may change in the future
        name        = 'YOUR-DEPLOYMENT-NAME-HERE' #This will correspond to the custom name you chose for your deployment when you deployed a model.
    }
    
    # Completion text
    $prompt = 'Once upon a time...'
    
    # Header for authentication
    $headers = [ordered]@{
        'api-key' = $openai.api_key
    }
    
    # Adjust these values to fine-tune completions
    $body = [ordered]@{
        prompt      = $prompt
        max_tokens  = 10
        temperature = 2
        top_p       = 0.5
    } | ConvertTo-Json
    
    # Send a completion call to generate an answer
    $url = "$($openai.api_base)/openai/deployments/$($openai.name)/completions?api-version=$($openai.api_version)"
    
    $response = Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Post -ContentType 'application/json'
    return "$prompt`n$($response.choices[0].text)"
    

    重要

    針對生產環境,請使用安全的方式來儲存和存取您的認證,例如PowerShell秘密管理與 Azure 金鑰保存庫。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。

  3. 使用 PowerShell 執行腳本:

    ./quickstart.ps1
    

輸出

輸出會在提示之後 Once upon a time 包含回應文字。 在此範例中傳 There was a world beyond the mist...where a 回的 Azure OpenAI。

Once upon a time...
 There was a world beyond the mist...where a

多次執行程序代碼,以查看您取得的其他回應類型,因為回應不一定相同。

瞭解您的結果

由於 我們的範例 Once upon a time... 提供很少的內容,因此模型通常不一定會傳回預期的結果。 如果回應看似非預期或截斷,您可以調整令牌數目上限。

Azure OpenAI 也會對提示輸入和產生的輸出執行內容仲裁。 如果偵測到有害內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。

清除資源

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

下一步