统一调用多个大模型服务

更新时间:
复制 MD 格式

ALB扩展版支持将多个大模型服务统一接入,通过配置AI类型服务器组及基于请求体中模型名称的转发规则,自动将请求路由至对应的后端AI服务,从而提供统一入口并简化客户端集成逻辑。

业务场景

某企业在构建AI应用时,需要分别从阿里云百炼和DeepSeek调用qwen-turbodeepseek-chat模型。ALB扩展版提供AI类型服务器组,客户端只需向ALB发送符合OpenAI格式的请求,在请求体中指定模型名称,ALB的转发规则即可根据模型名称将请求路由至对应的后端大模型服务,实现统一入口,降低业务复杂度和维护成本。

image

适用范围

  • 用户已获取ALB扩展版公测资格

  • 用户已在华北6(乌兰察布)地域创建一个专有网络VPC,分别在可用区A和可用区B创建一个交换机,且交换机已配置公网SNAT(用于AI服务器组调用公网大模型)。

  • 用户已开通阿里云百炼DeepSeek,并获取了API Key。

  • 用户已注册自定义域名。本文计划将ALB实例部署于华北6(乌兰察布)地域,因此域名需要完成ICP备案

  • 用户已准备好与自定义域名匹配的服务器证书。非阿里云购买的证书需要上传到阿里云证书服务

操作步骤

1.创建扩展版ALB实例

  1. 登录ALB控制台,选择华北6(乌兰察布)地域,单击创建应用型负载均衡

  2. 在购买页完成以下配置,单击立即创建

    • 地域:默认选择华北6(乌兰察布)

    • 实例网络类型:选择公网

    • VPC可用区:选择目标VPC,勾选乌兰察布 可用区A乌兰察布 可用区B后选择对应交换机,并自动分配公网IP

    • 协议版本:选择IPv4

    • 功能版本(实例费):选择扩展版

  3. 确认订单页面确认实例配置详情,单击立即开通

2.创建AI类型服务器组

创建两个AI服务类型的服务器组,分别对接阿里云百炼和DeepSeek。

创建阿里云百炼服务器组

  1. 服务器组控制台,单击创建服务器组服务器组类型选择AI服务,给其一个易于识别的名称,本文为sgp-ai-qwen

  2. 单击创建,在服务器组创建成功对话框单击添加后端服务器

  3. 添加AI服务对话框完成以下配置,单击确定

    • 大模型供应商:选择阿里云百炼

    • 服务地址:选择大模型供应商后自动填充。

    • API Key:填入阿里云百炼的API Key。

创建DeepSeek服务器组

  1. 重复上述步骤,创建第二个AI服务类型的服务器组,命名为sgp-ai-deepseek

  2. 添加后端服务器时,大模型供应商选择DeepSeek,并填入DeepSeekAPI Key,单击确定

3.创建监听

  1. ALB控制台,单击目标实例ID进入实例详情页。在监听页签单击创建监听

  2. 配置监听步骤,选择监听协议HTTPS监听端口填写443,完成后单击下一步

  3. 配置SSL证书步骤,选择与自定义域名匹配的服务器证书,单击下一步

  4. 选择服务器组步骤,依次选择AI服务类型和阿里云百炼服务器组sgp-ai-qwen,完成后单击下一步

    此处选择的服务器组将用于监听的默认规则,即在请求未命中其他转发规则时处理请求,用户可根据实际需求进行调整。
  5. 配置审核步骤,确认配置并单击提交

4.配置转发规则

请求按优先级数字从小到大依次匹配转发规则,匹配到某条规则后执行其转发动作,不再匹配后续规则。创建转发条件为AI模型的转发规则,将请求体中模型名称满足匹配条件的请求路由至对应的后端AI服务。

配置阿里云百炼转发规则

  1. 在实例监听页签,单击目标监听ID。在监听详情页切换到转发规则页签。

  2. 单击插入新规则,完成以下配置后单击确定

    • 转发条件:选择AI模型

    • 模型名称:输入qwen-turbo

    • 转发动作转发至sgp-ai-qwen服务器组。

配置DeepSeek转发规则

  1. 重复上述步骤,添加第二条转发规则。

  2. 模型名称输入deepseek-chat转发至sgp-ai-deepseek服务器组。

模型名称为可选参数。转发条件AI模型将匹配所有请求路径为/v1/completions/v1/chat/completions/v1/embeddings,且请求内容符合OpenAI兼容协议的请求。如填写模型名称,则需同时满足请求体中的model字段与指定模型名称匹配。

5.设置域名解析

将自有域名通过CNAME解析指向ALB实例的DNS名称,客户端通过自有域名访问ALB。

本文以阿里云云解析DNS为例,对于非阿里云注册域名,需先将域名添加到云解析控制台

  1. ALB控制台,复制目标实例的DNS 名称

  2. 登录域名解析控制台,在目标域名的操作列单击解析设置。在解析设置页面单击添加记录

  3. 参考以下信息添加CNAME记录,完成后单击确定

    • 记录类型:选择CNAME

    • 主机记录:输入域名前缀如ai。假设用户自有根域名为example.com,则访问ALB的域名为ai.example.com

    • 解析请求来源TTL时间:保持默认。

    • 记录值:输入ALB实例的DNS名称。

  4. 在弹出的解析变更确认对话框确认解析信息,单击确定

6.验证测试

  • 使用curl命令验证请求是否正确路由至对应的大模型服务。请用实际配置的域名替换ai.example.com,需确保域名解析已生效

  • 客户端发送的请求需符合OpenAI兼容协议,请求路径为/v1/completions/v1/chat/completions/v1/embeddings,请求体中需包含model字段。转发规则根据model字段的值进行路由匹配。

测试阿里云百炼(qwen-turbo模型)

curl -v \
    -H "Content-Type: application/json" \
    -d '{
        "model": "qwen-turbo",
        "messages": [
            {
                "role": "user", 
                "content": "你是谁"
            }
        ]
    }' \
    https://ai.example.com/v1/chat/completions

请求成功时,返回如下响应。响应中的model字段为qwen-turbocontent字段包含千问的自我介绍,表明请求已正确路由至阿里云百炼。

{
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "我是千问,是阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我的中文名字是千问,英文名字是Qwen。我能够回答问题、创作文字、逻辑推理、编程等多种任务。你可以叫我Qwen或者千问。有什么我可以帮助你的吗?"
            },
            "finish_reason": "stop",
            "index": 0
        }
    ],
    "object": "chat.completion",
    "model": "qwen-turbo"
}

测试DeepSeek(deepseek-chat模型)

curl -v \
    -H "Content-Type: application/json" \
    -d '{
        "model": "deepseek-chat",
        "messages": [
            {
                "role": "user", 
                "content": "你是谁"
            }
        ]
    }' \
    https://ai.example.com/v1/chat/completions

请求成功时,返回如下响应。响应中的model字段为deepseek-chatcontent字段包含DeepSeek的自我介绍,表明请求已正确路由至DeepSeek。

{
    "object": "chat.completion",
    "model": "deepseek-chat",
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "你好!我是DeepSeek,由深度求索公司创造的AI助手!\n\n我是一个纯文本模型,虽然不支持多模态识别功能,但我有文件上传功能,可以帮你处理图像、txt、pdf、ppt、word、excel等文件,并从中读取文字信息进行分析处理。\n\n我的一些特点:\n- 完全免费使用,没有收费计划\n- 上下文长度达128K,可以处理很长的对话\n- 支持联网搜索(需要手动开启)\n- 可以通过官方应用商店下载App使用\n- 知识截止到2024年7月\n\n我很乐意帮助你解答问题、协助思考、处理文档或者进行各种对话交流!有什么我可以帮你的吗?✨"
            },
            "logprobs": null,
            "finish_reason": "stop"
        }
    ]
}

释放资源

完成测试后,如不再使用相关资源,可按以下步骤释放以避免产生费用。

  1. 删除域名解析记录

    域名解析控制台删除已添加的CNAME记录。

  2. 清理ALB资源

    1. ALB控制台,单击目标实例操作列的释放

    2. 服务器组控制台,单击目标服务器组操作列的删除

  3. 清理VPC资源(可选)

    VPC、交换机为本次测试专门创建,可在VPC控制台中删除。

更多信息

计费说明

  • ALB扩展版:目前处于公测阶段,用户可免费体验。

  • 公网访问费用:公网 NAT 网关收取实例费和容量单位CU。NAT网关和扩展版ALB实例绑定的 EIP 有独立的计费规则,费用由EIP收取。

  • 域名和DNS解析费用:除了需要支付域名供应商的域名费用外,在阿里云配置DNS解析需要支付公网权威解析费用

  • 证书费用:从阿里云购买证书或将证书上传至阿里云,需要支付服务器证书费用

  • 模型费用:调用阿里云百炼DeepSeek的大模型API需要支付费用。

ALB扩展版支持的地域

区域

地域

可用区

中国

华北6(乌兰察布)

可用区A、可用区B、可用区C

华东1(杭州)

可用区J、可用区K

华北2(北京)

可用区I、可用区K、可用区L

华东2(上海)

可用区B、可用区F

中国香港

可用区B、可用区C、可用区D

亚太

新加坡

可用区A、可用区B、可用区C

日本(东京)

可用区B、可用区C、可用区E

欧洲与美洲

德国(法兰克福)

可用区A、可用区B

美国(硅谷)

可用区A、可用区B

中东

阿联酋(迪拜)

可用区A、可用区B