pub struct OpenAIAdapter { /* private fields */ }Expand description
OpenAI LLM adapter implementing LlmPort.
Implementations§
Source§impl OpenAIAdapter
impl OpenAIAdapter
Sourcepub fn new(config: OpenAIConfig) -> Result<OpenAIAdapter, String>
pub fn new(config: OpenAIConfig) -> Result<OpenAIAdapter, String>
Create a new adapter from explicit configuration.
Sourcepub fn from_env() -> Result<OpenAIAdapter, String>
pub fn from_env() -> Result<OpenAIAdapter, String>
Create an adapter by loading configuration from environment variables.
Source§impl OpenAIAdapter
impl OpenAIAdapter
Sourcepub fn is_vision_model(model: &str) -> bool
pub fn is_vision_model(model: &str) -> bool
Check if a model supports vision.
Trait Implementations§
Source§impl LlmPort for OpenAIAdapter
impl LlmPort for OpenAIAdapter
Source§fn generate<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
fn generate<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
Generate a completion from the LLM Read more
Source§fn generate_stream<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = Result<StreamingResponse, LlmError>> + Send>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
fn generate_stream<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = Result<StreamingResponse, LlmError>> + Send>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
Generate a streaming completion from the LLM Read more
Source§fn validate_model<'life0, 'life1, 'async_trait>(
&'life0 self,
model: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
OpenAIAdapter: 'async_trait,
fn validate_model<'life0, 'life1, 'async_trait>(
&'life0 self,
model: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
OpenAIAdapter: 'async_trait,
Validate if a model is available from this provider Read more
Source§fn get_available_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
fn get_available_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
Get a list of available models from this provider Read more
Source§fn get_provider_name(&self) -> &'static str
fn get_provider_name(&self) -> &'static str
Get the provider name Read more
Source§fn get_capabilities(&self) -> ProviderCapabilities
fn get_capabilities(&self) -> ProviderCapabilities
Get the capabilities of this provider Read more
Source§impl VisionCapableLlm for OpenAIAdapter
impl VisionCapableLlm for OpenAIAdapter
Source§fn generate_with_vision<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
vision: VisionRequest,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
fn generate_with_vision<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
vision: VisionRequest,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
OpenAIAdapter: 'async_trait,
Generate a completion with both text and vision inputs. Read more
Source§fn supports_vision(&self) -> bool
fn supports_vision(&self) -> bool
Check if this provider supports vision capabilities. Read more
Source§impl VisionPort for OpenAIAdapter
impl VisionPort for OpenAIAdapter
Source§fn analyze_image<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
prompt: &'life1 str,
images: Vec<VisionContent>,
model: &'life2 str,
max_tokens: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<VisionResult, VisionError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
OpenAIAdapter: 'async_trait,
fn analyze_image<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
prompt: &'life1 str,
images: Vec<VisionContent>,
model: &'life2 str,
max_tokens: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<VisionResult, VisionError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
OpenAIAdapter: 'async_trait,
Analyze one or more images with a text prompt Read more
Source§fn is_vision_model(&self, model: &str) -> bool
fn is_vision_model(&self, model: &str) -> bool
Check if a specific model supports vision Read more
Source§fn provider_name(&self) -> &str
fn provider_name(&self) -> &str
Get the provider name (e.g., “openai”, “anthropic”)
Auto Trait Implementations§
impl Freeze for OpenAIAdapter
impl !RefUnwindSafe for OpenAIAdapter
impl Send for OpenAIAdapter
impl Sync for OpenAIAdapter
impl Unpin for OpenAIAdapter
impl UnsafeUnpin for OpenAIAdapter
impl !UnwindSafe for OpenAIAdapter
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 more