AI创想
标题:
LangGraph + LLM + stream_mode
[打印本页]
作者:
米落枫
时间:
12 小时前
标题:
LangGraph + LLM + stream_mode
作者:E的工程笔记
文章目录
LLM 代码valuesmessagesupdatesmessages + updatesmessages + updates 2
LLM 代码
from dataclasses import dataclass
from langchain.chat_models import init_chat_model
from langgraph.graph import StateGraph, START
from langchain_openai import ChatOpenAI
# 初始化 llm
model_name ='glm-4-flash'
base_url ='https://open.bigmodel.cn/api/paas/v4'
api_key ='6eeeb21...bPJyrc8e'
llm = ChatOpenAI(
openai_api_base=base_url,
model = model_name,
api_key = api_key,
temperature=0.1,# streaming=True, )@dataclassclassMyState:
topic:str
joke:str=""defcall_model(state: MyState):"""Call the LLM to generate a joke about a topic"""
llm_response = llm.invoke(# (1)![{"role":"user","content":f"给我讲一个关于 {state.topic} 的笑话"}])return{"joke": llm_response.content}
graph =(
StateGraph(MyState).add_node(call_model).add_edge(START,"call_model").compile())
message ={"topic":"冰淇淋"}
复制代码
values
events = graph.stream(
message,
stream_mode="values",)
复制代码
-- event :{'topic':'冰淇淋'}-- event :{'topic':'冰淇淋','joke':'有一天,冰淇淋去参加一个聚会,它走进房间后,看到大家都在聊天,于是它决定找个地方坐下。\n\n冰淇淋走到一个角落,看到一把椅子,它说:“嘿,椅子,我坐这里可以吗?”\n\n椅子回答:“当然可以,不过你得小心,我可是‘冷板凳’。”\n\n冰淇淋一愣,然后笑着说:“哦,原来如此,那我就不客气了,谢谢你的提醒!”'}
复制代码
messages
for message_chunk, metadata in graph.stream(# (2)!{"topic":"ice cream"},
stream_mode="messages",):print('\n')print('-- message_chunk : ', message_chunk)print('-- metadata : ', metadata)if message_chunk.content:print(message_chunk.content, end="|", flush=True)
复制代码
[code]-- metadata :{'langgraph_step':1,'langgraph_node':'call_model','langgraph_triggers':('branch:to:call_model',),'langgraph_path':('__pregel_pull','call_model'),'langgraph_checkpoint_ns':'call_model:ee4d452e-bd6a-6176-fb64-086b7793dd96','checkpoint_ns':'call_model:ee4d452e-bd6a-6176-fb64-086b7793dd96','ls_provider':'openai','ls_model_name':'glm-4-flash','ls_model_type':'chat','ls_temperature':0.1}-- message_chunk : content='为什么' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
为什么|-- message_chunk : content='冰淇淋' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
冰淇淋|-- message_chunk : content='总是' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
总是|-- message_chunk : content='那么' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
那么|-- message_chunk : content='开心' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
开心|-- message_chunk : content='?\n\n因为它' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
?
因为它|-- message_chunk : content='总是' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
总是|-- message_chunk : content='笑' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
笑|-- message_chunk : content='得' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
得|-- message_chunk : content='“' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
“|-- message_chunk : content='冰' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
冰|-- message_chunk : content='”' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
”|-- message_chunk : content='裂' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
裂|-- message_chunk : content='!' additional_kwargs={} response_metadata={} id='run--a3723e25-7094-4fad-8339-fdd41da406e4'
!|-- message_chunk : content='
欢迎光临 AI创想 (https://www.llms-ai.com/)
Powered by Discuz! X3.4