使用asyncio + aiohttp可实现openai、deepseek、qwen等大模型的并发调用,避免串行等待;需用async with管理clientsession和请求连接,通过asyncio.gather并发执行各模型协程,返回有序响应列表。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让多个大模型(如OpenAI、DeepSeek、Qwen)在同一时间发起请求,避免串行等待导致总耗时翻倍,直接用Python asyncio + aiohttp实现并发调用。
准备环境与依赖
确保已安装 Python 3.8+,然后执行:pip install aiohttp。aiohttp 是异步 HTTP 客户端库,比 requests 更适合并发场景;【不要用 requests 在 async 函数里发请求,会阻塞事件循环】。
定义单个模型调用协程
每个模型封装为独立协程,统一接收 session、url、payload、headers 参数:
async def call_model(session, url, payload, headers):
async with session.post(url, json=payload, headers=headers) as response:
return await response.json()
这一步必须用 async with 管理连接生命周期,否则可能引发连接泄漏或超时错误。
构造多模型并发请求
第一步:整理各模型的 API 配置,包括 URL、密钥头、请求体结构。例如:
openai_cfg = {
"url": "https://api.openai.com/v1/chat/completions",
"headers": {"Authorization": "Bearer sk-xxx"},
"payload": {"model": "gpt-4o", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 64}
}
deepseek_cfg = {
"url": "https://api.deepseek.com/v1/chat/completions",
"headers": {"Authorization": "Bearer ds-xxx"},
"payload": {"model": "deepseek-chat", "messages": [{"role": "user", "content": "你好"}], "max_tokens": 64}
}
第二步:用 asyncio.gather 并发触发所有调用:
async def fetch_all():
async with aiohttp.ClientSession() as session:
tasks = [
call_model(session, **openai_cfg),
call_model(session, **deepseek_cfg),
call_model(session, **qwen_cfg)
]
return await asyncio.gather(*tasks)
注意:aiohttp.ClientSession 必须在 async with 中创建并复用,不能为每个请求新建 session,否则会触发连接池耗尽。
运行并获取结果
直接调用 asyncio.run(fetch_all()) 即可启动整个流程。返回值是包含所有模型响应的列表,顺序与 tasks 中定义顺序一致。











