pub struct OpenAIBackend { /* private fields */ }Expand description
OpenAI Chat Completions backend. Composes OpenAICompatibleBackend
with the OpenAI preset + a capability override for Vision on the
gpt-4o family.
Implementations§
Source§impl OpenAIBackend
impl OpenAIBackend
Sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Construct from env. OPENAI_API_KEY is read at construction time;
None is permitted (auth check fires at first call).
Sourcepub fn with_api_key(api_key: Option<String>) -> Self
pub fn with_api_key(api_key: Option<String>) -> Self
Construct with an explicit API key (or None).
Sourcepub fn with_base_url(self, base_url: impl Into<String>) -> Self
pub fn with_base_url(self, base_url: impl Into<String>) -> Self
Override the base URL (test fixtures, mock servers, Azure
OpenAI-compatible deployments). Returns self for builder
chaining.
Sourcepub fn with_default_model(self, model: impl Into<String>) -> Self
pub fn with_default_model(self, model: impl Into<String>) -> Self
Override the default model.
Sourcepub fn inner(&self) -> &OpenAICompatibleBackend
pub fn inner(&self) -> &OpenAICompatibleBackend
Borrow the underlying OpenAICompatibleBackend (for testing
fixtures that need access to the composed inner state).
Trait Implementations§
Source§impl Backend for OpenAIBackend
impl Backend for OpenAIBackend
Source§fn name(&self) -> &str
fn name(&self) -> &str
Short provider name used as the registry key.
E.g.
"anthropic", "openai", "kimi".Source§fn default_model(&self) -> &str
fn default_model(&self) -> &str
Default model used when
ChatRequest::model is empty.Source§fn complete<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, BackendError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn complete<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, BackendError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Synchronous-result chat completion (non-streaming).
Source§fn stream<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatStream, BackendError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stream<'life0, 'async_trait>(
&'life0 self,
request: ChatRequest,
) -> Pin<Box<dyn Future<Output = Result<ChatStream, BackendError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Streaming chat completion. Adopter consumes the returned stream;
per-chunk text arrives in
ChatChunk::delta, finish reason +
usage in the final chunk.Source§fn count_tokens(&self, model: &str, text: &str) -> usize
fn count_tokens(&self, model: &str, text: &str) -> usize
Best-effort token count for
text against a specific model on
this provider. Default impl delegates to the unified
tokens::count_tokens dispatch; per-provider overrides may
consult the provider’s HTTP count_tokens endpoint when an
exact answer is required + a network round-trip is acceptable.Auto Trait Implementations§
impl !RefUnwindSafe for OpenAIBackend
impl !UnwindSafe for OpenAIBackend
impl Freeze for OpenAIBackend
impl Send for OpenAIBackend
impl Sync for OpenAIBackend
impl Unpin for OpenAIBackend
impl UnsafeUnpin for OpenAIBackend
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreCreates a shared type from an unshared type.