pub struct OpenRouterBackend { /* private fields */ }Expand description
OpenRouter multi-provider gateway. Composes
OpenAICompatibleBackend with the OpenRouter preset + slug-aware
capability + tokens overrides.
Implementations§
Source§impl OpenRouterBackend
impl OpenRouterBackend
Sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Construct from env. OPENROUTER_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, regional OpenRouter endpoints).
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 slug. Useful when an adopter pins a
specific model (e.g. anthropic/claude-haiku-4-5 for cheap
drafting).
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 OpenRouterBackend
impl Backend for OpenRouterBackend
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 OpenRouterBackend
impl !UnwindSafe for OpenRouterBackend
impl Freeze for OpenRouterBackend
impl Send for OpenRouterBackend
impl Sync for OpenRouterBackend
impl Unpin for OpenRouterBackend
impl UnsafeUnpin for OpenRouterBackend
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.