pub struct OpenAiCompatModel { /* private fields */ }Expand description
Chat Completions adapter for any OpenAI-compatible endpoint.
Implementations§
Source§impl OpenAiCompatModel
impl OpenAiCompatModel
Sourcepub fn new(
provider: impl Into<String>,
model: impl Into<String>,
base_url: impl Into<String>,
api_key: Option<String>,
) -> Self
pub fn new( provider: impl Into<String>, model: impl Into<String>, base_url: impl Into<String>, api_key: Option<String>, ) -> Self
Generic endpoint. provider names the key used for
provider_options and the prefix of Model::id.
pub fn openai(model: impl Into<String>, api_key: impl Into<String>) -> Self
pub fn gemini(model: impl Into<String>, api_key: impl Into<String>) -> Self
pub fn openrouter(model: impl Into<String>, api_key: impl Into<String>) -> Self
pub fn with_pricing(self, pricing: Pricing) -> Self
Trait Implementations§
Source§impl Model for OpenAiCompatModel
impl Model for OpenAiCompatModel
fn complete<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 ModelRequest,
) -> Pin<Box<dyn Future<Output = Result<ModelResponse, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn stream<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 ModelRequest,
) -> Pin<Box<dyn Future<Output = Result<ModelStream, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn stream<'life0, 'life1, 'async_trait>(
&'life0 self,
request: &'life1 ModelRequest,
) -> Pin<Box<dyn Future<Output = Result<ModelStream, ModelError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Stream the response as it is generated. The stream always ends with
StreamEvent::Completed carrying the full response. The default
implementation calls Model::complete and replays it as deltas.Source§fn pricing(&self) -> Option<Pricing>
fn pricing(&self) -> Option<Pricing>
Prices for this model, if configured. Required for USD budgets.
Source§fn cost_usd(&self, response: &ModelResponse) -> Option<f64>
fn cost_usd(&self, response: &ModelResponse) -> Option<f64>
Cost of a response in USD, if pricing is configured.
Source§fn max_call_cost(&self, input_tokens: u64, output_tokens: u64) -> Option<f64>
fn max_call_cost(&self, input_tokens: u64, output_tokens: u64) -> Option<f64>
Upper bound in USD for one call with this many input and output
tokens, counting every attempt a composite model might make. Input is
priced at the higher of the input and cache-write rates.
Source§fn unpriced_models(&self) -> Vec<String>
fn unpriced_models(&self) -> Vec<String>
Ids of models (including any inside a composite) that have no
pricing. A USD budget cannot be enforced while this is non-empty.
Auto Trait Implementations§
impl !RefUnwindSafe for OpenAiCompatModel
impl !UnwindSafe for OpenAiCompatModel
impl Freeze for OpenAiCompatModel
impl Send for OpenAiCompatModel
impl Sync for OpenAiCompatModel
impl Unpin for OpenAiCompatModel
impl UnsafeUnpin for OpenAiCompatModel
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