统一调用多个大模型服务

更新时间:
复制 MD 格式

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

业务场景

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

image

适用范围

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

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

  • 用户已开通阿里云百炼和DeepSeek并获取了API Key,且已将两者的API Key添加为身份管理中的身份凭证。同一供应商如有多个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创建的身份凭证,支持选择多个。ALB会从已选身份凭证中选择一个API Key与大模型服务建立通信,配置多个可分摊单个API Key的调用配额,并提升服务可用性。

    • ApiKey健康检查:建议开启。开启后,当后端返回401或429状态码时,ALB会自动摘除对应的API Key,请求转由其他可用的API Key承载。

创建DeepSeek服务器组

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

  2. 添加后端服务器时,大模型供应商选择DeepSeek,身份凭证选择为DeepSeek API Key创建的身份凭证(同样支持选择多个),并开启ApiKey健康检查,单击确定。

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-turbo,content字段包含千问的自我介绍,表明请求已正确路由至阿里云百炼。

{
    "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-chat,content字段包含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

华北3(张家口)

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

华北1(青岛)

可用区B、可用区C

亚太

新加坡

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

日本(东京)

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

马来西亚(吉隆坡)

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

欧洲与美洲

德国(法兰克福)

可用区A、可用区B

美国(硅谷)

可用区A、可用区B

美国(弗吉尼亚)

可用区A、可用区B

中东

阿联酋(迪拜)

可用区A、可用区B