当前位置:首页|资讯|OpenAI|微软

7月9日Openai api不对中国开放!其禁令不影响微软中国版openai.azure

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

OpenAI 上个月宣布停止在中国的服务。

但实际上,OpenAI的对话式人工智能模型可供中国企业合规使用--只要他们注册微软的Azure云服务。

企业如何合规使用ChatGPT

就在OpenAI通知中国开发者禁止访问其服务的第二天,微软中国的官方微信账号发布了一篇鼓励开发者 "迁移到Azure OpenAI "的帖子。

帖子中包括如何创建 Azure 账户和申请 Azure OpenAI 账户的详细步骤指南。

目前使用OpenAI的能力主要有2个主流渠道,这2种渠道提供的API能力无差异。

1、对接OpenAI官方提供的API。(目前在国内使用官方已明确会被封禁)

2、对接微软Azure提供的OpenAI能力(目前国内唯一合规渠道,申请需企业资质,价格基本一样还可开发票

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

微软 Azure OpenAI 免费试用:
https://azureopenai.cloudallonline.com/?zxwsh25

Azure OpenAI 服务申请

Azure[1]是微软推出的云计算平台和服务,提供了包括虚拟机、应用服务、数据库、AI、物联网和区块链等在内的各种解决方案和服务。用户可以在 Azure 上快速搭建、部署和管理应用,并可以选择全球众多数据中心进行部署。Azure 支持多种编程语言、工具和框架,包括微软特有的和第三方的。它旨在帮助企业通过云计算实现更高的效率和灵活性。

在正式开始之前你需要先注册 Azure 的账号,注册账号可以用任意邮箱,不过需要绑定银行卡,网上有很多教程,这里就不赘述了。

然后再申请 Azure OpenAI 服务的开通权限,开通过后才可以在 Azure 上部署 OpenAI 服务。需要注意的是,Azure OpenAI 服务只对企业用户和学生用户开放申请,个人用户无法申请(会检测你的申请邮箱,如果是个人邮箱会拒绝)。

进入Azure OpenAI 服务申请页面[2]进行申请,依次输入以下信息,下面只列出必填项,以企业用户为例:

  • 姓名
  • 多少个订阅 ID 要申请,只需要选 1 个
  • 填写订阅 ID,订阅 ID 可以按照页面提示找到,如果没有就新建一个
  • 重要]有效的邮箱,这里要填写企业邮箱或者学生邮箱,个人邮箱会被拒绝(包括 gmail.com,http://outlook.com等),这个邮箱地址可以跟你的 Azure 账号邮箱地址不一样
  • 公司名称、公司地址、公司所在城市、公司所在省份、公司所在国家、公司网站、公司电话,建议填写真实信息(不用担心公司会知道,一般他们不会打公司电话)
  • 公司类型,有 ISV(独立服务提供商)、SI(系统集成商)、MSP(微软解决方案提供商)等
  • 确认是否是你的公司要使用该服务,选中就可以了
  • 选择要申请的 Azure OpenAI 服务具体功能,有文本和代码模型,和图像模型,我们选择文本和代码模型即可。
  • 选择了文本和代码模型功能后,还要选择其细分的功能,除了这个选项,其他的都可以选,按实际需求选择
  • Most Valuable Professional (MVP) or Regional Director (RD) Demo Use:
  • 最后 2 个必填选是同意 Azure 的协议,都选同意就好了。

填完点击按钮提交,然后就等 Azure 审核了,只要你填写的信息比较真实,审核还是比较快的,我是上午申请下午就通过了,时间大概是 6 小时左右。

Submit

创建 Azure OpenAI 服务

收到审核通过的邮件后,进入Azure 首页[3],搜索,选择该类型的服务并进入页面,点击创建按钮进入创建页面。

Azure OpenAI

  • 第一步是填写基础信息,选择你的订阅,资源组(没有的话就新建一个),区域(有美国、欧洲、亚洲等国家),服务名称(如果名字被别人占用了会提示),定价层(价格跟 OpenAI 的相差不大),然后点击下一步。

  • 第二步是选择网络,选择第一个全网络就可以了。
  • 第三步是选择标签,可以不填。
  • 最后确认信息并提交。

模型部署

创建好 OpenAI 服务后,点击该服务进入 OpenAI 的服务页面,选择模型部署,然后点击按钮,进入页面。

模型管理

Azure AI Studio

进去后选择侧边栏的菜单,点击按钮,然后选择模型,这里我们选择即可,再选择模型版本,有和两个,我们当然选择最新的版本,然后输入部署名称,注意名称只能包含和特殊字符,其他的特殊字符不能写到名称中,最后点击按钮完成部署的创建。

部署

创建新部署

gpt35-turbo

0301

0613

0613

创建

获取 API URL 和 API Key

模型部署完成后,重新进入 OpenAI 页面,选择菜单(在模型部署菜单上面),进去后可以看到有 2 个键和 1 个端点,端点就是 API URL,键就是 API KEY,随便用其中一个 KEY 就可以了。

键和端点

Azure OpenAI API 使用

拿到 API URL 和 API KEY 后,就可以使用 OpenAI API 了,这里用 curl 命令来测试一下,示例代码如下。

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/$DEPLOYMENT_NAME/chat/completions\?api-version\=2023-06-31-preview \ -H "Content-Type: application/json" \ -H "api-key: $AZURE_OPENAI_KEY" \ -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "hello"}]}'

  • 是 API URL
  • AZURE_OPENAI_ENDPOINT
  • 是模型部署的名称
  • DEPLOYMENT_NAME
  • 参数是指 API 的版本,有、等版本,具体的版本信息可以看这里[4]
  • api-version
  • 2023-06-31-preview
  • 2023-05-15
  • 是 API KEY
  • AZURE_OPENAI_KEY
  • 发送的 body 数据是一个消息数组,每个消息分别定义了角色和内容。

这个 curl 命令可以在国内直接访问,大家可以在自己电脑终端上试一下。

然后我们再看下请求返回的结果:

{ "id": "chatcmpl-7lurXrxcVQDGEWssG28dxeJkpKLTD", "object": "chat.completion", "model": "gpt-35-turbo", "prompt_annotations": { "hate": { "filtered": false, "severity": "safe" }, "self_harm": { "filtered": false, "severity": "safe" }, "sexual": { "filtered": false, "severity": "safe" }, "violence": { "filtered": false, "severity": "safe" } }, "choices": [ { "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "Hello! How can I assist you today?" }, "content_filter_results": { // 与 prompt_annotations 内容相同 } } ], "usage": { "completion_tokens": 9, "prompt_tokens": 18, "total_tokens": 27 }}

我们再看看 OpenAI API 的返回结果:

{ "id": "chatcmpl-7lvHYFBRjBTWDf24TSy1JfL6zCmMj", "object": "chat.completion", "model": "gpt-3.5-turbo-0613", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "Hello! How can I assist you today?" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 19, "completion_tokens": 9, "total_tokens": 28 }}

可以看到 Azure OpenAI 的返回结果和 OpenAI API 的返回结果大致相同,除了 Azure OpenAI 的返回结果中多了和这 2 个属性,这 2 个属性分别是对问题和答案的检查结果,检测其中是否包含违规的信息,比如暴力黄色什么的,如果设置了过滤信息检查并检查出了违规内容,Azure OpenAI 的请求就会失败。

prompt_annotations

content_filter_results

Langchain 中对 OpenAI LLM 进行替换

如果你使用的是 Langchain 的 Python 包,可以使用类来替换类,示例代码如下:

AzureOpenAI

OpenAI

from langchain.llms import AzureOpenAIllm = AzureOpenAI( openai_api_type="azure", openai_api_key="Azure OpenAI API KEY", openai.api_base="Azure OpenAI API URL", openai_api_version="2023-06-31-preview", deployment_name="Deployment Name",)

如果你使用的是 Langchain 的 JS 包,可以直接使用原来的类,只需要把原来的参数改成其他的 Azure OpenAI API 参数就可以了,示例代码如下:

ChatOpenAI

openaiKey

import { ChatOpenAI } from 'langchain/chat_models/openai';const model = new ChatOpenAI({ azureOpenAIApiVersion: '2023-06-01-preview', azureOpenAIApiKey: 'Azure OpenAI API KEY', azureOpenAIBasePath: 'Azure OpenAI API URL', azureOpenAIApiDeploymentName: 'Deployment Name',});


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