一.背景

当今,人工智能技术持续演进,众多企业和个人积极探寻其在各领域的应用。

在自然语言处理方面,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/?zxwwy210
企业微软 Azure OpenAI 免费试用申请

打开网易新闻 查看精彩图片

优点:

  • 不受地域限制,国内可以直接调用。
  • 可以自己上传训练数据进行训练(据说很贵)。
  • Azure 多语言 SDK 支持。
  • 更适合企业私有化,数据可完全控制删除。

缺点:

  • 部分功能未开放,但 ChatGPT 的功能是没问题的。
  • 和 OpenAI 官方的 API 标准有差异,无法直接用一些只支持 OpenAI 官方API 的开源项目。
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 技术的不断发展,它将在越来越多的应用场景中发挥重要作用,为人们提供更加智能和个性化的服务和体验。