OpenAI 国内停服,除了各个大模型厂商提供的迁移方案外,是否有其他更平滑的迁移方案呢?本文以 OpenAI 切换到通义千问为例,介绍开源网关 Higress 的应对方案。优势是:
默认按照模型价格和能力进行了合理映射,且支持用户自定义调整配置。
可以通过 OpenAI 的统一协议对接多种大模型,屏蔽实现细节,降低接入新大模型的 API 适配成本。
Higress 可以提供 token 限流插件、内容审核插件,通过网关的工程化能力实现业务收益。
实操视频
Aliware
步骤介绍
Aliware
**🔔 准备工作:需要登录阿里云申请通义千问 API Key[**1]
**第一步:启动 Higress AI 网关
**
Higress 有多种部署方式,例如 K8s Helm 部署,或者对接 Nacos 部署等。最简单的方式是通过一个 Docker 命令直接在本地启动:
`# 创建一个工作目录``mkdir higress; cd higress``# 启动 higress,配置文件会写到工作目录下``docker run -d --rm --name higress-ai -v ${PWD}:/data \` `-p 8001:8001 -p 8080:8080 \` `-e CONFIG_TEMPLATE=ai-proxy -e DEFAULT_AI_SERVICE=qwen \` `-e DASHSCOPE_API_KEY=这里填你自己的通义千问APIKey \` `higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/all-in-one:1.4.1`
**第二步:调整 API 地址
**
不用改任何代码逻辑,只需通过 base_url 调整 API 地址为 Higress AI 网关的 API 地址,这里是里本地启动的,所以填:http://127.0.0.1:8080/v1
例如下面是 openai 流式响应的例子:
`from openai import OpenAI`` ``client = OpenAI(` `api_key="your-api-key",` `base_url="http://127.0.0.1:8080/v1"``)`` ``# 不需要修改模型,higress 做了等价映射``stream = client.chat.completions.create(` `model="gpt-4o",` `messages=[{"role": "user", "content": "你是谁"}],` `stream=True,``)`` ``# 换行打印收到的每个流式响应``for chunk in stream:` `if chunk.choices[0].delta.content:` `print(chunk.choices[0].delta.content)`` `
测试生效:
Higress AI 代理能力介绍
Aliware
可以用类似方式,通过 Higress 将业务对 OpenAI 的依赖快速迁移到其他厂商的大模型。
下图以 OpenAI SDK 流式处理为例, Higress 的 AI 代理原理如下,可以纯流式处理多种不同厂商的模型协议:
探索更多 Higress AI 网关能力
Aliware
**自定义模型映射
**
Higress 默认将所有 OpenAI 模型按能力和价格做了到通义千问的等价映射:
用户也可以进入 Higress 控制台,自定义模型映射。
**开启通义千问联网搜索能力
**
AI 代理插件配置为:
`provider:` `type: qwen` `apiTokens:` `- "你自己的通义千问 API Key"` `modelMapping:` `# 映射配置省略` `...` `# 开启联网搜索能力` `qwenEnableSearch: true`
然后使用 LobeChat 进行测试(这里查看:LobeChat 对接方式**[****2]**):
**实现最简单的 RAG
**
上传一份文件用于 RAG(详细可以查看这里的文档**[****3]**):
`curl --location --request POST 'https://dashscope.aliyuncs.com/compatible-mode/v1/files' \` `--header 'Authorization: Bearer 这里填APIKey' \` `--form 'file=@" ./doc.md"' \` `--form 'purpose="file-extract"'`` ``# 返回内容中包含文件id:``{"id":"file-fe-xxxxxxx","object":"file","bytes":596687,"created_at":1716635947,"filename":"doc.md","purpose":"file-extract","status":"processed"}`
AI 代理插件配置为:
`provider:` `type: qwen` `apiTokens:` `- "你自己的通义千问 API Key"` `modelMapping:` `# 映射配置省略` `...` `# 在这里配置上面返回的文件id` `qwenFileIds:` `- "file-fe-xxxxxxx"`
导入 Higress 官网文档的文件 id,测试效果:
**Higress 的更多 AI 能力
**
从 2020 年开始,我们通过服务阿里内部,以及云上客户的需求,沉淀了云原生网关 Higress,在开源社区分享代码和知识的同时,通过大量开源用户的使用反馈,得以进一步完善自身能力。
今天,**Higress 企业版既是通义千问等阿里云核心 AI 业务的 API 网关,又是云上多家 AGI 厂商的的 API 网关,**我们也很乐于分享在接入这些场景过程中积累的心得体会,并将相关 AI 能力全面开源:
Higress AI 网关相关能力的详细说明,可以查看这篇文档:《Higress 重磅更新:AI 能力全面开源,云原生能力再升级》
关于 AI 代理插件,以及 Higress 其他 AI 插件的能力介绍和使用方式在 Higress 官网文档均有详细说明,可以访问 https://higress.cn 查看。
如果你有企业级 AI 网关需求,可以点击阅读原文,了解 Higress 企业版,立即拥有通义千问的同款流量网关。
欢迎更多小伙伴一起参与到 Higress 社区的建设中,近期的社区活动有:
GLCC 开源夏令营的 Higress 三大课题**[**4]
了解更多社区动态,可以加入 Higress 微信/钉钉群(群号:30735012403 )。
相关链接:
[1] 申请通义千问 API Key
https://help.aliyun.com/zh/dashscope/opening-service?spm=a2c4g.11186623.0.0.72c2369dLprd45
[2] LobeChat 对接方式
https://github.com/alibaba/higress/issues/1023
[3] 文档
[4] GLCC 开源夏令营的 Higress 三大课题