你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:开始使用 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 服务进行文本摘要,请执行以下步骤:
登录到 Azure OpenAI Studio。
选择要使用的订阅和 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 的模型对于此类任务的表现就没有那么好。
清理资源
如果你想要清理和删除 OpenAI 资源,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。
后续步骤
- 在有关补全的操作指南中详细了解如何生成最佳补全内容。
- 有关更多示例,请查看 Azure OpenAI 示例 GitHub 存储库。
先决条件
- Azure 订阅 - 免费创建订阅
- 已在所需的 Azure 订阅中授予对 Azure OpenAI 服务的访问权限。 目前,仅应用程序授予对此服务的访问权限。 可以填写 https://aka.ms/oai/access 处的表单来申请对 Azure OpenAI 服务的访问权限。
- .NET Core 的当前版本
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服务资源。 有关模型部署的详细信息,请参阅资源部署指南。
设置
创建新的 .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 或更高版本。
- 已部署
gpt-35-turbo-instuct
模型的 Azure OpenAI 服务资源。 有关模型部署的详细信息,请参阅资源部署指南。
设置
检索密钥和终结点
若要成功对 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 开发工具包 (JDK)
- Gradle 生成工具,或其他依赖项管理器。
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服务资源。 有关模型部署的详细信息,请参阅资源部署指南。
设置
检索密钥和终结点
若要成功对 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 开发工具包 (JDK)
- Spring Boot CLI 工具
- 已部署
gpt-35-turbo
模型的 Azure OpenAI 服务资源。 有关模型部署的详细信息,请参阅资源部署指南。
设置
检索密钥和终结点
若要成功对 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 存储库。
先决条件
- Azure 订阅 - 免费创建订阅
- 已在所需的 Azure 订阅中授予对 Azure OpenAI 服务的访问权限。 目前,仅应用程序授予对此服务的访问权限。 可以填写 https://aka.ms/oai/access 处的表单来申请对 Azure OpenAI 服务的访问权限。
- LTS 版本的 Node.js
- 已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服务资源。 有关模型部署的详细信息,请参阅资源部署指南。
设置
检索密钥和终结点
若要成功对 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 文件创建一个 node 应用程序。
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 订阅中授予对 Azure OpenAI 的访问权限
目前,仅应用程序授予对此服务的访问权限。 可以通过在 https://aka.ms/oai/access 上填写表单来申请对 Azure OpenAI 的访问权限。 如果有任何问题,请在此存储库上提出问题以联系我们。
以下 Python 库:os、requests、json
已部署
gpt-35-turbo-instruct
模型的 Azure OpenAI 服务资源。 有关模型部署的详细信息,请参阅资源部署指南。
设置
使用以下项安装 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.
提示后的响应文本。 在此示例中,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 还会对提示输入和生成的输出执行内容审核。 检测到有害内容时,可能会筛选提示或响应。 有关详细信息,请参阅内容筛选器一文。
清理资源
如果你想要清理和删除 OpenAI 资源,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。
后续步骤
- 在有关补全的操作指南中详细了解如何生成最佳补全内容。
- 有关更多示例,请查看 Azure OpenAI 示例 GitHub 存储库。
先决条件
Azure 订阅 - 免费创建订阅
已在所需的 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 shell 中运行以下命令: 需要将 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 服务还会对提示输入和生成的输出执行内容审核。 检测到有害内容时,可能会筛选提示或响应。 有关详细信息,请参阅内容筛选器一文。
清理资源
如果你想要清理和删除 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)"
重要
对于生产,请使用安全的方式存储和访问凭据,例如使用 Azure Key Vault 的 PowerShell Secret Management。 有关凭据安全性的详细信息,请参阅 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 还会对提示输入和生成的输出执行内容审核。 检测到有害内容时,可能会筛选提示或响应。 有关详细信息,请参阅内容筛选器一文。
清理资源
如果你想要清理和删除 OpenAI 资源,可以删除资源或资源组。 删除资源组同时也会删除与之相关联的任何其他资源。
后续步骤
- 在有关补全的操作指南中详细了解如何生成最佳补全内容。
- 有关更多示例,请查看 Azure OpenAI 示例 GitHub 存储库。