快速入門:使用舊版完成 API 開始產生文字
使用本文開始對 Azure OpenAI 進行第一次呼叫。
必要條件
移至 Azure OpenAI Studio
在 https://oai.azure.com/ 瀏覽至 Azure OpenAI Studio,並使用可存取 Azure OpenAI 資源的認證來登入。 在登入工作流程期間 (或之後),選取適當的目錄、Azure 訂用帳戶和 Azure OpenAI 資源。
從 Azure OpenAI Studio 登陸頁面進一步瀏覽,以探索提示完成的範例、管理您的部署和模型,以及尋找文件與社群論壇等學習資源。
遊樂場
透過 GPT-3 遊樂場開始探索無程式碼方法的 Azure OpenAI 功能。 這只是一個文字方塊,您可以在其中提交提示來產生完成。 您可以透過此頁面,快速逐一查看並實驗各種功能。
您可以選取部署,並從幾個預先載入的範例中選擇以開始使用。 如果您的資源沒有部署,請選取 [建立部署],並遵循精靈所提供的指示。 如需模型部署的詳細資訊,請參閱資源部署指南。
您可以實驗組態設定,例如溫度和回應前文字,以改善工作的效能。 您可以在 REST API 中深入了解每個參數。
- 選取 [產生] 按鈕會將輸入的文字傳送至完成 API,並將結果串流回文字方塊。
- 選取 [復原] 按鈕會復原先前的產生呼叫。
- 選取 [重新產生] 按鈕會一併完成復原和產生呼叫。
Azure OpenAI 也會對提示輸入和產生的輸出執行內容仲裁。 如果偵測到有害的內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。
在 Completions 遊樂場中,您也可以檢視根據您選取的設定預先填入的 Python 和 curl 程式碼範例。 只要選取範例下拉式清單旁的 [檢視程式碼] 即可。 您可以撰寫應用程式,使用 OpenAI Python SDK、curl 或其他 REST API 用戶端完成相同的工作。
嘗試文字摘要
若要在 Completions 遊樂場中使用 Azure OpenAI 進行文字摘要,請遵循下列步驟:
選取要處理的訂用帳戶和 OpenAI 資源。
在登陸頁面上選取 [Completions 遊樂場]。
從 [部署] 下拉式清單中選取您的部署。 如果您的資源沒有部署,請選取 [建立部署],然後重新進行此步驟。
輸入模型的提示。
選取
Generate
。 Azure OpenAI 會嘗試擷取文字的內容,並以簡潔方式重新撰寫。 您應該會得到類似下列文字的結果:
回應的正確性可能會因每個模型而有所不同。 本範例中基於 gpt-35-turbo-instruct
的模型非常適合這種類型的摘要,但一般我們會建議使用替代聊天完成 API,除非您有特別適合完成 API 的特定使用案例。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 深入瞭解如何在完成操作指南中產生最佳的完成。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)。
原始程式碼 (英文) | 套件 (NuGet) (英文) | 範例 (英文)
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 最新版 .NET Core
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
建立新的 .NET Core 應用程式
在主控台視窗中 (例如 cmd、PowerShell 或 Bash),使用 dotnet new
命令建立名為 azure-openai-quickstart
的新主控台應用程式。 此命令會建立簡單的 "Hello World" 專案,內含單一 C# 來源檔案: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 --version 1.0.0-beta.17
注意
完成 API 僅可用於版本 1.0.0-beta.17
和 Azure.AI.OpenAI
以前的用戶端程式庫。 對於最新的 2.0.0
和更高版本的 Azure.AI.OpenAI
,產生完成的建議方法是使用 聊天完成 API。
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為: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"
建立應用程式範例
從專案目錄中開啟 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 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 已在本機安裝 Go 1.21.0 或更高版本。
- 已部署
gpt-35-turbo-instuct
模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為: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"
建立應用程式範例
建立名為 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"
"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 := azcore.NewKeyCredential(azureOpenAIKey)
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)),
DeploymentName: &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 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫
原始程式碼 (英文) | 成品 (Maven) (英文) | 範例 (英文)
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 最新版的 Java Development Kit (JDK)
- Gradle 建置工具,或其他相依性管理員。
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為: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"
建立新的 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")
}
建立應用程式範例
建立 Java 檔案。
在您的工作目錄中執行下列命令,以建立專案來源資料夾:
mkdir -p src/main/java
瀏覽至新的資料夾,並建立稱為 GetCompletionsSample.java 的檔案。
在慣用的編輯器或 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 服務安全性一文。
瀏覽回專案根資料夾,並使用下列項目建置應用程式:
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 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫
原始程式碼 | 成品 (Maven) | 範例
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 最新版的 Java Development Kit (JDK)
- Spring Boot CLI 工具
- 已部署
gpt-35-turbo
模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要端點和金鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
檢查來自 Azure 入口網站 的資源時,可以在 [金鑰與端點] 區段中找到服務端點。 或者,您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求。
注意
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 應用程式
編輯 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>
從 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 服務安全性一文。
瀏覽回專案根資料夾,並使用下列命令執行應用程式:
./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) (英文) | 範例 (英文)
注意
本指南使用 最新的 OpenAI npm 套件 ,現在完全支援 Azure OpenAI。 如果您要尋找舊版 Azure OpenAI JavaScript SDK 的程式代碼範例,這些範例目前仍 可在此存放庫中取得。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- LTS 版本的 Node.js
- Azure CLI 用於本地開發環境中的無密碼驗證,請使用 Azure CLI 登入以建立必要內容。
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
擷取資源資訊
您需要擷取下列資訊,以向 Azure OpenAI 資源驗證您的應用程式:
變數名稱 | 值 |
---|---|
AZURE_OPENAI_ENDPOINT |
在 Azure 入口網站查看資源時,您可以在 [金鑰和端點] 區段中找到此值。 |
AZURE_OPENAI_DEPLOYMENT_NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 您可以在 Azure 入口網站 中的資源管理>模型部署下找到此值。 |
OPENAI_API_VERSION |
深入瞭解 API 版本。 |
警告
若要搭配 SDK 使用建議的無密鑰驗證,請確定 AZURE_OPENAI_API_KEY
未設定環境變數。
安裝用戶端程式庫
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。
從新目錄的內容中安裝具有 npm 的 JavaScript 必要套件:
npm install openai @azure/identity
您應用程式的 package.json 檔案會隨著相依項目更新。
建立應用程式範例
在您建立新專案的位置開啟命令提示字元,然後建立名為 Completion.js 的新檔案。 將以下程式碼複製到 Completion.js 檔案。
const { AzureOpenAI } = require("openai");
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 apiVersion = "2024-04-01-preview";
const deployment = "gpt-35-turbo-instruct"; //The deployment name for your completions API model. The instruct model is the only new model that supports the legacy API.
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
const prompt = ["When was Microsoft founded?"];
async function main() {
console.log("== Get completions Sample ==");
const client = new AzureOpenAI({ endpoint, azureADTokenProvider, apiVersion, deployment });
const result = await client.completions.create({ prompt, model: deployment, max_tokens: 128 });
for (const choice of result.choices) {
console.log(choice.text);
}
}
main().catch((err) => {
console.error("Error occurred:", err);
});
module.exports = { main };
使用下列命令來執行指令碼:
node.exe Completion.js
輸出
== Get completions Sample ==
Microsoft was founded on April 4, 1975.
注意
如果您收到錯誤:發生錯誤: OpenAIError: apiKey
和 azureADTokenProvider
自變數互斥;一次只能傳遞一個。 您可能需要從系統移除 API 金鑰的預先存在環境變數。 即使Microsoft Entra ID 程式代碼範例並未明確參考 API 金鑰環境變數,但如果系統存在執行此範例的實例,仍會產生此錯誤。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- Azure OpenAI 概觀
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫
原始程式碼 (英文) | 套件 (npm) (英文) | 範例 (英文)
注意
本指南使用 最新的 OpenAI npm 套件 ,現在完全支援 Azure OpenAI。 如果您要尋找舊版 Azure OpenAI JavaScript SDK 的程式代碼範例,這些範例目前仍 可在此存放庫中取得。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- LTS 版本的 Node.js
- TypeScript
- Azure CLI 用於本地開發環境中的無密碼驗證,請使用 Azure CLI 登入以建立必要內容。
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
擷取資源資訊
您需要擷取下列資訊,以向 Azure OpenAI 資源驗證您的應用程式:
變數名稱 | 值 |
---|---|
AZURE_OPENAI_ENDPOINT |
在 Azure 入口網站查看資源時,您可以在 [金鑰和端點] 區段中找到此值。 |
AZURE_OPENAI_DEPLOYMENT_NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 您可以在 Azure 入口網站 中的資源管理>模型部署下找到此值。 |
OPENAI_API_VERSION |
深入瞭解 API 版本。 |
警告
若要搭配 SDK 使用建議的無密鑰驗證,請確定 AZURE_OPENAI_API_KEY
未設定環境變數。
安裝用戶端程式庫
在主控台視窗 (例如 cmd、PowerShell 或 Bash) 中,為您的應用程式建立新的目錄,並瀏覽至該目錄。
從新目錄的內容中安裝具有 npm 的 JavaScript 必要套件:
npm install openai @azure/identity
您應用程式的 package.json 檔案會隨著相依項目更新。
建立應用程式範例
開啟您建立新專案的命令提示字元,然後建立名為 Completion.ts 的新檔案。 將下列程式代碼複製到 Completion.ts 檔案中。
import {
DefaultAzureCredential,
getBearerTokenProvider
} from "@azure/identity";
import { AzureOpenAI } from "openai";
import { type Completion } 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>";
// Required Azure OpenAI deployment name and API version
const apiVersion = "2024-08-01-preview";
const deploymentName = "gpt-35-turbo-instruct";
// keyless authentication
const credential = new DefaultAzureCredential();
const scope = "https://cognitiveservices.azure.com/.default";
const azureADTokenProvider = getBearerTokenProvider(credential, scope);
// Chat prompt and max tokens
const prompt = ["When was Microsoft founded?"];
const maxTokens = 128;
function getClient(): AzureOpenAI {
return new AzureOpenAI({
endpoint,
azureADTokenProvider,
apiVersion,
deployment: deploymentName,
});
}
async function getCompletion(
client: AzureOpenAI,
prompt: string[],
max_tokens: number
): Promise<Completion> {
return client.completions.create({
prompt,
model: "",
max_tokens,
});
}
async function printChoices(completion: Completion): Promise<void> {
for (const choice of completion.choices) {
console.log(choice.text);
}
}
export async function main() {
console.log("== Get completions Sample ==");
const client = getClient();
const completion = await getCompletion(client, prompt, maxTokens);
await printChoices(completion);
}
main().catch((err) => {
console.error("Error occurred:", err);
});
使用下列命令來建置指令碼:
tsc
使用下列命令來執行指令碼:
node.exe Completion.js
輸出
== Get completions Sample ==
Microsoft was founded on April 4, 1975.
注意
如果您收到錯誤:發生錯誤: OpenAIError: apiKey
和 azureADTokenProvider
自變數互斥;一次只能傳遞一個。 您可能需要從系統移除 API 金鑰的預先存在環境變數。 即使Microsoft Entra ID 程式代碼範例並未明確參考 API 金鑰環境變數,但如果系統存在執行此範例的實例,仍會產生此錯誤。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- Azure OpenAI 概觀
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫
程式庫原始程式碼 | 套件 (NuGet) |
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- Python 3.8 或較新版本
- 下列為 Python 程式庫:os、requests、json
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
使用下列項目安裝 OpenAI Python 用戶端程式庫:
pip install openai
注意
程式庫是由 OpenAI 進行維護。 參照版本歷程記錄來追蹤程式庫的最新更新。
擷取金鑰和端點
若要成功對 Azure OpenAI 服務發出呼叫,您將需要下列項目:
變數名稱 | 值 |
---|---|
ENDPOINT |
在 Azure 入口網站查看資源時,您可以在 [金鑰和端點] 區段中找到此值。 您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
在 Azure 入口網站查看資源時,您可以在 [金鑰和端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
DEPLOYMENT-NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 您可以在 Azure 入口網站 中的資源管理>模型部署下,或透過 Azure AI Foundry 入口網站中的 [部署] 頁面找到此值。 |
移至您在 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 的內容取代為下列程式碼。 修改程式碼以新增金鑰、端點和部署名稱:
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 服務安全性一文。
使用快速入門檔案上的
python
命令執行應用程式:python quickstart.py
輸出
輸出會在 Write a tagline for an ice cream shop.
提示之後包含回應文字。 Azure OpenAI 在此範例中傳回 The coldest ice cream in town!
。
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 OpenAI 範例 GitHub 存放庫 (英文)。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- Python 3.8 或較新版本
- 下列為 Python 程式庫:os、requests、json
- 已部署模型的 Azure OpenAI 資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 發出呼叫,您將需要下列項目:
變數名稱 | 值 |
---|---|
ENDPOINT |
從 Azure 入口網站檢視您的資源時,可以在金鑰 & 端點區段中找到此值。 您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
DEPLOYMENT-NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 您可以在 Azure 入口網站 的資源管理>部署下,或透過 Azure AI Foundry 入口網站中的 [部署] 頁面找到此值。 |
移至您在 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"
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 服務也會對提示輸入和產生的輸出執行內容仲裁。 如果偵測到有害的內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 深入瞭解如何在完成操作指南中產生最佳的完成。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 您可以使用最新版本、PowerShell 7 或 Windows PowerShell 5.1。
- 已部署模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
擷取金鑰和端點
若要成功對 Azure OpenAI 服務發出呼叫,您將需要下列項目:
變數名稱 | 值 |
---|---|
ENDPOINT |
從 Azure 入口網站檢視您的資源時,可以在金鑰 & 端點區段中找到此值。 您也可以透過 Azure AI Foundry 入口網站中的 [部署 ] 頁面來尋找端點。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
DEPLOYMENT-NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 您可以在 Azure 入口網站 中的資源管理>部署下,或透過 Azure AI Foundry 入口網站中的 [部署] 頁面找到此值。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
重要
如果您使用 API 金鑰,請將其安全地儲存在別處,例如 Azure Key Vault。 請勿在程式碼中直接包含 API 金鑰,且切勿公開張貼金鑰。
如需 AI 服務安全性的詳細資訊,請參閱驗證對 Azure AI 服務的要求。
$Env:AZURE_OPENAI_API_KEY = 'YOUR_KEY_VALUE'
$Env:AZURE_OPENAI_ENDPOINT = 'YOUR_ENDPOINT'
建立新的 PowerShell 指令碼
建立稱為 quickstart.ps1 的新 PowerShell 檔案。 然後,以您慣用的編輯器或 IDE 加以開啟。
將 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)"
重要
針對生產環境,請使用儲存和存取認證的安全方式,例如搭配 Azure Key Vault 的 PowerShell 祕密管理。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。
使用 PowerShell 執行指令碼:
./quickstart.ps1
輸出
輸出會在 Once upon a time
提示之後包含回應文字。 Azure OpenAI 在此範例中傳回 There was a world beyond the mist...where a
。
Once upon a time...
There was a world beyond the mist...where a
多次執行程式碼,以查看您取得的其他回應類型,因為回應不一定相同。
瞭解瞭解您的結果
因為我們 Once upon a time...
範例提供的內容有限,所以模型不一定會傳回預期的結果。 若該回應看似非預期或已截斷,則可以調整權杖最大的數目。
Azure OpenAI 也會對提示輸入和產生的輸出執行內容仲裁。 如果偵測到有害的內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。
清除資源
如果您想要清除和移除 Azure OpenAI 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 深入瞭解如何在完成操作指南中產生最佳的完成。
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫 (英文)。