快速入門:開始使用 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 登陸頁面流覽至進一步探索範例,以快速完成、管理您的部署和模型,以及尋找學習資源,例如檔和社群論壇。
移至實驗和微調工作流程的 遊樂場 。
操場
透過 GPT-3 遊樂場開始探索無程式代碼方法的 Azure OpenAI 功能。 這隻是一個文字框,您可以在其中提交提示以產生完成。 您可以從此頁面快速反覆運算並實驗功能。
您可以選取部署,並從一些預先載入的範例中選擇以開始使用。 如果您的資源沒有部署,請選取 [建立部署 ],並遵循精靈所提供的指示。 如需模型部署的詳細資訊,請參閱資源部署指南。
您可以實驗組態設定,例如溫度和回應前文字,以改善工作的效能。 您可以在 REST API 中深入瞭解每個參數。
- 選取 [ 產生] 按鈕會將輸入的文字傳送至完成 API,並將結果串流回文本框中。
- 選取 [復原] 按鈕以復原先前的產生呼叫。
- 選取 [重新產生] 按鈕會一併完成復原和產生呼叫。
Azure OpenAI 也會對提示輸入和產生的輸出執行內容仲裁。 如果偵測到有害內容,可能會篩選提示或回應。 如需詳細資訊,請參閱內容篩選條件文章。
在 GPT-3 遊樂場中,您也可以根據選取的設定預先填入 Python 和 curl 程式代碼範例。 只要選取範例下拉式功能表旁的 [檢視程式碼] 即可。 您可以撰寫應用程式,使用 OpenAI Python SDK、curl 或其他 REST API 用戶端完成相同的工作。
嘗試文字摘要
若要在 GPT-3 遊樂場中使用 Azure OpenAI 進行文字摘要,請遵循下列步驟:
選取要使用的訂用帳戶和 OpenAI 資源。
選取 登陸頁面頂端的 GPT-3 遊樂場 。
從 [部署] 下拉式功能表中選取部署。 如果您的資源沒有部署,請選取 [建立部署 ],然後重新流覽此步驟。
從 [範例] 下拉式清單中選取 [摘要文字]。
選取
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 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 深入瞭解如何在完成操作指南中 產生最佳完成。
- 如需更多範例, 請參閱 Azure OpenAI 範例 GitHub 存放庫。
必要條件
- 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 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
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 訂用帳戶 - 建立免費帳戶
- 在所需的 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 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
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 資源,您可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫
原始碼成品 (Maven) | 範例 |
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 服務的存取權。 目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。
- 最新版的 Java Development Kit (JDK)
- Gradle 建置工具,或其他相依性管理員。
- 已部署模型的 Azure OpenAI 服務資源
gpt-35-turbo-instruct
。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要 端點 和 密鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>程式代碼檢視中找到值。> 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
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 訂用帳戶 - 建立免費帳戶
- 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 服務的存取權。 目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。
- 最新版的 Java Development Kit (JDK)
- Spring Boot CLI 工具
- 已部署模型的 Azure OpenAI 服務資源
gpt-35-turbo
。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要 端點 和 密鑰。
變數名稱 | 值 |
---|---|
ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 Azure OpenAI Studio遊樂場>程式代碼檢視中找到值。> 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
注意
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) | 範例 |
必要條件
- 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 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰和端點] 區段。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
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 資源,您可以刪除資源。 刪除資源之前,您必須先刪除任何已部署的模型。
下一步
- Azure OpenAI 概觀
- 如需更多範例,請參閱 Azure OpenAI 範例 GitHub 存放庫
必要條件
Azure 訂用帳戶 - 建立免費帳戶
在所需的 Azure OpenAI 訂用帳戶中授與服務的存取權
目前只有應用程式會授予此服務的存取權。 您可以填妥 https://aka.ms/oai/access 的表單,以申請 Azure OpenAI 的存取權。 如有問題,請在此存放庫中提出問題來與我們連絡。
下列為 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 入口網站 的資源時,可以在 [金鑰和端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
DEPLOYMENT-NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 此值可在 Azure 入口網站 中的資源管理>模型部署中找到,或是在 Azure OpenAI Studio 中的管理>部署下找到。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [金鑰] 和 [端點]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
為您的金鑰和端點建立及指派永續性環境變數。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
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.
包含回應文字。 在此範例中傳 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 OpenAI 範例 GitHub 存放庫。
必要條件
Azure 訂用帳戶 - 建立免費帳戶
在所需的 Azure OpenAI 訂用帳戶中授與服務的存取權
目前只有應用程式會授予此服務的存取權。 您可以在 完成表單 https://aka.ms/oai/access,以申請 Azure OpenAI 服務的存取權。 如有問題,請在此存放庫中提出問題來與我們連絡。
下列為 Python 程式庫:os、requests、json
已部署模型的 Azure OpenAI 資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
設定
擷取金鑰和端點
若要成功對 Azure OpenAI 進行呼叫,您需要下列專案:
變數名稱 | 值 |
---|---|
ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Azure OpenAI Studio]>[遊樂場]>[程式碼檢視] 中找到該值。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
DEPLOYMENT-NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 此值可以在 Azure 入口網站中的 [資源管理]>[部署] 底下找到,也可以在 Azure OpenAI Studio 的 [管理]>[部署]下找到。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
為您的金鑰和端點建立及指派永續性環境變數。
環境變數
為您的金鑰和端點建立及指派永續性環境變數。
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 範例 GitHub 存放庫。
必要條件
- Azure 訂用帳戶 - 建立免費帳戶
- 在所需的 Azure 訂用帳戶中授與 Azure OpenAI 的存取權。目前,只有應用程式才會授與此服務的存取權。 您可以填妥 https://aka.ms/oai/access 的表單,以申請 Azure OpenAI 的存取權。 如有問題,請在此存放庫中提出問題來與我們連絡。
- 您可以使用最新版本、PowerShell 7 或 Windows PowerShell 5.1。
- 已部署模型的 Azure OpenAI 服務資源。 如需模型部署的詳細資訊,請參閱資源部署指南。
擷取金鑰和端點
若要成功對 Azure OpenAI 服務進行呼叫,您需要下列專案:
變數名稱 | 值 |
---|---|
ENDPOINT |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 或者,您可以在 [Azure OpenAI Studio]>[遊樂場]>[程式碼檢視] 中找到該值。 範例端點為:https://docs-test-001.openai.azure.com/ 。 |
API-KEY |
從 Azure 入口網站查看您的資源時,可以在 [金鑰與端點] 區段中找到此值。 您可以使用 KEY1 或 KEY2 。 |
DEPLOYMENT-NAME |
此值會對應至您在部署模型時為部署選擇的自訂名稱。 此值可以在 Azure 入口網站中的 [資源管理]>[部署] 底下找到,也可以在 Azure OpenAI Studio 的 [管理]>[部署]下找到。 |
移至您在 Azure 入口網站中的資源。 您可以在 [資源管理] 區段中找到 [端點和金鑰]。 複製您的端點和存取金鑰,因為您需要這兩者才能驗證 API 呼叫。 您可以使用 KEY1
或 KEY2
。 隨時持有兩個金鑰可讓您安全地輪替和重新產生金鑰,而不會造成服務中斷。
為您的金鑰和端點建立及指派永續性環境變數。
環境變數
$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)"
重要
針對生產環境,請使用安全的方式來儲存和存取您的認證,例如PowerShell秘密管理與 Azure 金鑰保存庫。 如需有關認證安全性的詳細資訊,請參閱 Azure AI 服務安全性一文。
使用 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 資源,則可以刪除資源或資源群組。 刪除資源群組也會刪除與其相關聯的任何其他資源。
下一步
- 深入瞭解如何在完成操作指南中 產生最佳完成。
- 如需更多範例, 請參閱 Azure OpenAI 範例 GitHub 存放庫。