You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用LangChain Python并行执行多个查询?

LangChain实现RAG链多查询并行执行

你已经通过LangChain实现了单查询的RAG链,现在要处理多查询列表并实现并行执行,可通过以下两种常用方案实现:

方案一:使用batch()方法(推荐)

LangChain的Runnable接口内置了batch()方法,支持批量并行处理多个输入,底层会自动优化执行效率,代码实现最简单:

# 直接传入查询列表,批量并行执行
results = rag_chain.batch(queries)

# 遍历输出每个查询对应的结果
for query, answer in zip(queries, results):
    print(f"查询: {query}")
    print(f"回答: {answer}\n")

方案二:使用异步调用ainvoke() + asyncio

如果需要更灵活的异步流程控制,可以结合Python的asyncio模块,通过异步调用实现并行执行:

import asyncio

async def run_parallel_queries():
    # 为每个查询创建异步任务
    tasks = [rag_chain.ainvoke(query) for query in queries]
    # 并行执行所有异步任务
    results = await asyncio.gather(*tasks)
    return results

# 运行异步函数获取结果
results = asyncio.run(run_parallel_queries())

# 输出结果
for query, answer in zip(queries, results):
    print(f"查询: {query}")
    print(f"回答: {answer}\n")

注意事项

  • 确保你的LLM和Retriever支持异步操作(大部分主流模型和检索器都支持)
  • batch()方法默认会并行执行,无需额外配置,适合大多数场景
  • 异步方式适合需要和其他异步逻辑结合的复杂场景

内容的提问来源于stack exchange,提问作者Nicolas REY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:29:56