当前位置:首页|资讯|OpenAI|机器学习

企业教程 | 使用Azure OpenAI服务构建自然语言解决方案

作者:等保测评办理发布时间:2024-07-11

Azure OpenAI为开发人员提供了一个平台,在Python和C# SDK以及REST API的帮助下将人工智能功能添加到其应用程序中。

该平台有各种可用的人工智能模型,每个模型都专注于不同的任务,可以通过Azure OpenAI服务进行部署。Azure OpenAI提供C#和Python SDK以及REST API,开发人员可以使用这些API将AI功能添加到他们的应用程序中。

Azure OpenAI中的生成人工智能功能是通过模型提供的。Azure OpenAI已发布,访问权限有限,以支持负责任地使用该服务。用户需要申请访问并获得批准,然后才能创建Azure OpenAI资源。

创建Azure OpenAI资源

目前企业需要通过微软官方合作伙伴获取服务,可以合规、稳定地提供企业用户使用ChatGPT的可能,满足国内发票需求。

通过微软官方合作伙伴获取服务,企业用户可以合规、稳定地使用ChatGPT,满足国内发票需求,同时也能解决连接不稳定/响应速度慢/并发配额低等问题。

作为微软的合作伙伴,全云在线可为企业开通绿色申请通道!包括企业版AZURE OPEN AI 最新版本GPT-4o、Dalle-3,只要企业有需求,全云在线都能协助快速开通!

微软 Azure OpenAI 试用申请:
https://azureopenai.cloudallonline.com/?zxwsh18

微软Azure OpenAI和OpenAI公司提供的API服务是一样的,微软是OpenAI公司的大股东。ChatGPT背后的支持也是由Azure提供的,包括训练和推理等等

Azure OpenAI资源可以通过Azure命令行界面(CLI)和Azure门户进行部署。通过Azure门户创建Azure OpenAI资源类似于部署单个Azure AI服务资源,并且是Azure AI服务服务的一部分。

  1. 导航到Azure门户
  2. 搜索Azure OpenAI,选择它,然后单击创建
  3. 为空字段输入适当的值,并创建资源。

Azure OpenAI的可能区域目前有限。选择离您的物理位置最近的区域。

创建资源后,您将拥有可以在应用程序中使用的密钥和端点。

选择并部署一个模型

每个模型家族都擅长不同的任务,每个家族中的模型都有不同的能力。模型家族分为三个主要家族:

  • 生成预训练变压器(GPT)-理解和生成自然语言和一些代码的模型。这些模型最适合一般任务、对话和聊天格式。
  • 代码(及更早版本)-代码模型建立在GPT模型之上,并在数百万行代码上进行训练。这些模型可以理解和生成代码,包括解释注释或自然语言来生成代码。和更高版本的模型包含此代码功能,而不需要单独的代码模型。
  • gpt-3
  • gpt-35-turbo
  • 嵌入-这些模型可以理解和使用嵌入,这是一种特殊的数据格式,可以被机器学习模型和算法使用。

本模块侧重于一般GPT模型,其他模块涵盖了其他模型。

对于旧模型,模型系列和能力以基本模型的名称表示,例如,它指定它是一个文本模型,具有级别的能力和标识符3。有关模型、能力级别和命名约定的详细信息,请参阅Azure OpenAI模型文档页面。

text-davinci-003

davinci

最新的型号指定了哪个生成,以及它们是否是版本,例如代表GPT 3.5涡轮增压型号的。

gpt

turbo

gpt-35-turbo

要部署供您使用的模型,请导航到Azure OpenAI Studio并转到部署页面。

已部署模型的身份验证和规范

当您在Azure OpenAI中部署模型时,您选择一个部署名称来赋予它。配置应用程序时,您需要指定资源端点、密钥和部署名称,以指定要将请求发送到哪个部署模型。这使您能够在同一资源中部署各种模型,并根据任务向适当的模型提出请求。

提示工程

输入提示的编写方式对人工智能模型的响应方式起着重要作用。例如,如果提示一个简单的请求,如“什么是Azure OpenAI”,您通常会得到类似于使用搜索引擎的通用答案。

然而,如果你在回复中提供更多关于你想要的细节,你会得到一个更具体的答案。例如,给定此提示:

Classify the following news headline into 1 of the following categories: Business, Tech, Politics, Sport, EntertainmentHeadline 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 perspectiveCategory: EntertainmentHeadline 2: Major Retailer Announces Plans to Close Over 100 StoresCategory:

您可能会在标题下填写“类别:”并填写“业务”。

几个与此类似的示例可以在Azure OpenAI Studio Playground的示例下拉菜单中找到。尽量具体说明你想从模型中得到什么,你可能会惊讶于它是多么有洞察力!

*注意

假设人工智能模型的答案是事实或正确的是永远不会安全的。负责开发和部署人工智能系统的团队或个人应努力识别、测量和减轻伤害。您有责任验证人工智能模型的任何响应,并负责任地使用人工智能。查看微软关于Azure OpenAI的透明度说明,了解有关如何负责任地使用Azure OpenAI模型的进一步指南。

更多详细信息可以在Prompt工程文档页面上找到。

可用的端点

Azure OpenAI可以通过REST API或目前可用于Python和C#的SDK访问。可用于与已部署模型交互的端点使用方式不同,某些端点只能使用某些模型。可用的端点是:

  • 完成-模型接受一个输入提示,并生成一个或多个预测完成。你会在工作室里看到这个游乐场,但本模块不会深入介绍。
  • 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?"}

当您给人工智能模型一个真正的对话时,它可以通过更准确的语气、措拉和上下文产生更好的响应。端点通过发送带有下一条用户消息的聊天历史记录,使ChatGPT模型能够进行更现实的对话。

ChatCompletion

还允许非聊天场景,如总结或实体提取。这可以通过提供简短的对话,指定系统信息和您想要的内容以及用户输入来实现。例如,如果您想生成工作描述,请向提供以下对话输入。

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."}

*笔记

适用于所有代模型,而是唯一支持的选项forgpt模型,也是使用模型时的首选端点。本模块中的实验室使用带有端点的。

Completion

gpt-3

ChatCompletion

gpt-4

gpt-35-turbo

ChatCompletion

gpt-35-turbo

Azure OpenAI提供了一个REST API,用于交互和生成响应,开发人员可以使用该API将人工智能功能添加到其应用程序中。本单元涵盖了API的示例用法、输入和输出。

*笔记

在与API交互之前,您必须在Azure门户中创建Azure OpenAI资源,在该资源中部署模型,并检索您的端点和密钥。查看Azure OpenAI服务入门,了解如何做到这一点。

对于每次调用REST API,您都需要Azure OpenAI资源的端点和密钥,以及您为已部署模型命名的名称。在以下示例中,使用了以下占位符:

占位符名称

价值

YOUR_ENDPOINT_NAME

此基本端点可在Azure门户的“密钥和端点”部分找到。它是您资源的基本端点,例如https://sample.openai.azure.com/。

YOUR_API_KEY

密钥可以在Azure门户的密钥和端点部分找到。您可以将任一键用于您的资源。

YOUR_DEPLOYMENT_NAME

此部署名称是您在Azure OpenAI Studio中部署模型时提供的名称。

聊天完成

在Azure OpenAI资源中部署模型后,您可以使用请求向服务发送提示。

POST

curl https://YOUR_ENDPOINT_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2023-03-15-preview \ -H "Content-Type: application/json" \ -H "api-key: YOUR_API_KEY" \ -d '{"messages":[{"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?"}]}'

来自API的响应将类似于以下JSON:

{ "id": "chatcmpl-6v7mkQj980V1yBec6ETrKPRqFjNw9", "object": "chat.completion", "created": 1679001781, "model": "gpt-35-turbo", "usage": { "prompt_tokens": 95, "completion_tokens": 84, "total_tokens": 179 }, "choices": [ { "message": { "role": "assistant", "content": "Yes, other Azure AI Services also support translation. Azure AI Services offer translation between multiple languages for text, documents, or custom translation through Azure AI Services Translator." }, "finish_reason": "stop", "index": 0 } ]}

REST端点允许指定其他可选输入参数,如、等。如果您想在请求中包含任何这些参数,请将它们添加到请求的输入数据中。

temperature

max_tokens

嵌入

嵌入对机器学习模型易于使用的特定格式很有帮助。要从输入文本生成嵌入,请向端点请求。

embeddings

POST

curl https://YOUR_ENDPOINT_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings?api-version=2022-12-01 \ -H "Content-Type: application/json" \ -H "api-key: YOUR_API_KEY" \ -d "{\"input\": \"The food was delicious and the waiter...\"}"

生成嵌入时,请务必在Azure OpenAI中使用用于嵌入的模型。这些模型从何开始,具体取决于您正在寻找的功能。

text-embedding

text-similarity

来自API的响应将类似于以下JSON:

{ "object": "list", "data": [ { "object": "embedding", "embedding": [ 0.0172990688066482523, -0.0291879814639389515, .... 0.0134544348834753042, ], "index": 0 } ], "model": "text-embedding-ada:002"}

用户还可以通过C#和Python SDK访问Azure OpenAI模型。相同的功能可以通过REST和这些SDK获得。

笔记

在使用任一SDK与API交互之前,您必须在Azure门户中创建Azure OpenAI资源,在该资源中部署模型,并检索您的端点和密钥。查看Azure OpenAI服务入门,了解如何做到这一点。

对于本节涵盖的两个SDK,您需要Azure OpenAI资源中的端点和密钥,以及您为部署模型命名的名称。在以下代码片段中,使用以下占位符:

占位符名称

价值

YOUR_ENDPOINT_NAME

此基本端点可在Azure门户的“密钥和端点”部分找到。它是您资源的基本端点,例如https://sample.openai.azure.com/。

YOUR_API_KEY

密钥可以在Azure门户的密钥和端点部分找到。您可以将任一键用于您的资源。

YOUR_DEPLOYMENT_NAME

此部署名称是您在Azure OpenAI Studio中部署模型时提供的名称。

安装库

首先,为您的首选语言安装客户端库。C# SDK是一个。REST API的NET适应,并专门为Azure OpenAI构建,但是它可用于连接到Azure OpenAI资源或非Azure OpenAI端点。Python SDK由OpenAI构建和维护。

pip install openai

配置应用程序以访问Azure OpenAI资源

每种语言的配置略有不同,但两者都需要设置相同的参数。必要的参数是、和部署名称,在向模型发送提示时称为。

endpoint

key

engine

将库添加到您的应用程序中,并为客户端设置所需的参数。

# Add OpenAI libraryfrom openai import AzureOpenAIdeployment_name = '

' # Initialize the Azure OpenAI clientclient = AzureOpenAI( azure_endpoint = '

', api_key='

', api_version="20xx-xx-xx" # Target version of the API, such as 2024-02-15-preview )

调用Azure OpenAI资源

配置好与Azure OpenAI的连接后,将提示发送到模型。

response = client.chat.completions.create( model=deployment_name, messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What is Azure OpenAI?"} ])generated_text = response.choices[0].message.content# Print the responseprint("Response: " + generated_text + "\n")

响应对象包含几个值,例如和。响应对象的完成将类似于以下完成:

total_tokens

finish_reason

"Azure OpenAI is a cloud-based artificial intelligence (AI) service that offers a range of tools and services for developing and deploying AI applications. Azure OpenAI provides a variety of services for training and deploying machine learning models, including a managed service for training and deploying deep learning models, a managed service for deploying machine learning models, and a managed service for managing and deploying machine learning models."

在C#和Python中,您的调用可以包括可选参数,包括和。

temperature

max_tokens


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1