Parameters
| Parameter | Type | Default | Description | |
|---|---|---|---|---|
model_request_parameters | ModelRequestParameters | Required | Configuration for the model request | |
final_result_event | `FinalResultEvent | None` | None | Event indicating the final result is complete |
provider_response_id | `str | None` | None | Provider-specific response ID |
provider_details | `dict[str, Any] | None` | None | Additional provider-specific details |
finish_reason | `FinishReason | None` | None | Reason why the response finished |
_parts_manager | ModelResponsePartsManager | ModelResponsePartsManager() | Manager for handling response parts | |
_event_iterator | `AsyncIterator[ModelResponseStreamEvent] | None` | None | Iterator for streaming events |
_usage | RequestUsage | RequestUsage() | Usage information for the request |
Functions
__aiter__
Stream the response as an async iterable of [ModelResponseStreamEvent][upsonic.messages.ModelResponseStreamEvent]s.
This proxies the _event_iterator() and emits all events. When a part is identified as containing the final result, all events for that part are yielded first, followed by a [FinalResultEvent][upsonic.messages.FinalResultEvent] to indicate the result is complete.
Returns:
AsyncIterator[ModelResponseStreamEvent]: An async iterator of model response stream events
_get_event_iterator
Return an async iterator of [ModelResponseStreamEvent][upsonic.messages.ModelResponseStreamEvent]s.
This method should be implemented by subclasses to translate the vendor-specific stream of events into upsonic format events.
It should use the _parts_manager to handle deltas, and should update the _usage attributes as it goes.
Returns:
AsyncIterator[ModelResponseStreamEvent]: An async iterator of model response stream events
NotImplementedError: If not implemented by subclass
get
Build a [ModelResponse][upsonic.messages.ModelResponse] from the data received from the stream so far.
Returns:
ModelResponse: The complete model response
usage
Get the usage of the response so far. This will not be the final usage until the stream is exhausted.
Returns:
RequestUsage: The usage information
model_name
Get the model name of the response.
Returns:
str: The model name
NotImplementedError: If not implemented by subclass
provider_name
Get the provider name.
Returns:
str | None: The provider name
NotImplementedError: If not implemented by subclass
timestamp
Get the timestamp of the response.
Returns:
datetime: The timestamp of the response
NotImplementedError: If not implemented by subclass

