Azure OpenAI 详细申请与使用教程,打造个人专属 ChatGPT 方案
原创 TitiAI TitiAI 2023-05-08 13:26 发表于湖北
前言
大家都知道,OpenAI ChatGPT是不能在中国使用的,香港也一样。最近一个月,很多人反映API调用限制,账号被封禁,注册也关闭了,还不能用国内信用卡支付,用起来越来越麻烦了。不过,Azure OpenAI可以作为一个新的选择。
介绍
Azure OpenAI和OpenAI公司提供的API服务是一样的(微软是OpenAI公司的大股东)。我们使用的chat.openai.com背后的支持也是由Azure提供的,包括训练和推理等等。Github Copilot等微软提供的OpenAI服务也是建立在Azure OpenAI的基础上的。Azure OpenAI官网:https://azure.microsoft.com/zh-cn/products/cognitive-services/openai-service/
优点:
-
不受地域限制,国内可以直接调用。
-
可以自己上传训练数据进行训练(据说很贵)。
-
Azure 多语言 SDK 支持。
-
更适合企业私有化,数据可完全控制删除。
缺点:
-
部分功能未开放,但 ChatGPT 的功能是没问题的。
-
和 OpenAI 官方的 API 标准有差异,无法直接用一些只支持 OpenAI 官方 API 的开源项目。
注册微软Azure用户
在注册Azure之前,我们建议先注册微软的邮箱,这样你就可以全球收发邮件而且有防垃圾邮件的系统,非常实用。
我们直接访问微软Azure平台进行申请,但请注意,中国区Azure是由“世纪互联”运营的,如果你填写资料时选择的国家是中国,就是由国内提供服务的。中国区Azure和国际版Azure在政策和使用方面存在一些差异,但如果你只是为了体验Azure OpenAI的API,那么就没有区别,申请下来的接口都可以使用。
申请成功后,你会发现有一些服务可以免费使用12个月,以及一定数额的赠金。如果你已经有Azure账号了,就不必再申请账号,可以直接跳到下一步,申请API接口。
申请OpenAI API接口权限
在Azure登录后,搜索关键词“OpenAI”
进入Azure OpenAI页面,在底部点击“创建Azure OpenAI”
在此页面中,选择你的订阅(通常为免费试用订阅),然后创建一个名为“OpenAI”的资源组,当然你也可以命名为其它名字
接着,点击红框位置申请,填写一个多达25道题的问卷,需要提供准确的订阅ID和公司信息。订阅ID不是目录ID(租户ID),在顶部搜索”订阅“,在打开的页面把订阅ID复制到问卷,具体请参考下图
请注意,OpenAI只面向企业服务,因此需要填写公司信息和公司邮箱,而非私人邮箱。
申请完成后,等待审核,通常需要2-10天不等。审核通过后,你会收到一封验证邮件,复制链接到浏览器进行验证。通过验证后,你就获得了API接口权限,可以开始进行下一步配置。
配置Azure OpenAI
打开这个页面:https://portal.azure.com/?quickstart=true#create/Microsoft.CognitiveServicesOpenAI
进入 Azure 后,直接搜索OpenAI
若是已经通过,这里即可选择订阅,否则会在下方提示让你申请
选完订阅、资源组,再选择好区域、名称、定价层,直接下一步就好了。
部署完成之后,点击Azure OpenAI Studio即可进行测试
在打开的页面中,可以看到有一些优化选项:
申请OpenAI API并调用
我们最终是需要申请得到API的使用权限的,所以回到刚刚的资源页面概览面板
在Azure的概览面板上,需要记住API的“终结点”(endpoint),以便后续对接使用。另外,可以在下方的“开发”标签页中查看关于API的介绍。主要使用密钥1,密钥2,这些密钥的作用可以参考官方介绍,它们实际上是备用密钥,功能相同。
查看API文档:https://learn.microsoft.com/en-us/azure/cognitive-services/openai/chatgpt-quickstart?WT.mc_id=DT-MVP-5003133&tabs=command-line&pivots=programming-language-studio
使用 POSTMAN 进行调用测试。
打造自己的ChatGPT
打造自己的 ChatGPT 推荐直接使用 https://github.com/Chanzhaoyu/chatgpt-web 这个项目。在此基础上优化修复方案:https://github.com/stulzq/azure-openai-proxy
以下是 docker compose 脚本:
version: '3'
services:
azure-openai:
image: stulzq/azure-openai-proxy
ports:
- 8080:8080
environment:
AZURE_OPENAI_ENDPOINT: <Auzre OpenAI API Endpoint>
AZURE_OPENAI_MODEL_MAPPER: <Auzre OpenAI API Deployment Mapper>
AZURE_OPENAI_API_VER: 2023-03-15-preview
启动有 2 个环境变量需要配置:
变量名 | 说明 |
AZURE_OPENAI_ENDPOINT | Azure 密钥和终结点 里提供的终结点 |
AZURE_OPENAI_MODEL_MAPPER | Azure部署模型名称映射到OpenAI官方模型名称 |
需要特别说明的是,AZURE_OPENAI_MODEL_MAPPER用于将OpenAI官方标准请求中包含的模型名称映射到Azure OpenAI模型部署时自定义的名称。在这里https://platform.openai.com/docs/models可以查询OpenAI官方标准请求中包含的模型名称,但在Azure OpenAI模型部署时,可以自定义模型名称。因此,在请求Azure时,需要提供已部署模型的名称,并建立映射关系。
最后执行启动就好:
docker compose up -d
后续在需要调用api的地方,就把你服务器的endpoint地址填进去就OK了。
结语
Azure OpenAI 平台为开发人员提供了一个强大的工具,可以轻松地创建和训练 ChatGPT 模型。ChatGPT 技术的不断发展,使得它在越来越多的应用场景中发挥着重要作用,为人们提供更加智能和个性化的服务和体验。开发人员可以利用 ChatGPT 技术构建智能客服、智能问答、智能推荐等应用,提高用户体验和满意度。同时,Azure OpenAI 平台还提供了其他强大的 API,如 DALL-E、CLIP、Codex 等,可以满足不同应用场景的需求,为开发人员提供更多的选择和灵活性。
TitiAI