langchain如何并行调用运行接口

devtools/2025/3/18 6:51:06/

文章目录

  • 概要
  • 并行化步骤

概要

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

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

并行化步骤

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


import osfrom 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'])

结果:


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

http://www.ppmy.cn/devtools/168013.html

相关文章

RabbitMQ相关的面试题

以下是150道RabbitMQ相关的面试题及简洁回答: RabbitMQ基础概念 1. 什么是RabbitMQ? RabbitMQ是一个开源的AMQP(高级消息队列协议)实现,用于在分布式系统中进行消息传递和通信。它允许应用程序通过网络发送和接收消息…

SpringBoot集成ElasticSearch实现支持错别字检索和关键字高亮的模糊查询

文章目录 一、背景二、环境准备1.es8集群2.Kibana3.Canal 三、集成到SpringBoot1.新增依赖2.es配置类3.建立索引4.修改查询方法 四、修改前端 一、背景 我们在开发项目的搜索引擎的时候,如果当数据量庞大、同时又需要支持全文检索模糊查询,甚至你想做到…

【创作者纪念日1460天4年】我的创作纪念日

👨‍🎓博主简介 🏅CSDN博客专家   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入&#xff01…

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(6)

1.问题描述: 使用华为内置的MapComponent, 发现显示不出来。查看日志, MapRender底层有报错。 解决方案: 麻烦按以下步骤检查下地图服务,特别是签名证书指纹那部分。 1.一般没有展示地图,可能和没有配置…

【视频】SRS将RTMP转WebRTC、HLS流;获取RTSP转其它流

1、安装依赖库 sudo apt install tclsh sudo apt install cmake sudo apt install autotools-dev automake m4 perl sudo apt install libtool2、源码安装 1)下载源码 https://github.com/ossrs/srs/releases/tag/v5.0-r32)配置、编译 ./configure && make -j83、…

【C++】:C++11详解 —— 入门基础

目录 C11简介 统一的列表初始化 1.初始化范围扩展 2.禁止窄化转换(Narrowing Conversion) 3.解决“最令人烦恼的解析”(Most Vexing Parse) 4.动态数组初始化 5. 直接初始化返回值 总结 声明 1.auto 类型推导 2. declty…

共享经济再中介化进程中的技术创新与模式重构研究——以“开源AI智能名片链动2+1模式S2B2C商城小程序“为例

摘要 本文基于共享经济中介化演进的双重逻辑,通过案例研究与技术解构,探讨"开源AI智能名片链动21分销机制S2B2C商城小程序"集成系统如何重构数字经济时代的价值网络。研究发现,该技术生态通过三维需求匹配、动态价值分配与智能风险…

PyQt6内嵌http.server Web 和Flask Web服务器方法详解

PyQt6 可以内嵌一个简单的 Web 服务器。虽然 PyQt6 本身不提供直接的 Web 服务器功能,但可以结合 Python 的标准库(如 http.server)或其他 Web 框架(如 Flask、FastAPI 等)来实现。 示例:使用 http.server…