pub struct OpenAiProvider { /* private fields */ }Expand description
OpenAI provider implementing Provider.
Supports the OpenAI Chat Completions API with tool calling,
structured output, and streaming.
§Example
use llm_stack_openai::{OpenAiConfig, OpenAiProvider};
use llm_stack::{ChatParams, ChatMessage, Provider};
let provider = OpenAiProvider::new(OpenAiConfig {
api_key: std::env::var("OPENAI_API_KEY").unwrap(),
..Default::default()
});
let response = provider.generate(&ChatParams {
messages: vec![ChatMessage::user("Hello!")],
..Default::default()
}).await?;Implementations§
Source§impl OpenAiProvider
impl OpenAiProvider
Sourcepub fn new(config: OpenAiConfig) -> Self
pub fn new(config: OpenAiConfig) -> Self
Create a new OpenAI provider from configuration.
If config.client is Some, that client is reused for connection
pooling. Otherwise a new client is built with the configured timeout.
Trait Implementations§
Source§impl Debug for OpenAiProvider
impl Debug for OpenAiProvider
Source§impl Provider for OpenAiProvider
impl Provider for OpenAiProvider
Source§async fn generate(&self, params: &ChatParams) -> Result<ChatResponse, LlmError>
async fn generate(&self, params: &ChatParams) -> Result<ChatResponse, LlmError>
Sends a chat completion request and returns the full response.
Source§async fn stream(&self, params: &ChatParams) -> Result<ChatStream, LlmError>
async fn stream(&self, params: &ChatParams) -> Result<ChatStream, LlmError>
Sends a chat completion request and returns a stream of events. Read more
Source§fn metadata(&self) -> ProviderMetadata
fn metadata(&self) -> ProviderMetadata
Returns static metadata describing this provider instance.
Auto Trait Implementations§
impl Freeze for OpenAiProvider
impl !RefUnwindSafe for OpenAiProvider
impl Send for OpenAiProvider
impl Sync for OpenAiProvider
impl Unpin for OpenAiProvider
impl !UnwindSafe for OpenAiProvider
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> DynProvider for Twhere
T: Provider,
impl<T> DynProvider for Twhere
T: Provider,
Source§fn generate_boxed<'a>(
&'a self,
params: &'a ChatParams,
) -> Pin<Box<dyn Future<Output = Result<ChatResponse, LlmError>> + Send + 'a>>
fn generate_boxed<'a>( &'a self, params: &'a ChatParams, ) -> Pin<Box<dyn Future<Output = Result<ChatResponse, LlmError>> + Send + 'a>>
Boxed-future version of
Provider::generate.Source§fn stream_boxed<'a>(
&'a self,
params: &'a ChatParams,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<StreamEvent, LlmError>> + Send>>, LlmError>> + Send + 'a>>
fn stream_boxed<'a>( &'a self, params: &'a ChatParams, ) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<StreamEvent, LlmError>> + Send>>, LlmError>> + Send + 'a>>
Boxed-future version of
Provider::stream.Source§fn metadata(&self) -> ProviderMetadata
fn metadata(&self) -> ProviderMetadata
Returns static metadata describing this provider instance.