一.背景
当今,人工智能技术持续演进,众多企业和个人积极探寻其在各领域的应用。
在自然语言处理方面,OpenAI 的 GPT 系列模型备受瞩目,尤其是 ChatGPT 掀起 AI 应用热潮,百度文心一言、Google Bard 及 Notion AI 等科技公司纷纷跟进。就当下体验而言,OpenAI ChatGPT 表现最优。
作为 OpenAI 大股东,Microsoft 是使用其服务的“头等用户”,相继推出 GitHub Copilot、New Bing、Office 365 Copilot 和 Github Copilot X 等。当下,Microsoft Azure 是唯一提供 OpenAI 云服务的云厂商,其 Azure OpenAI 提供的 API 服务让构建和部署自家的 ChatGPT 得以实现。
二.对比
Azure OpenAI 和 OpenAI 官方提供的服务基本是一致的,但是目前前者还是处于预览版的状态,一些功能还没有完全开放。
注意:需要使用 Azure 国际版
企业如何合规、稳定使用ChatGPT以及Copilot?
出于合规角度,建议国内企业可以选择微软的Azure OpenAI服务来使用接口。
通过微软官方合作伙伴获取服务,企业用户可以合规、稳定地使用ChatGPT,满足国内发票需求,同时也能解决连接不稳定/响应速度慢/并发配额低等问题。
作为微软的合作伙伴,全云在线可为企业开通绿色申请通道!包括最新版本GPT-4o、Dalle-3等,只要企业有需求,全云在线都能协助快速开通!
参考链接:https://azureopenai.cloudallonline.com/?zxwsh109
全云微软 Azure OpenAI试用申请
优点:
缺点:
Azure OpenAI 也已经支持 GPT-4 了,需要单独进行申请,博主的申请还没通过本文暂时以 GPT-3.5 进行演示。
三.使用 Auzre OpenAI
1.创建服务
进入 Azure 后,直接搜索 "Azure OpenAI"。
选择你已经申请通过的订阅进行创建。
如果该订阅没有启动则不能创建。
2.创建模型部署
在资源管理->模型部署 选择需要的模型进行创建,每个模型只能创建1个部署。
2.Azure OpenAI Studio
模型创建完成以后,我们可以直接使用 Azure OpenAI Studio 来进行快速的测试。
ChatGPT 测试。
上传自己的数据集。
四.API 调用
在 资源管理->密钥和终结点 可以获取 API 地址以及调用密钥。
查看API 文档
使用 POSTMAN 进行调用测试。
五.打造自己的 ChatGPT
1.Azure OpenAI Proxy
打造自己的 ChatGPT 推荐直接使用https://github.com/Chanzhaoyu/chatgpt-web这个项目。
前面我们说到 API 调用是有差异的,此项目目前还没有直接支持 Azure OpenAI。我尝试修改过这个项目,可以调用了但是有个问题,无法正常的自动结束对话,跟了代码发现有 Bug:
https://github.com/Chanzhaoyu/chatgpt-web->https://github.com/transitive-bullshit/chatgpt-api->https://github.com/rexxars/eventsource-parser
最终在 eventsource-parser 这个 package 里,无法适应 Azure OpenAI 返回的结果,做过对比发现 Azure OpenAI 返回的调用最后少了一个换行。
\n
最终我便想了个方法,自己实现一个 Proxy转换OpenAI 官方 API 标准到 Azure OpenAI 标准,这样就能让 Azure OpenAI 直接对接到任何支持 OpenAI 的任何项目中,并且可以顺便修复上面所说的差异,让 chatgpt-web 直接使用 Azure OpenAI。
项目地址:https://github.com/stulzq/azure-openai-proxy希望大家点点 star。
2.搭建
最快的方式当然是使用 Docker,以下是 docker compose 脚本:
version: '3'services: chatgpt-web: image: chenzhaoyu94/chatgpt-web ports: - 3002:3002 environment: OPENAI_API_KEY:
OPENAI_API_BASE_URL: http://azure-openai:8080 AUTH_SECRET_KEY: "" MAX_REQUEST_PER_HOUR: 1000 TIMEOUT_MS: 60000 depends_on: - azure-openai links: - azure-openai networks: - chatgpt-ns azure-openai: image: stulzq/azure-openai-proxy ports: - 8080:8080 environment: AZURE_OPENAI_ENDPOINT:
AZURE_OPENAI_MODEL_MAPPER:
AZURE_OPENAI_API_VER: 2023-03-15-preview networks: - chatgpt-nsnetworks: chatgpt-ns: driver: bridge
启动有 3 个环境变量需要配置:
变量名
OPENAI_API_KEY
Azure 密钥和终结点 里提供的 Key
AZURE_OPENAI_ENDPOINT
Azure 密钥和终结点 里提供的终结点
AZURE_OPENAI_MODEL_MAPPER
Azure 部署模型名称映射到 OpenAI 官方模型名称
特别说明一下使用 OpenAI 官方标准发起的请求里包含的模型名称是固定的,在这里可以查询,而在 Azure OpenAI 模型部署时是可以自定义名称的,请求 Azure yes需要提供这个部署模型的名称,所以建立了一个映射关系。
AZURE_OPENAI_MODEL_MAPPER
比如我在 Azure 部署了一个模型,我设置的部署名称为:,此时我的设置:
gpt-3.5-turbo
xc-gpt-35
AZURE_OPENAI_MODEL_MAPPER: gpt-3.5-turbo=xc-gpt-35
六.结束
Azure OpenAI 平台为开发人员提供了一个强大的工具,可以轻松地创建和训练 ChatGPT 模型。随着 ChatGPT 技术的不断发展,它将在越来越多的应用场景中发挥重要作用,为人们提供更加智能和个性化的服务和体验。