用的一个开源 api 网关 higress ,可以对接基本国内所有的模型厂商
以通义千问为例,先启动网关:
# 创建一个工作目录
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
然后代码里调整下 base url 就行了:
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)
还能进这个 api 网关的控制台: http://127.0.0.1:8001
可以看到默认的模型映射规则,自己可以调整:

插件配置还可以开启联网搜索:
provider:
  type: qwen
  apiTokens:
  - "通义千问 API Key"
  modelMapping:
  # 映射配置省略
  ...
  # 开启联网搜索
  qwenEnableSearch: true
用 lobechat 对接的效果:

对接 lobechat 参考的这个: https://github.com/alibaba/higress/issues/1023
|  |      1FgHh07ObvBiST5po      2024-06-26 23:59:08 +08:00 太不专业了, AI  代理系统, 还得是  https://openrouter.ai https://proxyxai.com 才行啊, 支持全球模型映射以及负载均衡, 把多个 key 组合为 1 个支持超高并发服务 | 
|  |      3FgHh07ObvBiST5po      2024-06-27 10:27:06 +08:00 @oktp123 都是天然的不需要迁移 | 
|  |      4FgHh07ObvBiST5po      2024-06-27 10:27:58 +08:00 客户端 --> one api --> openai api | 
|      5oktp123 OP 自己就可以访问,为什么要通过一道中转,再付一次费呀? | 
|      6oktp123 OP 千问的 api 比 openai 的价格便宜很多了 |