37 LlamaIndex流式响应:实时获取查询结果

LlamaIndex流式响应:实时获取查询结果

在LlamaIndex中,流式响应功能允许你在生成响应的同时进行流式传输。这意味着你可以在完整响应完成之前就开始打印或处理响应的开头部分。这可以显著减少查询的感知延迟。

设置

要启用流式传输,你需要使用支持流式传输的LLM。目前,OpenAI、HuggingFaceLLM以及大多数LangChain LLMs(通过LangChainLLM)都支持流式传输。

注意:如果你选择的LLM不支持流式传输,将会引发NotImplementedError

使用高级API配置查询引擎进行流式传输

在构建查询引擎时,设置streaming=True

query_engine = index.as_query_engine(streaming=True, similarity_top_k=1)

使用低级API配置查询引擎进行流式传输

在构建响应合成器时,传递streaming=True

from llama_index.core import get_response_synthesizer

synth = get_response_synthesizer(streaming=True, ...)
query_engine = RetrieverQueryEngine(response_synthesizer=synth, ...)

流式响应

在正确配置了LLM和查询引擎之后,调用query现在会返回一个StreamingResponse对象。

streaming_response = query_engine.query(
    "What did the author do growing up?",
)

响应会在LLM调用开始时立即返回,而无需等待完整完成。

注意:在查询引擎进行多次LLM调用的情况下,只有最后一次LLM调用会被流式传输,响应会在最后一次LLM调用开始时返回。

获取生成器并迭代token

你可以从流式响应中获取一个生成器,并在token到达时进行迭代:

for text in streaming_response.response_gen:
    # 在token到达时进行处理
    pass

直接打印流式文本

如果你只想在token到达时打印文本:

streaming_response.print_response_stream()

端到端示例

查看端到端示例,了解如何在实际应用中使用流式响应功能。

通过流式响应功能,你可以在生成响应的同时实时获取和处理结果,大大提升用户体验和系统响应速度。LlamaIndex的这一特性使得实时数据处理和交互变得更加高效和便捷。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

需要重新演唱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值