社区投稿

发布于 2026 年 07 月 12 日 星期日

一个 API Key 同时调用多个大模型怎么做?流式输出与函数调用接入教程

详解如何通过一个API Key统一调用DeepSeek、千问、豆包等多个大模型,涵盖OpenAI兼容接口配置、流式输出实现和函数调用Function Calling的完整接入教程。

为什么需要一个 Key 调用多个模型

在实际 AI 应用开发中,一个产品往往需要混搭多款大模型:DeepSeek 出代码、千问处理中文对话、Kimi 啃长文档。如果分别对接各家官方接口,你要注册多个平台、管理多套 API Key、适配不同 SDK,代码里到处都是条件判断逻辑,维护成本极高。

解决方案很简单:使用一个兼容 OpenAI 接口的聚合网关,实现一个 Base URL、一个 API Key 调用所有模型。这种方案的核心价值在于,应用侧只需要认 OpenAI 标准格式,网关负责把请求路由到对应模型,开发者只需修改 model 参数就能切换模型。

接入教程:三步完成多模型统一调用

第一步:获取 API Key。在 不墨 AI API 注册账号后,在控制台创建一个 API Key,这个 Key 可以调用平台上所有已接入的大模型。

第二步:配置 OpenAI SDK。以 Python 为例,使用官方 openai 库,只需修改两个参数:

from openai import OpenAI

client = OpenAI(
    api_key='your-api-key',
    base_url='https://api.bumo.cc/v1'
)

第三步:指定模型名称调用。切换模型只需修改 model 参数,其余代码完全不变:

# 调用 DeepSeek
response = client.chat.completions.create(
    model='deepseek-chat',
    messages=[{'role': 'user', 'content': '写一段快速排序代码'}]
)

# 切换到通义千问,只需改 model 名称
response = client.chat.completions.create(
    model='qwen-turbo',
    messages=[{'role': 'user', 'content': '写一段快速排序代码'}]
)

整个接入过程不超过 3 分钟,现有基于 OpenAI SDK 的代码几乎不用改动。

流式输出(Streaming)实现

流式输出是指模型生成内容时逐字返回,而非等待完整响应后再一次性返回。这对于聊天类应用至关重要,能显著提升用户体验。在 OpenAI 兼容接口中,只需设置 stream=True 即可开启:

stream = client.chat.completions.create(
    model='deepseek-chat',
    messages=[{'role': 'user', 'content': '介绍一下量子计算'}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end='')

流式输出的底层是 Server-Sent Events(SSE),客户端通过持续读取数据块实现实时展示。需要注意的是,在使用流式输出时要确保及时关闭连接,避免资源泄漏。

函数调用(Function Calling)实战

Function Calling 是大模型连接外部工具的关键能力。开发者可以定义函数(如查询天气、搜索数据库),模型会智能判断是否需要调用某个函数,并输出包含参数的 JSON 对象。OpenAI 在 2024 年 8 月还推出了结构化输出功能,通过设置 strict: true 确保模型生成的参数完全符合定义的 JSON Schema。

以下是一个简单的函数调用示例:

tools = [{
    'type': 'function',
    'function': {
        'name': 'get_weather',
        'description': '获取指定城市的天气',
        'parameters': {
            'type': 'object',
            'properties': {
                'city': {'type': 'string', 'description': '城市名'}
            },
            'required': ['city']
        }
    }
}]

response = client.chat.completions.create(
    model='deepseek-chat',
    messages=[{'role': 'user', 'content': '杭州今天天气怎么样?'}],
    tools=tools
)

模型会返回一个包含函数名和参数的 JSON,开发者拿到参数后自行调用对应函数,再将结果返回给模型生成最终回复。

限流与并发注意事项

在多模型调用场景下,不同模型的并发限制不同。建议在应用层实现请求队列和指数退避重试机制,当某次请求遇到 429(限流)错误时自动等待后重试,而非直接失败。

想要快速体验一个 Key 调用多个大模型、支持流式输出和函数调用的完整能力,可以前往 不墨 AI API 官网,注册即可获取 API Key,平台兼容 OpenAI 接口标准,支持 DeepSeek、千问、豆包、Kimi 等主流国产模型,按量计费、即开即用。