StreamingChatResponseHandler
接口StreamingChatResponseHandler
。它允许开发者定义在响应生成过程中的各个事件的处理逻辑。
Response
对象。对于 StreamingChatModel
,T
为 AiMessage
;对于 StreamingLanguageModel
,T
为 String
。StreamingChatModel
实现流式处理的示例:
OpenAiStreamingChatModel.builder()
创建一个流式模型实例,并从环境变量中获取 API 密钥。StreamingChatResponseHandler
的匿名类,分别定义 onPartialResponse
、onCompleteResponse
和 onError
的处理逻辑。TokenStream
进行流式处理StreamingChatResponseHandler
,您还可以使用 TokenStream
逐个令牌流式处理响应。
Assistant
接口定义了 chat
方法,该方法返回 TokenStream
。OpenAiStreamingChatModel.builder()
初始化模型。TokenStream
进行订阅,分别处理 onNext
、onComplete
和 onError
事件,并启动流式处理。Flux
进行流式处理TokenStream
,您还可以通过 Reactor 库中的 Flux<String>
实现响应流式传输。为此,您需要引入 langchain4j-reactor
依赖。
Assistant
接口定义了返回 Flux<String>
的 chat
方法。Flux.subscribe
来处理每个生成的令牌、错误和完成事件。StreamingChatResponseHandler
、TokenStream
或 Flux
,开发者可以实现流畅的实时响应体验,从而提升应用的互动性和响应速度。
流式处理让用户无需等待完整响应生成即可获取部分内容,尤其适用于聊天机器人和交互式 AI 应用的开发。