langchain如何并行调用运行接口

文章目录

概要

RunnableParallel 原语本质上是一个字典,其值是运行接口(或可以被强制转换为运行接口的事物,如函数)。它并行运行所有值,并且每个值都使用 RunnableParallel 的整体输入进行调用。最终返回值是一个字典,包含每个值在其适当键下的结果。

并行运行可以有效提高执行效率。多个chain一起执行和单个chain执行的耗时基本相差无几。

并行化步骤

RunnableParallels 使得并行执行多个 Runnables 变得简单,并将这些 Runnables 的输出作为映射返回。

python 复制代码
import os

from langchain_community.chat_models import ChatZhipuAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableParallel

# 设置智普 AI 的 API 密钥
os.environ["ZHIPUAI_API_KEY"] = "5eb20f1f---NRdKxlr"
# 初始化智普 AI 模型
llm = ChatZhipuAI()

chain1 = ChatPromptTemplate.from_template("给我讲个关于{topic}的笑话") | llm
chain2 = ChatPromptTemplate.from_template("给我讲个关于{topic}的八卦") | llm
# RunnableParallel封装起多个chain
map_chain = RunnableParallel(a = chain1, b = chain2)
rest = map_chain.invoke({"topic":"娱乐圈"})
print(rest)
print(rest['a'])
print(rest['b'])

结果:

shell 复制代码
E:\learn_work_spaces\PythonProject1\.venv\Scripts\python.exe E:\learn_work_spaces\PythonProject1\RunnableParallel\demo1.py 
{'a': AIMessage(content='娱乐圈的笑话来了:\n\n有一天,一个明星走进了一家餐厅,服务员兴奋地问他:"哇,您是那个大明星吧?我超级喜欢您的电影!"\n\n明星谦虚地笑了笑说:"谢谢,你真会说话。"\n\n服务员接着说:"真的!我特别喜欢您的一部电影,叫《一天到晚游泳的鱼》!"\n\n明星一脸懵逼,心想:我没拍过这部电影啊?但他还是面带微笑地说:"哦,那部电影啊,确实挺有意思的。"\n\n服务员继续热情地说:"对啊,里面有一句台词,我印象特别深刻:'我游泳游得像一条鱼!'"\n\n这时,旁边的顾客忍不住笑出声来,明星也恍然大悟,原来服务员把他的名字和电影搞混了,他尴尬地笑着说:"哈哈,原来是这样,那部电影确实很搞笑。"\n\n笑话归笑话,其实娱乐圈的明星们为了给观众带来欢乐,背后付出了很多努力,我们要尊重他们的付出哦!', additional_kwargs={}, response_metadata={'token_usage': {'completion_tokens': 200, 'prompt_tokens': 12, 'total_tokens': 212}, 'model_name': 'glm-4', 'finish_reason': 'stop'}, id='run-728ed2b2-992f-444f-8495-f1aa5300713a-0'), 'b': AIMessage(content='娱乐圈的八卦总是充满了各种趣味和悬念。下面我给你讲一个关于娱乐圈的轶事。\n\n这个故事发生在我国娱乐圈的两位当红明星A和B之间。A和B曾共同出演一部电视剧,剧中他们扮演的角色有着深厚的感情。戏外,粉丝们也希望他们能将这段感情延续到现实生活中,将他们视为一对金童玉女。\n\n然而,在一次综艺节目的录制过程中,A和B却因为一场游戏发生了争执。在游戏中,B无意间说出了A的一个秘密,这让A感到非常尴尬和恼火。尽管B事后道歉,但A对此事一直耿耿于怀。\n\n后来,在电视剧宣传期间,A和B需要共同出席各种活动。在一次采访中,记者问起他们之间的感情,A忍不住爆发,当场指责B在节目中泄露他的秘密,并表示不再愿意与B有任何合作。这场采访播出后,粉丝们纷纷表示震惊,也引起了网友们的热议。\n\n事后,双方团队进行了紧急公关,试图平息这场风波。虽然A和B在公开场合表示已经和解,但这段恩怨始终成为了他们之间的一个难以抹去的痕迹。\n\n娱乐圈的纷争和恩怨总是层出不穷,这个故事也只是一个缩影。作为观众,我们还是应该关注艺人的作品,给他们一些私人空间,让他们在复杂的环境中保持自己的初心。', additional_kwargs={}, response_metadata={'token_usage': {'completion_tokens': 267, 'prompt_tokens': 12, 'total_tokens': 279}, 'model_name': 'glm-4', 'finish_reason': 'stop'}, id='run-579e349e-a064-4f4a-b1ea-33653f1ac325-0')}
content='娱乐圈的笑话来了:\n\n有一天,一个明星走进了一家餐厅,服务员兴奋地问他:"哇,您是那个大明星吧?我超级喜欢您的电影!"\n\n明星谦虚地笑了笑说:"谢谢,你真会说话。"\n\n服务员接着说:"真的!我特别喜欢您的一部电影,叫《一天到晚游泳的鱼》!"\n\n明星一脸懵逼,心想:我没拍过这部电影啊?但他还是面带微笑地说:"哦,那部电影啊,确实挺有意思的。"\n\n服务员继续热情地说:"对啊,里面有一句台词,我印象特别深刻:'我游泳游得像一条鱼!'"\n\n这时,旁边的顾客忍不住笑出声来,明星也恍然大悟,原来服务员把他的名字和电影搞混了,他尴尬地笑着说:"哈哈,原来是这样,那部电影确实很搞笑。"\n\n笑话归笑话,其实娱乐圈的明星们为了给观众带来欢乐,背后付出了很多努力,我们要尊重他们的付出哦!' additional_kwargs={} response_metadata={'token_usage': {'completion_tokens': 200, 'prompt_tokens': 12, 'total_tokens': 212}, 'model_name': 'glm-4', 'finish_reason': 'stop'} id='run-728ed2b2-992f-444f-8495-f1aa5300713a-0'
content='娱乐圈的八卦总是充满了各种趣味和悬念。下面我给你讲一个关于娱乐圈的轶事。\n\n这个故事发生在我国娱乐圈的两位当红明星A和B之间。A和B曾共同出演一部电视剧,剧中他们扮演的角色有着深厚的感情。戏外,粉丝们也希望他们能将这段感情延续到现实生活中,将他们视为一对金童玉女。\n\n然而,在一次综艺节目的录制过程中,A和B却因为一场游戏发生了争执。在游戏中,B无意间说出了A的一个秘密,这让A感到非常尴尬和恼火。尽管B事后道歉,但A对此事一直耿耿于怀。\n\n后来,在电视剧宣传期间,A和B需要共同出席各种活动。在一次采访中,记者问起他们之间的感情,A忍不住爆发,当场指责B在节目中泄露他的秘密,并表示不再愿意与B有任何合作。这场采访播出后,粉丝们纷纷表示震惊,也引起了网友们的热议。\n\n事后,双方团队进行了紧急公关,试图平息这场风波。虽然A和B在公开场合表示已经和解,但这段恩怨始终成为了他们之间的一个难以抹去的痕迹。\n\n娱乐圈的纷争和恩怨总是层出不穷,这个故事也只是一个缩影。作为观众,我们还是应该关注艺人的作品,给他们一些私人空间,让他们在复杂的环境中保持自己的初心。' additional_kwargs={} response_metadata={'token_usage': {'completion_tokens': 267, 'prompt_tokens': 12, 'total_tokens': 279}, 'model_name': 'glm-4', 'finish_reason': 'stop'} id='run-579e349e-a064-4f4a-b1ea-33653f1ac325-0'

进程已结束,退出代码为 0
相关推荐
冬奇Lab2 小时前
RAG 系列(二):用 LangChain 搭建你的第一个 RAG Pipeline
人工智能·langchain·llm
dllmayday7 小时前
Milvus在LangChain中使用方法
人工智能·ai·langchain·milvus
倦王7 小时前
langchain 尚硅谷day4-5 Tool工具调用部分(function calling)
langchain
小陈的进阶之路9 小时前
LangChain/LangGraph对比
langchain
Flittly9 小时前
【LangGraph新手村系列】(3)PostgreSQL 持久化检查点:让状态跨越进程与重启
人工智能·python·langchain
JAVA面经实录9179 小时前
企业级java+LangChain4j-RAG系统 限流熔断降级
java·开发语言·分布式·langchain
hjxu201610 小时前
【LangGraph入门 3】精细控制之图的运行时配置和map-reduce
langchain·langgraph
hrhcode12 小时前
【LangGraph】二.State 和 Node 的设计细节
python·ai·langchain·langgraph·ai框架
Trouvaille ~12 小时前
零基础入门 LangChain 与 LangGraph(八):真正让 Agent“活起来”——持久化、记忆、人机交互与时间旅行
langchain·人机交互·agent·python3.11·持久化机制·langgraph·ai应用开发
abigale0313 小时前
LangChain:自定义模型・RAG 检索・Agent 原理笔记
langchain·llm·prompt·agent·rag·lcel