pub struct OpenAIGateway { /* private fields */ }Expand description
Gateway for OpenAI LLM service.
This gateway provides access to OpenAI models through their API, supporting text generation, structured output, tool calling, and embeddings.
Implementations§
Source§impl OpenAIGateway
impl OpenAIGateway
Sourcepub fn with_config(config: OpenAIConfig) -> Self
pub fn with_config(config: OpenAIConfig) -> Self
Create a new OpenAI gateway with custom configuration.
Sourcepub fn with_api_key(api_key: impl Into<String>) -> Self
pub fn with_api_key(api_key: impl Into<String>) -> Self
Create gateway with custom API key.
Trait Implementations§
Source§impl Default for OpenAIGateway
impl Default for OpenAIGateway
Source§impl LlmGateway for OpenAIGateway
impl LlmGateway for OpenAIGateway
Source§fn complete<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
model: &'life1 str,
messages: &'life2 [LlmMessage],
tools: Option<&'life3 [Box<dyn LlmTool>]>,
config: &'life4 CompletionConfig,
) -> Pin<Box<dyn Future<Output = Result<LlmGatewayResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn complete<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
model: &'life1 str,
messages: &'life2 [LlmMessage],
tools: Option<&'life3 [Box<dyn LlmTool>]>,
config: &'life4 CompletionConfig,
) -> Pin<Box<dyn Future<Output = Result<LlmGatewayResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Complete an LLM request with text response
Source§fn complete_json<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
model: &'life1 str,
messages: &'life2 [LlmMessage],
schema: Value,
config: &'life3 CompletionConfig,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn complete_json<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
model: &'life1 str,
messages: &'life2 [LlmMessage],
schema: Value,
config: &'life3 CompletionConfig,
) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Complete an LLM request with structured JSON response
Source§fn get_available_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_available_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get list of available models
Source§fn calculate_embeddings<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
text: &'life1 str,
model: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<f32>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn calculate_embeddings<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
text: &'life1 str,
model: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<Vec<f32>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Calculate embeddings for text
Source§fn complete_stream<'a>(
&'a self,
model: &'a str,
messages: &'a [LlmMessage],
tools: Option<&'a [Box<dyn LlmTool>]>,
config: &'a CompletionConfig,
) -> Pin<Box<dyn Stream<Item = Result<StreamChunk>> + Send + 'a>>
fn complete_stream<'a>( &'a self, model: &'a str, messages: &'a [LlmMessage], tools: Option<&'a [Box<dyn LlmTool>]>, config: &'a CompletionConfig, ) -> Pin<Box<dyn Stream<Item = Result<StreamChunk>> + Send + 'a>>
Stream LLM responses chunk by chunk Read more
Auto Trait Implementations§
impl Freeze for OpenAIGateway
impl !RefUnwindSafe for OpenAIGateway
impl Send for OpenAIGateway
impl Sync for OpenAIGateway
impl Unpin for OpenAIGateway
impl !UnwindSafe for OpenAIGateway
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