Azure OpenAI是一个为开发者设计的平台,允许他们通过Python和C# SDK或REST API将AI功能集成到应用程序中。该平台提供多种AI模型,专注于不同任务,可以通过服务进行部署。
如何使用Azure OpenAI
- 申请访问权限:Azure OpenAI目前限制访问,用户需要申请并获批准后才能使用。
- 创建资源:通过Azure CLI或Azure门户部署Azure OpenAI资源。操作步骤如下:
- 访问Azure门户。
- 搜索并选择Azure OpenAI,点击“创建”。
- 填写必要信息,选择一个靠近你物理位置的区域。
- 创建后,你将获得用于应用程序的密钥和端点。
企业如何合规、稳定使用ChatGPT以及Copilot?
目前使用OpenAI的能力主要有2个主流渠道,这2种渠道提供的API能力无差异。
1、对接OpenAI官方提供的API。(目前在国内使用官方已明确会被封禁)
2、对接微软Azure提供的OpenAI能力(目前国内唯一合规渠道,申请需企业资质,价格基本一样还可开发票)
微软Azure OpenAI服务可以合规、稳定地提供企业用户使用ChatGPT的可能。
出于合规角度,建议国内企业可以选择微软的Azure OpenAI服务来使用接口。
通过微软官方合作伙伴获取服务,企业用户可以合规、稳定地使用ChatGPT,满足国内发票需求,同时也能解决连接不稳定/响应速度慢/并发配额低等问题。
作为微软的合作伙伴,全云在线可为企业开通绿色申请通道!包括最新版本GPT-4o、Dalle-3等,只要企业有需求,全云在线都能协助快速开通!
微软Azure OpenAI免费试用申请:
https://azureopenai.cloudallonline.com/?zxwwy136
模型选择与部署
- 模型家族:Azure OpenAI提供三大类模型:
- 生成预训练变压器(GPT):擅长理解和生成自然语言及代码,适合一般任务和对话。
- 代码模型:基于GPT,训练于大量代码,能生成和理解代码。新版本如gpt-35-turbo已集成此功能。
- 嵌入模型:理解并使用嵌入数据,适用于机器学习。
- 模型命名:旧模型如text-davinci-003,表示文本模型,具有Davinci级别的能力,标识符为3。最新型号如gpt-35-turbo,明确指出是GPT 3.5涡轮增压版。
- 部署模型:要部署模型,进入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
热门跟贴