流式推理打印推理过程.txt 6.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. 怎么通过如下代码 打印agent整个推理执行过程,if 'messages' in event and event['messages']: 这个条件不满足,
  2. 导致无法打印 event["messages"][-1].pretty_print()
  3. # 流式执行
  4. events = self.agent_executor.astream_events(
  5. {"messages": all_messages},
  6. config=config,
  7. stream_mode="values"
  8. )
  9. full_response = []
  10. buffer = []
  11. last_flush_time = time.time()
  12. # 流式处理事件
  13. async for event in events:
  14. server_logger.info(trace_id=trace_id , msg=f"Event: {event}")
  15. if 'messages' in event and event['messages']:
  16. event["messages"][-1].pretty_print()
  17. if 'chunk' in event['data'] and "on_chat_model_stream" in event['event']:
  18. chunk = event['data']['chunk'].content
  19. full_response.append(chunk)
  20. # 缓冲管理策略
  21. buffer.append(chunk)
  22. current_time = time.time()
  23. # 满足以下任一条件即刷新缓冲区
  24. if (len(buffer) >= 3 or # 达到最小块数
  25. (current_time - last_flush_time) > 0.5 or # 超时
  26. any(chunk.endswith((c, f"{c} ")) for c in
  27. ['.', '。', '!', '?', '\n', ';', ';'])): # 自然断点
  28. # 合并并发送缓冲内容
  29. combined = ''.join(buffer)
  30. yield combined
  31. # 重置缓冲
  32. buffer.clear()
  33. last_flush_time = current_time
  34. P31216.T140704636194752 | 2025-08-26 09:58:09 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | REQUEST | 开始请求: POST http://localhost:8001/queryex/stream, start_time=1756173489.7427042
  35. P31216.T140704636194752 | 2025-08-26 09:58:09 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | config=FarmConfig(sessionId='D00032') input='查询10号信息' businessScene=None context=None supplementInfo=None
  36. P31216.T140704636194752 | 2025-08-26 09:58:09 | INFO | | system | [使用用户最新历史记录作为意图识别]use_history_recognize_intent: True
  37. P31216.T140704636194752 | 2025-08-26 09:58:09 | INFO | | system | get_models -> model_type:deepseek
  38. P31216.T140704636194752 | 2025-08-26 09:58:09 | INFO | | system | get_deepseek_models -> chat_model_id:deepseek-chat,api_key:sk-479e4ea23d8e42bfb982a54137094a7b
  39. P31216.T140704636194752 | 2025-08-26 09:58:09 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | redis 内存上下文历史初始完成=chat_memory=<langchain_community.chat_message_histories.redis.RedisChatMessageHistory object at 0x110ac96a0> return_messages=True memory_key='chat_history'
  40. P31216.T140704636194752 | 2025-08-26 09:58:09 | INFO | | system | 增加用户历史记录,用于意图识别,prompt配置.system_prompt: 基于提供的样例,结合用户最近的对话历史上下文进行意图识别,精准匹配对应的业务场景指令。
  41. 必须优先参考最近的上下文语义及用户意图演变,若问题与样例中的任一业务场景相符,则返回对应指令;若无法匹配任何已定义场景,则返回 cattle_farm_common。
  42. 严格遵守:仅输出指令字符串,不附加任何解释、说明或格式。
  43. 用户目前历史上下文信息:
  44. P31216.T140704636194752 | 2025-08-26 09:58:13 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | 使用意图识别:business_scene=cattle_farm_query
  45. P31216.T140704636194752 | 2025-08-26 09:58:13 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | business_scene_enum:cattle_farm_query Get prompt successfully.
  46. P31216.T140704636194752 | 2025-08-26 09:58:13 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | queryex | session_id:D00032, business_scene:cattle_farm_query,final_result_data_type:Markdown ,input_data: 查询10号信息
  47. P31216.T140704636194752 | 2025-08-26 09:58:16 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | 固定问题意图识别系统: input=查询10号信息, result=question_nine
  48. P31216.T140704636194752 | 2025-08-26 09:58:16 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | 配置固定问题意图识别结果列表: recognize_intent_out_list=['question_one', 'question_two', 'question_three', 'question_four', 'question_five', 'question_six', 'question_seven', 'question_eight']
  49. P31216.T140704636194752 | 2025-08-26 09:58:16 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | fixed_flag=False,answer_result=查询10号信息
  50. P31216.T140704636194752 | 2025-08-26 09:58:16 | INFO | 6344dda5-19f5-4e46-94b9-9a349ad95db3 | system | config=FarmConfig(sessionId='D00032') input='查询10号信息' businessScene=None context=None supplementInfo=None
  51. P31216.T140704636194752 | 2025-08-26 09:58:16 | INFO | | system | 系统提示词 system_prompt:家于一身的AI助手"",专注于为中提供全方位的智能化指导。
  52. 你的建议要务实、经济、易操作,并能基于物联网数据提供精准预警和具体解决方案。
  53. 1. 输出要求:
  54. - 默认以Markdown文本格式输出
  55. - 如果明确返回json格式,请严格规范的json格式(不包含任何额外说明文字)
  56. 2. 内容规范:
  57. - 禁止包含任何敏感信息(密钥/Token/API等)
  58. 3. 解析数据规则
  59. - 参数说明:返回数据类型 data_type 默认为 text
  60. - 工具返回的json结构,其中data中的是需要数据字段,code是错误码,msg是错误信息
  61. 4. json响应模版:
  62. {{
  63. "字段1": "值1",
  64. "字段2": "值2",
  65. "字段3": "值3"
  66. }}