pub struct OpenRouterExt;Trait Implementations§
Source§impl<H> Capabilities<H> for OpenRouterExt
impl<H> Capabilities<H> for OpenRouterExt
Source§type Completion = Capable<GenericCompletionModel<OpenRouterExt, H>>
type Completion = Capable<GenericCompletionModel<OpenRouterExt, H>>
Completion model capability marker.
Source§type Embeddings = Capable<EmbeddingModel<H>>
type Embeddings = Capable<EmbeddingModel<H>>
Embedding model capability marker.
Source§type Transcription = Capable<TranscriptionModel<H>>
type Transcription = Capable<TranscriptionModel<H>>
Audio transcription model capability marker.
Source§type ModelListing = Capable<OpenRouterModelLister<H>>
type ModelListing = Capable<OpenRouterModelLister<H>>
Model listing capability marker.
Source§type ImageGeneration = Nothing
type ImageGeneration = Nothing
Available on crate feature
image only.Image generation model capability marker.
Source§type AudioGeneration = Capable<AudioGenerationModel<H>>
type AudioGeneration = Capable<AudioGenerationModel<H>>
Available on crate feature
audio only.Audio generation model capability marker.
Source§impl Clone for OpenRouterExt
impl Clone for OpenRouterExt
Source§fn clone(&self) -> OpenRouterExt
fn clone(&self) -> OpenRouterExt
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for OpenRouterExt
Source§impl Debug for OpenRouterExt
impl Debug for OpenRouterExt
Source§impl DebugExt for OpenRouterExt
impl DebugExt for OpenRouterExt
Source§impl Default for OpenRouterExt
impl Default for OpenRouterExt
Source§fn default() -> OpenRouterExt
fn default() -> OpenRouterExt
Returns the “default value” for a type. Read more
Source§impl OpenAICompatibleProvider for OpenRouterExt
impl OpenAICompatibleProvider for OpenRouterExt
Source§const PROVIDER_NAME: &'static str = "openrouter"
const PROVIDER_NAME: &'static str = "openrouter"
Provider name recorded on
gen_ai.provider.name telemetry spans.Source§const STREAM_INCLUDE_USAGE: bool = false
const STREAM_INCLUDE_USAGE: bool = false
Whether streaming requests include
"stream_options": {"include_usage": true}. Providers that reject
unknown parameters and already report usage on the final chunk set
this to false.Source§type StreamingUsage = Usage
type StreamingUsage = Usage
The usage payload parsed from streaming chunks and carried on the
final streaming response. OpenAI’s
Usage for most providers;
providers with richer usage accounting (e.g. Mistral’s cached-token
fallbacks, DeepSeek’s cache hit/miss counters) substitute their own.Source§type Response = CompletionResponse
type Response = CompletionResponse
The chat-completions payload this provider returns.
Source§fn build_completion_request(
&self,
model: String,
request: CompletionRequest,
options: CompletionModelOptions,
) -> Result<CompletionRequest, CompletionError>
fn build_completion_request( &self, model: String, request: CompletionRequest, options: CompletionModelOptions, ) -> Result<CompletionRequest, CompletionError>
Build the typed chat-completions request. Providers that share the
OpenAI transport but need provider-specific message conversion can
override this while still using
GenericCompletionModel for sending,
streaming, error handling, and telemetry.Source§fn finalize_request_body_with_options(
&self,
body: &mut Value,
options: CompletionModelOptions,
) -> Result<(), CompletionError>
fn finalize_request_body_with_options( &self, body: &mut Value, options: CompletionModelOptions, ) -> Result<(), CompletionError>
Adjust the fully serialized request body with model-level options.
Providers that do not need model-instance options should override
finalize_request_body instead.Source§fn decorate_streaming_tool_call(
&self,
detail: &Value,
tool_calls: &mut HashMap<usize, RawStreamingToolCall>,
)
fn decorate_streaming_tool_call( &self, detail: &Value, tool_calls: &mut HashMap<usize, RawStreamingToolCall>, )
Decorate streamed tool calls from provider-specific streaming detail
payloads. Most OpenAI-compatible providers do not emit such details.
Source§const EMITS_COMPLETE_SINGLE_CHUNK_TOOL_CALLS: bool = false
const EMITS_COMPLETE_SINGLE_CHUNK_TOOL_CALLS: bool = false
Whether the backend can emit a whole tool call (id, name, and complete
arguments) in a single streaming chunk, as llama.cpp-based servers do.
When true, the shared streaming layer emits such calls as soon as they
arrive instead of holding them until the stream ends.
Source§const SUPPORTS_TOOLS: bool = true
const SUPPORTS_TOOLS: bool = true
Whether the provider supports tool calling. When false,
tools and
tool_choice are dropped with a warning during request conversion —
before tool-choice validation, so unsupported tool configurations
never error client-side on a provider that ignores tools anyway.Source§const SUPPORTS_RESPONSE_FORMAT: bool = true
const SUPPORTS_RESPONSE_FORMAT: bool = true
Whether
output_schema maps to OpenAI’s response_format. Providers
whose APIs reject json_schema response formats set this to false;
the schema is then dropped with a warning instead of being sent.Source§fn completion_path(&self, model: &str) -> String
fn completion_path(&self, model: &str) -> String
The request path for chat completions, resolved against the client
base URL by
Provider::build_uri.
Providers that route the model through the URL (e.g. Azure deployment
paths) or keep other capabilities on differently-versioned paths
override this. model is the identifier the completion model handle
was created with; per-request model overrides only affect the body.Source§fn prepare_request(
&self,
request: &mut CompletionRequest,
) -> Result<(), CompletionError>
fn prepare_request( &self, request: &mut CompletionRequest, ) -> Result<(), CompletionError>
Adjust the typed request before serialization (e.g. rewrite the model
identifier or fold provider-native tool definitions out of
additional_params).Source§fn finalize_request_body(&self, body: &mut Value) -> Result<(), CompletionError>
fn finalize_request_body(&self, body: &mut Value) -> Result<(), CompletionError>
Adjust the fully serialized request body — after any streaming
parameters are merged — immediately before it is sent. This is where
wire-level dialect differences live (e.g. Mistral’s
"any" tool
choice, DeepSeek’s string-flattened message content).Source§impl Provider for OpenRouterExt
impl Provider for OpenRouterExt
Source§const VERIFY_PATH: &'static str = "/key"
const VERIFY_PATH: &'static str = "/key"
Provider endpoint used by
VerifyClient to validate credentials.Source§type Builder = OpenRouterExtBuilder
type Builder = OpenRouterExtBuilder
The builder type that constructs this provider extension.
This associates extensions with their builders for type inference.
Auto Trait Implementations§
impl Freeze for OpenRouterExt
impl RefUnwindSafe for OpenRouterExt
impl Send for OpenRouterExt
impl Sync for OpenRouterExt
impl Unpin for OpenRouterExt
impl UnsafeUnpin for OpenRouterExt
impl UnwindSafe for OpenRouterExt
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
impl<T> CloneDebuggableStorage for Twhere
T: DebuggableStorage + Clone,
fn clone_storage(&self) -> Box<dyn CloneDebuggableStorage>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CloneableStorage for T
impl<T> CloneableStorage for T
fn clone_storage(&self) -> Box<dyn CloneableStorage>
impl<T> DebuggableStorage for T
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> 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