将 Azure OpenAI 集成到应用中
Azure OpenAI 提供特定于语言的 SDK 和 REST API,开发人员可以用来向其应用程序添加 AI 功能。 Azure OpenAI 中的生成式 AI 功能通过模型提供。 Azure OpenAI 服务中可用的模型属于不同的系列,每个系列都有自己的重点。 若要使用这些模型之一,需要通过 Azure OpenAI 服务进行部署。
创建 Azure OpenAI 资源
可以通过 Azure 命令行接口 (CLI) 和 Azure 门户部署 Azure OpenAI 资源。 通过 Azure 门户创建 Azure OpenAI 资源类似于部署单个 Azure AI 服务资源,并且是 Azure AI 服务的一部分。
- 导航到 Azure 门户
- 搜索 Azure OpenAI,将其选中,然后单击“创建”
- 为空字段输入适当的值,然后创建资源。
目前 Azure OpenAI 可能部署的区域有限。 选择距离实际位置最近的区域,或选择所需型号可用的最近区域。
创建资源后,你将获得可在应用中使用的密钥和终结点。
选择和部署模型
每个模型系列擅长不同的任务,并且每个系列中模型具有不同的功能。 模型系列分为三个主要系列:
- 生成式预训练转换器 (GPT) - 能够理解和生成自然语言和某些代码的模型。 这些模型最适合常规任务、对话和聊天格式。
- 代码(
gpt-3
及更早版本) - 代码模型基于 GPT 模型构建,并通过数百万行代码进行训练。 这些模型可以理解和生成代码,包括解释注释或自然语言以生成代码。gpt-35-turbo
和更高版本的模型包含此代码功能,而无需单独的代码模型。 - 嵌入 - 这些模型可以理解和使用嵌入,这是机器学习模型和算法可以使用的特殊数据格式。
本模块重点介绍常规 GPT 模型,其他模块将介绍其他模型。
对于较旧的模型,模型系列和功能会在基础模型的名称中有所体现:如 text-davinci-003
,该名称指定它是一个文本模型,具有 davinci
级别的功能,并带有标识符 3
。 有关模型、功能级别和命名约定的详细信息,请参阅 Azure OpenAI 模型文档页。
较新的模型会指定第几代 gpt
,以及它们是否为 turbo
版本,例如 gpt-35-turbo
表示 GPT 3.5 Turbo 模型。
若要部署模型供你使用,请导航到 Azure AI Studio 并转到“部署”页。 本模块后面的实验室详细介绍了如何执行此操作。
已部署模型的身份验证和规范
在 Azure OpenAI 中部署模型时,选择一个部署名称来指定它。 配置应用时,需要指定资源终结点、密钥和部署名称,以指定要向其发送请求的部署模型。 这使你能够在同一资源中部署各种模型,并根据任务向相应的模型发出请求。
提示设计
输入提示的写入方式在 AI 模型的响应方式中起着很大的作用。 例如,如果出现简单请求(如“什么是 Azure OpenAI”)的提示,通常会获得类似于使用搜索引擎的通用答案。
但是,如果在你的答复中提供有关所需内容的详细信息,则会获得更具体的答案。 例如,假定出现以下提示:
Classify the following news headline into 1 of the following categories: Business, Tech, Politics, Sport, Entertainment
Headline 1: Donna Steffensen Is Cooking Up a New Kind of Perfection. The Internet’s most beloved cooking guru has a buzzy new book and a fresh new perspective
Category: Entertainment
Headline 2: Major Retailer Announces Plans to Close Over 100 Stores
Category:
你可能会在标题下看到“类别:”,其中填写了“业务”。
可以在 Azure AI Studio Playground 中的“提示示例”下拉列表中找到与此类似的几个示例。 尽可能详细描述来自模型的响应中所需的内容,你可能会惊讶于它是多么有见地!
注意
无法大胆地假设来自 AI 模型的答案是事实或正确。 负责开发和部署 AI 系统的团队或个人应努力识别、衡量和减轻危害。 你有责任验证来自 AI 模型的任何响应,并负责任地使用 AI。 有关如何负责任地使用 Azure OpenAI 模型的进一步指南,请查看 Microsoft 关于 Azure OpenAI 的透明度说明。
可在提示工程文档页中找到更多详细信息。
可用的终结点
可以通过 REST API 或适用于 Python、C#、JavaScript 等的 SDK 访问 Azure OpenAI。 可用于与已部署模型交互的终结点的使用方式不同,并且某些终结点只能使用某些模型。 可用的终结点包括:
- 完成 - 模型接受一个输入提示,并生成一个或多个预测的完成。 你将在 studio 中看到此操场,但在本模块中不会深入讨论。
- ChatCompletion - 模型接受聊天对话形式的输入(其中角色使用他们发送的消息指定),然后生成下一个聊天完成。
- 嵌入 - 模型接受输入并返回该输入的矢量表示形式。
例如,ChatCompletion
的输入是每条消息都有明确定义角色的会话:
{"role": "system", "content": "You are a helpful assistant, teaching people about AI."},
{"role": "user", "content": "Does Azure OpenAI support multiple languages?"},
{"role": "assistant", "content": "Yes, Azure OpenAI supports several languages, and can translate between them."},
{"role": "user", "content": "Do other Azure AI Services support translation too?"}
当你为 AI 模型提供一个真实的对话时,它可以生成具有更准确的语气、措辞和上下文的更好响应。 ChatCompletion
终结点通过发送与下一个用户消息的聊天历史记录,使 ChatGPT 模型能够进行更真实的对话。
ChatCompletion
还支持非聊天场景,例如摘要或实体提取。 可通过提供简短对话、指定系统信息和所需内容,并让用户输入信息来实现此操作。 例如,如果要生成工作描述,请向 ChatCompletion
提供类似于以下对话输入的内容。
{"role": "system", "content": "You are an assistant designed to write intriguing job descriptions. "},
{"role": "user", "content": "Write a job description for the following job title: 'Business Intelligence Analyst'. It should include responsibilities, required qualifications, and highlight benefits like time off and flexible hours."}
注意
Completion
适用于所有 gpt-3
生成模型,而 ChatCompletion
是 gpt-4
模型唯一支持的选项,并且是使用 gpt-35-turbo
模型时的首选终结点。 本模块中的实验将 gpt-35-turbo
与 ChatCompletion
终结点结合使用。