Class StreamingChatResponse

java.lang.Object
java.util.concurrent.CompletableFuture<String>
io.github.easy4j.opencode.api.sse.StreamingChatResponse
All Implemented Interfaces:
CompletionStage<String>, Future<String>

public class StreamingChatResponse extends CompletableFuture<String>
OpenCode 流式聊天响应,逐段回调并在结束时返回累积全文。
Since:
1.0.0
Author:
Loong Wan
  • Constructor Details

    • StreamingChatResponse

      public StreamingChatResponse()
  • Method Details

    • onDelta

      public StreamingChatResponse onDelta(Consumer<String> consumer)
      注册文本增量消费者;后续到达的增量按接收顺序同步通知该消费者。
      Parameters:
      consumer - 事件或文本增量消费者;不得为 null
      Returns:
      可观察文本增量、等待完成或主动取消的流式响应
    • acceptDelta

      public void acceptDelta(String delta)
      追加一段文本增量并通知已注册的增量消费者。
      Parameters:
      delta - 本次到达的文本增量;为空时忽略
    • finish

      public void finish()
      以当前累计文本正常完成流式响应。
    • fail

      public void fail(Throwable error)
      以给定异常结束流式响应。
      Parameters:
      error - 导致流式响应失败的异常
    • getAccumulatedContent

      public String getAccumulatedContent()
      通过 OpenCode Server HTTP API 获取累计的流式文本。
      Returns:
      服务端或 CLI 返回的文本值;无内容时可能为空字符串
    • onCancel

      public StreamingChatResponse onCancel(Runnable action)
      绑定底层 EventSource 取消动作。
      Parameters:
      action - 取消时执行的回调;不得为 null
      Returns:
      可观察文本增量、等待完成或主动取消的流式响应
    • cancel

      public boolean cancel(boolean mayInterruptIfRunning)
      取消当前异步操作或 SSE 订阅。
      Specified by:
      cancel in interface Future<String>
      Overrides:
      cancel in class CompletableFuture<String>
      Parameters:
      mayInterruptIfRunning - 是否允许中断正在执行的任务;底层网络调用始终会被取消
      Returns:
      操作成功返回 true,否则返回 false