一个 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 等主流国产模型,按量计费、即开即用。
