news 2026/4/27 0:07:48

【大模型】-LangChain--stream流式同步异步

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【大模型】-LangChain--stream流式同步异步

文章目录

  • 1.同步stream流
  • 2.异步astream流
  • 3.异步astream流json输出
  • 4.异步事件astream_events流
  • 5.异步多线程

1.同步stream流

importosfromlangchain_community.chat_modelsimportChatTongyi os.environ["DASHSCOPE_API_KEY"]="sk-秘钥"llm=ChatTongyi(model="qwen-plus")chunks=[]forchunkinllm.stream(#stream同步,异步是astream"天空是什么颜色?"):chunks.append(chunk)print(chunk.content,end="|",flush=True)#print(StrOutputParser().parse(chunks))

2.异步astream流

importosimportasynciofromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.promptsimportChatPromptTemplate,HumanMessagePromptTemplatefromlangchain_community.chat_modelsimportChatTongyifromlangchain_core.messagesimportSystemMessage os.environ["DASHSCOPE_API_KEY"]="sk-秘钥"llm=ChatTongyi(model="qwen-plus")prompt=ChatPromptTemplate.from_template("给我讲一个{topic}的故事")output_parser=StrOutputParser()chain=prompt|llm|output_parserasyncdefasync_astream_chain():asyncforchunkinchain.astream({"topic":"干将"}):print(chunk,end="|",flush=True)asyncio.run(async_astream_chain())

3.异步astream流json输出

importosimportasynciofromlangchain_core.output_parsersimportStrOutputParser,JsonOutputParserfromlangchain_core.promptsimportChatPromptTemplate,HumanMessagePromptTemplatefromlangchain_community.chat_modelsimportChatTongyifromlangchain_core.messagesimportSystemMessage os.environ["DASHSCOPE_API_KEY"]="sk-秘钥"llm=ChatTongyi(model="qwen-plus")#prompt = ChatPromptTemplate.from_template("给我讲一个{topic}的故事")output_parser=JsonOutputParser()chain=llm|output_parserasyncdefasync_astream_chain():asyncforchunkinchain.astream("以JSON格式输出法国、西班牙和日本的国家和人口列表"):print(chunk,flush=True)asyncio.run(async_astream_chain())

4.异步事件astream_events流

importosimportasynciofromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.promptsimportChatPromptTemplate,HumanMessagePromptTemplatefromlangchain_community.chat_modelsimportChatTongyifromlangchain_core.messagesimportSystemMessage os.environ["DASHSCOPE_API_KEY"]="sk-秘钥"llm=ChatTongyi(model="qwen-plus")asyncdefasync_astream():events=[]asyncforeventinllm.astream_events("hello",version="v2"):events.append(event)print(events)asyncio.run(async_astream())""" 事件 [{ 'event': 'on_chat_model_start', 'data': { 'input': 'hello' }, 'name': 'ChatTongyi', 'tags': [], 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'parent_ids': [] }, { 'event': 'on_chat_model_stream', 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'data': { 'chunk': AIMessageChunk(content = 'Hello', additional_kwargs = {}, response_metadata = {}, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9') }, 'parent_ids': [] }, { 'event': 'on_chat_model_stream', 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'data': { 'chunk': AIMessageChunk(content = '! How', additional_kwargs = {}, response_metadata = {}, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9') }, 'parent_ids': [] }, { 'event': 'on_chat_model_stream', 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'data': { 'chunk': AIMessageChunk(content = ' can I assist', additional_kwargs = {}, response_metadata = {}, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9') }, 'parent_ids': [] }, { 'event': 'on_chat_model_stream', 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'data': { 'chunk': AIMessageChunk(content = ' you today?', additional_kwargs = {}, response_metadata = {}, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9') }, 'parent_ids': [] }, { 'event': 'on_chat_model_stream', 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'data': { 'chunk': AIMessageChunk(content = ' 😊', additional_kwargs = {}, response_metadata = {}, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9') }, 'parent_ids': [] }, { 'event': 'on_chat_model_stream', 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'data': { 'chunk': AIMessageChunk(content = '', additional_kwargs = {}, response_metadata = { 'finish_reason': 'stop', 'request_id': '3952154f-a9f5-4b39-a3c5-6eb8c85a6213', 'token_usage': { 'input_tokens': 9, 'output_tokens': 11, 'total_tokens': 20, 'prompt_tokens_details': { 'cached_tokens': 0 } } }, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9') }, 'parent_ids': [] }, { 'event': 'on_chat_model_stream', 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'data': { 'chunk': AIMessageChunk(content = '', additional_kwargs = {}, response_metadata = {}, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9', chunk_position = 'last') }, 'parent_ids': [] }, { 'event': 'on_chat_model_end', 'data': { 'output': AIMessageChunk(content = 'Hello! How can I assist you today? 😊', additional_kwargs = {}, response_metadata = { 'finish_reason': 'stop', 'request_id': '3952154f-a9f5-4b39-a3c5-6eb8c85a6213', 'token_usage': { 'input_tokens': 9, 'output_tokens': 11, 'total_tokens': 20, 'prompt_tokens_details': { 'cached_tokens': 0 } } }, id = 'lc_run--ef708116-49b9-4572-8860-9bcf04c304e9') }, 'run_id': 'ef708116-49b9-4572-8860-9bcf04c304e9', 'name': 'ChatTongyi', 'tags': [], 'metadata': { 'ls_provider': 'tongyi', 'ls_model_type': 'chat', 'ls_model_name': 'qwen-plus' }, 'parent_ids': [] }] """

5.异步多线程

await asyncio.gather(task1(), task2())

importosimportasynciofromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.promptsimportChatPromptTemplate,HumanMessagePromptTemplatefromlangchain_community.chat_modelsimportChatTongyifromlangchain_core.messagesimportSystemMessage os.environ["DASHSCOPE_API_KEY"]="sk-秘钥"llm=ChatTongyi(model="qwen-plus")asyncdeftask1():prompt=ChatPromptTemplate.from_template("给我讲一个{topic}的故事,100字")output_parser=StrOutputParser()chain=prompt|llm|output_parserasyncforchunkinchain.astream({"topic":"干将"}):print(chunk,end="|",flush=True)asyncdeftask2():prompt=ChatPromptTemplate.from_template("给我讲一个{topic}的故事,100字")output_parser=StrOutputParser()chain=prompt|llm|output_parserasyncforchunkinchain.astream({"topic":"秦始皇"}):print(chunk,end="|",flush=True)asyncdefmain():#同步调用# await task1()# await task2()# 异步awaitasyncio.gather(task1(),task2())asyncio.run(main())
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 10:10:57

Octo论文详解

论文:Octo:An Open-Source Generalist Robot Policy 1. 引言 机器人领域构建“通用策略模型”面临多重挑战,包括处理不同的机器人结构、传感器设置、动作空间、任务规格和环境条件等,考虑设计和开发一个具备广泛适应性的机器人策略…

作者头像 李华
网站建设 2026/4/17 12:13:01

基于python+django的学生就业管理的招聘系统(源码+lw+部署文档+讲解等)

课题介绍本课题聚焦校园就业招聘中信息不对称、流程管理低效的痛点,设计并开发基于PythonDjango的学生就业管理与招聘系统。系统以Python作为核心开发语言,依托Django框架搭建高效稳定的后端服务架构,负责处理多角色权限管控、招聘信息发布、…

作者头像 李华
网站建设 2026/4/17 8:57:59

JVM 之 内存溢出实战【OOM? SOF? 哪些区域会溢出?堆、虚拟机栈、元空间、直接内存溢出时各自的特点?以及什么情况会导致他们溢出?并模拟溢出】

实战:OutOfMemoryError异常 除了程序计数器外,堆、虚拟机栈、元空间、直接内存都有发生OOM的可能 下面我们演示下引起各区域OOM的情况,及观察下其异常表现,进而初步总结各异常时的调优策略 JVM调优实例: 堆&#xff1a…

作者头像 李华
网站建设 2026/4/21 7:37:09

磁链观测器实战:从仿真到代码的闭环之旅

磁链观测器(仿真+闭环代码参考文档) 1.仿真采用simulink搭建,2018b版本 2.代码采用Keil软件编译,思路参考vesc中使用的方法,自己编写的代码能够实现0速闭环启动,并且标注有大量注释,方便学习。 …

作者头像 李华
网站建设 2026/4/23 11:18:09

基于TMS320F28335芯片的BUCK双闭环PI DSP代码

基于TMS320F28335芯片的BUCK双闭环(PI)DSP代码搞电力电子的老司机们对BUCK电路都不陌生,但要把双闭环PI控制塞进DSP里跑起来,这事儿还真得跟TMS320F28335的寄存器大战三百回合。今天咱们就扒开这个芯片的"内脏"&#xf…

作者头像 李华
网站建设 2026/4/16 19:52:39

vue基于spring的线上文印店打印店平台设计与实现_61624t38

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作具体实现截图 本系统(程序源码数据库调试部署讲解)同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华