Expand description
LLM provider trait, streaming primitives, and first-party provider implementations.
This crate defines the LlmProvider trait that all LLM backends implement,
streaming types for incremental response processing, attachment validation,
model capability metadata, and seven first-party provider implementations.
§Provider Implementations
| Provider | Module | Protocol |
|---|---|---|
| Anthropic (Messages API) | impls::anthropic | SSE streaming |
| OpenAI (Chat Completions) | impls::openai | SSE streaming |
| OpenAI (Responses API) | impls::openai_responses | SSE streaming |
| OpenAI Codex / ChatGPT | impls::openai_codex_responses | WebSocket |
| Google Gemini | impls::gemini | SSE streaming |
| Google Vertex AI | impls::vertex | SSE streaming |
| Cloudflare AI Gateway | impls::cloudflare_ai_gateway | Proxy wrapper |
Re-exports§
pub use fallback::FallbackProvider;pub use provider::LlmProvider;pub use provider::ModelInfo;pub use provider::StructuredOutputSupport;pub use provider::collect_stream;pub use record_replay::RecordReplayMode;pub use record_replay::RecordReplayProvider;pub use refresh::RefreshingProvider;pub use router::ModelRouter;pub use router::ModelTier;pub use router::TaskComplexity;pub use streaming::StreamAccumulator;pub use streaming::StreamBox;pub use streaming::StreamDelta;pub use structured::StructuredConfig;pub use structured::StructuredOutput;pub use structured::StructuredOutputError;pub use structured::StructuredStream;pub use structured::StructuredStreamUpdate;pub use structured::run_structured;pub use structured::run_structured_stream;pub use impls::CloudflareAIGatewayProvider;pub use impls::GeminiProvider;pub use impls::OpenAICodexResponsesProvider;pub use impls::VertexProvider;pub use impls::AnthropicProvider;pub use impls::is_oauth_token;pub use impls::OpenAIAllowedToolsMode;pub use impls::OpenAIApiSurface;pub use impls::OpenAIPromptCacheMode;pub use impls::OpenAIPromptCacheTtl;pub use impls::OpenAIProvider;pub use impls::OpenAIReasoningConfig;pub use impls::OpenAIReasoningContext;pub use impls::OpenAIReasoningEffort;pub use impls::OpenAIReasoningMode;pub use impls::OpenAIReasoningSummary;pub use impls::OpenAIResponsesProvider;pub use impls::OpenAITextVerbosity;pub use impls::OpenAIToolChoice;pub use model_capabilities::ModelCapabilities;pub use model_capabilities::PricePoint;pub use model_capabilities::Pricing;pub use model_capabilities::SourceStatus;pub use model_capabilities::get_model_capabilities;pub use model_capabilities::supported_model_capabilities;pub use model_features::ModelApiSurface;pub use model_features::ModelFeatureSet;pub use model_features::ModelFeatures;pub use model_features::ModelInputModality;pub use model_features::ModelPromptCacheFeatures;pub use model_features::ModelPromptCacheMode;pub use model_features::ModelPromptCacheTtl;pub use model_features::ModelReasoningContext;pub use model_features::ModelReasoningEffort;pub use model_features::ModelReasoningFeatures;pub use model_features::ModelReasoningMode;pub use model_features::ModelReasoningStateReplay;pub use model_features::ModelReasoningSummary;pub use model_features::ModelToolChoice;pub use model_features::ModelToolFeatures;pub use model_features::get_model_features;pub use model_features::supported_model_features;pub use model_catalog::CatalogEntry;pub use model_catalog::ModelCatalogSource;pub use model_catalog::ModelRegistry;pub use model_catalog::ModelsDevSource;pub use model_catalog::OpenRouterSource;pub use model_catalog::ResolvedModel;pub use model_catalog::ResolvedSource;pub use search::BraveSearchProvider;pub use search::SearchProvider;pub use search::SearchResponse;pub use search::SearchResult;
Modules§
- attachments
- fallback
- Provider failover: try an ordered list of providers until one succeeds.
- impls
- First-party LLM provider implementations.
- model_
capabilities - model_
catalog - Dynamic model capability/pricing discovery from third-party feeds.
- model_
features - Static feature metadata for
OpenAImodels. - provider
- LLM provider trait and streaming helpers.
- record_
replay - Deterministic record / replay provider wrapper (feature
record-replay). - refresh
- Provider wrapper that refreshes credentials on 401 and retries once.
- router
- search
- Search provider trait and implementations.
- streaming
- Streaming types for LLM responses.
- structured
- Schema-validated structured output.
Structs§
- Cache
Config - Caller-facing control over provider-side prompt caching.
- Chat
Request - Chat
Response - Content
Source - Source data for image and document content blocks.
- Message
- Response
Format - Requests that the model constrain its final answer to a JSON Schema.
- Thinking
Config - Configuration for extended thinking.
- Tool
- Usage
Enums§
- Cache
Ttl - Time-to-live for a provider-side prompt-cache breakpoint.
- Chat
Outcome - Content
- Content
Block - Effort
- Effort level for adaptive thinking via
output_config. - Role
- Stop
Reason - Thinking
Mode - The mode of extended thinking.
- Tool
Choice - Controls whether the model must use a tool.
Constants§
- USER_
CANCELLED_ TOOL_ RESULT - Default
tool_resulttext used to close atool_useblock the user cancelled (or otherwise abandoned) before it produced a real result.
Functions§
- balance_
tool_ results - Close every unanswered
tool_useloop inmessages. - has_
unbalanced_ tool_ use - True when
messagescontains atool_useblock whose id is not answered by anytool_resultblock anywhere in the conversation. - parse_
retry_ after - Parse the value of an HTTP
Retry-Afterheader into aDuration.