AI创想

标题: LangGraph + LLM + stream_mode [打印本页]

作者: 米落枫    时间: 12 小时前
标题: LangGraph + LLM + stream_mode
作者:E的工程笔记
文章目录



LLM 代码
  1. from dataclasses import dataclass
  2. from langchain.chat_models import init_chat_model
  3. from langgraph.graph import StateGraph, START
  4. from langchain_openai import ChatOpenAI
  5. # 初始化 llm
  6. model_name ='glm-4-flash'
  7. base_url ='https://open.bigmodel.cn/api/paas/v4'
  8. api_key ='6eeeb21...bPJyrc8e'  
  9. llm = ChatOpenAI(
  10.     openai_api_base=base_url,
  11.     model = model_name,
  12.     api_key = api_key,
  13.     temperature=0.1,# streaming=True,  )@dataclassclassMyState:
  14.     topic:str
  15.     joke:str=""defcall_model(state: MyState):"""Call the LLM to generate a joke about a topic"""
  16.     llm_response = llm.invoke(# (1)![{"role":"user","content":f"给我讲一个关于 {state.topic} 的笑话"}])return{"joke": llm_response.content}
  17. graph =(
  18.     StateGraph(MyState).add_node(call_model).add_edge(START,"call_model").compile())
  19. message ={"topic":"冰淇淋"}
复制代码

values
  1. events = graph.stream(
  2.     message,  
  3.     stream_mode="values",)
复制代码

  1. -- event :{'topic':'冰淇淋'}-- event :{'topic':'冰淇淋','joke':'有一天,冰淇淋去参加一个聚会,它走进房间后,看到大家都在聊天,于是它决定找个地方坐下。\n\n冰淇淋走到一个角落,看到一把椅子,它说:“嘿,椅子,我坐这里可以吗?”\n\n椅子回答:“当然可以,不过你得小心,我可是‘冷板凳’。”\n\n冰淇淋一愣,然后笑着说:“哦,原来如此,那我就不客气了,谢谢你的提醒!”'}
复制代码

messages
  1. for message_chunk, metadata in graph.stream(# (2)!{"topic":"ice cream"},
  2.     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