请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

agent stream 流输出

使用 agent.stream 的时候 为啥流输出是工作流,而不是回答问题的流,这个代码怎么写呐

正在回答 回答被采纳积分+3

2回答

tomiezhang 2024-08-28 12:02:07

了解了哈,流的输出类似这样:

chunks = []
async for chunk in agent.astream("what color is the sky?"):
    chunks.append(chunk)
    print(chunk.content, end="|", flush=True)

如果想在前端实现打字机效果,需要结合websocket来实现

0 回复 有任何疑惑可以回复我~
tomiezhang 2024-08-19 14:45:10

没太明白你的问题,agent.stream的时候传入参数主要是问题,然后会在agent内执行提示词模板-》判断是否调用工具-》调用适当工具-》得到答案-》返回给LLM -》 得到最终答案 -》 以流的形式逐字输出

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_盲区行者_0 #1
    我其实不想要这个工作的 stream 流,我只想要最终答案的那个 aimessage 的流数据,我通过流做对话框
    回复 有任何疑惑可以回复我~ 2024-08-27 10:56:39
  • 提问者 qq_盲区行者_0 #2
    for chunk in app.stream(
                    {"messages": [HumanMessage("给我一首诗")]},
                    stream_mode="values"
            ):
                chunk["messages"][-1].pretty_print()
    比如这个代码的结果如下:
    ================================ Human Message =================================
    今天是星期几
    ================================== Ai Message ==================================
    Tool Calls:
      search_from_web (call_Mahwlf1tGtBqS1dbO0101FE6)
     Call ID: call_Mahwlf1tGtBqS1dbO0101FE6
      Args:
        context: 今天是星期几
    ================================= Tool Message =================================
    Name: search_from_web
    [{"title": "Days of the Week / \u661f\u671f\u51e0", "url": "https://pollylingu.al/zh/en/lessons/2011", "content": "\u4eca\u5929\u662f\u661f\u671f\u4e09\u3002. J\u012bnti\u0101n scl}]
    ================================== Ai Message ==================================
    今天是星期三。
    
    但是我不想要这么一大堆,我只想要 “今天是星期三” 这个最终结果是以流的形式给我就行,但现在显然不是,是一次性给我的
    回复 有任何疑惑可以回复我~ 2024-08-27 11:01:13
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信