前言
构建好chain,正常run或者invoke没问题但是流式一直是连接后等半天单次就输出完毕了
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | async for chunk in qa_llm_chain.astream({"query": query,
 "chat_history": chat_history,
 "context": context,
 "tone": tone
 }):
 
 logger.info(f"chunk type: {type(chunk)}")
 logger.info(f"chunk content: {chunk}")
 
 | 
解决
挺奇怪的,按理来说应该是可以的。一直好像解决不了,最终是选择直接通过llm调用,而不是chain的方式
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | # 手动构造 prompt 文本prompt_str = prompt_template.format(
 query=query,
 chat_history=chat_history,
 context=context,
 tone=tone
 )
 
 
 async for chunk in llm.astream(prompt_str):
 # 打印 chunk 的内容和类型
 logger.info(f"chunk type: {type(chunk)}")
 logger.info(f"chunk content: {chunk}")
 
 | 
总结
等有时间了这块地方再回来看看,看看是不是chain的astream是假流式,还是说使用方式上有什么问题。目前解决是直接通过llm调用就ok了。