Interface StreamingListener
- All Known Implementing Classes:
StreamingListener.Adapter
public interface StreamingListener
Callback for LlmClient.chatStream(ChatRequest, StreamingListener). Every method is invoked on the
EDT; implementations can update UI directly without further
marshalling. The terminal ChatResponse is delivered via the
AsyncResource returned by chatStream, not via this listener.
Tool-call streaming differs by provider: OpenAI and Anthropic emit
argument JSON in fragments (potentially many onToolCallDelta
calls per tool); Gemini delivers tool calls atomically at the end
(a single call with the complete argumentsFragment set to the
full JSON). Either pattern is valid.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classNo-op default implementation. -
Method Summary
Modifier and TypeMethodDescriptionvoidonContentDelta(String textDelta) A chunk of assistant text.voidMid-stream error (e.g. connection reset).voidonToolCallDelta(int index, String id, String name, String argumentsFragment) A tool-call fragment.voidToken-accounting update.
-
Method Details
-
onContentDelta
A chunk of assistant text. Append it to whatever text buffer you're rendering. -
onToolCallDelta
A tool-call fragment.indexlets you correlate fragments that belong to the same call when multiple tools are streamed in parallel.nameis non-null on the first fragment for each call.argumentsFragmentis the next slice of the arguments JSON; concatenate fragments for the sameindexto reassemble.idis the provider's tool-call id, present on the first fragment. -
onUsage
Token-accounting update. Most providers send this once at the end; some send incremental counts. -
onError
Mid-stream error (e.g. connection reset). TheAsyncResourcereturned bychatStreamwill also complete with this same exception, so listeners can typically ignore this and react to the resource. Implemented for parity with other SDKs.
-