pub struct OpenAiResponsesModelProvider { /* private fields */ }Implementations§
Source§impl OpenAiResponsesModelProvider
impl OpenAiResponsesModelProvider
pub fn new( alias: &str, api_url: Option<&str>, credential: Option<&str>, ) -> OpenAiResponsesModelProvider
pub fn with_max_tokens( self, max_tokens: Option<u32>, ) -> OpenAiResponsesModelProvider
pub fn with_reasoning_effort( self, effort: Option<String>, ) -> OpenAiResponsesModelProvider
Trait Implementations§
Source§impl ModelProvider for OpenAiResponsesModelProvider
impl ModelProvider for OpenAiResponsesModelProvider
Source§fn default_base_url(&self) -> Option<&str>
fn default_base_url(&self) -> Option<&str>
Reports the instance’s resolved endpoint so callers can verify which host a responses provider will actually hit (e.g. a compat family’s default base vs. OpenAI’s).
Source§fn capabilities(&self) -> ProviderCapabilities
fn capabilities(&self) -> ProviderCapabilities
Query model_provider capabilities.
Source§fn default_wire_api(&self) -> &str
fn default_wire_api(&self) -> &str
Wire protocol variant. Either
"responses" (OpenAI Codex-style) or
"chat_completions" (everything else). Providers override to their
native format.Source§fn supports_native_tools(&self) -> bool
fn supports_native_tools(&self) -> bool
Whether model_provider supports native tool calls over API.
Source§fn supports_streaming(&self) -> bool
fn supports_streaming(&self) -> bool
Whether model_provider supports streaming responses.
Source§fn supports_streaming_tool_events(&self) -> bool
fn supports_streaming_tool_events(&self) -> bool
Whether model_provider can emit structured tool-call stream events.
Source§fn chat_with_system<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
system_prompt: Option<&'life1 str>,
message: &'life2 str,
model: &'life3 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
OpenAiResponsesModelProvider: 'async_trait,
fn chat_with_system<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
system_prompt: Option<&'life1 str>,
message: &'life2 str,
model: &'life3 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
OpenAiResponsesModelProvider: 'async_trait,
One-shot chat with optional system prompt. See
simple_chat for
the temperature contract.Source§fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
OpenAiResponsesModelProvider: 'async_trait,
fn chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
request: ChatRequest<'life1>,
model: &'life2 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
OpenAiResponsesModelProvider: 'async_trait,
Structured chat API for agent loop callers. See
simple_chat for
the temperature contract.Source§fn stream_chat(
&self,
request: ChatRequest<'_>,
model: &str,
temperature: Option<f64>,
options: StreamOptions,
) -> Pin<Box<dyn Stream<Item = Result<StreamEvent, StreamError>> + Send>>
fn stream_chat( &self, request: ChatRequest<'_>, model: &str, temperature: Option<f64>, options: StreamOptions, ) -> Pin<Box<dyn Stream<Item = Result<StreamEvent, StreamError>> + Send>>
Structured streaming chat interface. See
simple_chat for the
temperature contract.Source§fn default_temperature(&self) -> f64
fn default_temperature(&self) -> f64
Family-preferred temperature default. Override per family. Documented
for introspection only; never use to convert
None into a wire value.Source§fn default_max_tokens(&self) -> u32
fn default_max_tokens(&self) -> u32
Max output tokens used when the caller / config doesn’t set one.
Source§fn default_timeout_secs(&self) -> u64
fn default_timeout_secs(&self) -> u64
HTTP timeout (seconds) used when the caller / config doesn’t set one.
Source§fn convert_tools(&self, tools: &[ToolSpec]) -> ToolsPayload
fn convert_tools(&self, tools: &[ToolSpec]) -> ToolsPayload
Convert tool specifications to provider-native format.
Source§fn simple_chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
message: &'life1 str,
model: &'life2 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn simple_chat<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
message: &'life1 str,
model: &'life2 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Simple one-shot chat (single user message, no explicit system prompt). Read more
Source§fn list_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn list_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Fetch the list of available model IDs for this model_provider. Read more
Source§fn list_models_with_pricing<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ModelInfo>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn list_models_with_pricing<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<ModelInfo>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Fetch the list of available models with pricing data for this
model_provider. Default delegates to
list_models and returns no
pricing. Concrete providers that receive pricing from their /models
endpoint override this to return enriched data.Source§fn chat_with_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
model: &'life2 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn chat_with_history<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
model: &'life2 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Multi-turn conversation. See
simple_chat for the temperature
contract.Source§fn supports_vision(&self) -> bool
fn supports_vision(&self) -> bool
Whether model_provider supports multimodal vision input.
Source§fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn warmup<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Warm up the HTTP connection pool.
Source§fn chat_with_tools<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
_tools: &'life2 [Value],
model: &'life3 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
fn chat_with_tools<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
messages: &'life1 [ChatMessage],
_tools: &'life2 [Value],
model: &'life3 str,
temperature: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Self: 'async_trait,
Chat with tool definitions for native function calling support.
See
simple_chat for the temperature contract.Source§fn stream_chat_with_system(
&self,
_system_prompt: Option<&str>,
_message: &str,
_model: &str,
_temperature: Option<f64>,
_options: StreamOptions,
) -> Pin<Box<dyn Stream<Item = Result<StreamChunk, StreamError>> + Send>>
fn stream_chat_with_system( &self, _system_prompt: Option<&str>, _message: &str, _model: &str, _temperature: Option<f64>, _options: StreamOptions, ) -> Pin<Box<dyn Stream<Item = Result<StreamChunk, StreamError>> + Send>>
Streaming chat with optional system prompt. See
simple_chat for
the temperature contract.Source§fn stream_chat_with_history(
&self,
messages: &[ChatMessage],
model: &str,
temperature: Option<f64>,
options: StreamOptions,
) -> Pin<Box<dyn Stream<Item = Result<StreamChunk, StreamError>> + Send>>
fn stream_chat_with_history( &self, messages: &[ChatMessage], model: &str, temperature: Option<f64>, options: StreamOptions, ) -> Pin<Box<dyn Stream<Item = Result<StreamChunk, StreamError>> + Send>>
Streaming chat with history. See
simple_chat for the temperature
contract.Auto Trait Implementations§
impl Freeze for OpenAiResponsesModelProvider
impl RefUnwindSafe for OpenAiResponsesModelProvider
impl Send for OpenAiResponsesModelProvider
impl Sync for OpenAiResponsesModelProvider
impl Unpin for OpenAiResponsesModelProvider
impl UnsafeUnpin for OpenAiResponsesModelProvider
impl UnwindSafe for OpenAiResponsesModelProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more