Skip to content

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. "medium").

reasoning_summary str | None

Reasoning summary mode (e.g. "auto").

service_tier str | None

Service tier (e.g. "flex", "priority").

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 AssistantMessageEvent.

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 (max_tokens, thinking_budget) tuple.

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 StreamOptions instance.

clamp_reasoning(effort)

Clamp "xhigh" to "high" for models that don't support it.