pi_llm.providers¶
providers
¶
pi_llm.providers — Provider implementations and helpers.
OpenAIResponsesOptions(temperature=None, max_tokens=None, api_key=None, cancel_event=None, cache_retention=None, session_id=None, on_payload=None, headers=None, max_retry_delay_ms=None, metadata=None, reasoning_effort=None, reasoning_summary=None, service_tier=None)
dataclass
¶
Bases: StreamOptions
Extended options for the OpenAI Responses API.
Attributes:
| Name | Type | Description |
|---|---|---|
reasoning_effort |
str | None
|
Reasoning effort level (e.g. |
reasoning_summary |
str | None
|
Reasoning summary mode (e.g. |
service_tier |
str | None
|
Service tier (e.g. |
stream_openai_responses(model, context, options=None)
¶
Stream from the OpenAI Responses API.
Returns an event stream immediately and processes the API response in a background asyncio task.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
Model to use for the request. |
required |
context
|
Context
|
Conversation context. |
required |
options
|
OpenAIResponsesOptions | None
|
OpenAI-specific options. |
None
|
Returns:
| Type | Description |
|---|---|
AssistantMessageEventStream
|
An async iterable event stream of |
stream_simple_openai_responses(model, context, options=None)
¶
Simplified entry point with automatic option building.
Validates the API key, maps SimpleStreamOptions to
OpenAIResponsesOptions, and delegates to stream_openai_responses.
register_builtin_providers()
¶
Register built-in API providers.
Currently registers the OpenAI Responses API provider. Must be called
before stream_simple() or complete_simple() will work.
reset_api_providers()
¶
Clear all providers and re-register builtins.
adjust_max_tokens_for_thinking(base_max_tokens, model_max_tokens, reasoning_level, custom_budgets=None)
¶
Calculate token limits for thinking-enabled models.
Returns:
| Type | Description |
|---|---|
tuple[int, int]
|
A |
build_base_options(model, options=None, api_key=None)
¶
Map SimpleStreamOptions to base StreamOptions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model
|
Model
|
The model (used for default max_tokens). |
required |
options
|
SimpleStreamOptions | None
|
Simplified options to convert. |
None
|
api_key
|
str | None
|
API key override. |
None
|
Returns:
| Type | Description |
|---|---|
StreamOptions
|
A |
clamp_reasoning(effort)
¶
Clamp "xhigh" to "high" for models that don't support it.