pub enum DriverId {
OpenAI,
OpenRouter,
AzureOpenAI,
OpenAICompletions,
Anthropic,
Gemini,
LlmSim,
Bedrock,
Mai,
Fireworks,
External(Arc<str>),
}Expand description
LLM provider type identifier.
Built-in variants cover providers shipped with everruns. Any string that
does not match a built-in id becomes External(id), so embedders can store
and use custom provider ids without schema migrations.
Serializes to/from a plain string (e.g. "anthropic", "openai-codex").
Variants§
OpenAI
OpenAI using Open Responses API (https://www.openresponses.org/)
OpenRouter
OpenRouter using the OpenAI-compatible Responses API
AzureOpenAI
Azure OpenAI using the Azure-hosted OpenAI v1 API
OpenAICompletions
OpenAI using Chat Completions API (for backward compatibility)
Anthropic
Gemini
Google Gemini API
LlmSim
LLM simulator for testing
Bedrock
AWS Bedrock Runtime (ConverseStream API)
Mai
Microsoft MAI models (e.g. MAI-Code-1-Flash) served via Azure AI Foundry. Uses an OpenAI-compatible Chat Completions API and supports either an Azure AI Foundry API key or Microsoft Entra ID (OAuth) authentication.
Fireworks
Fireworks AI — open-model inference (Llama, Qwen, DeepSeek, GLM, …) served via an OpenAI-compatible Chat Completions API.
External(Arc<str>)
Embedder-defined provider not compiled into everruns-core. The inner id
is the canonical wire string (e.g. "openai-codex").
Implementations§
Source§impl DriverId
impl DriverId
Sourcepub fn external(id: impl Into<Arc<str>>) -> Self
pub fn external(id: impl Into<Arc<str>>) -> Self
Construct an external driver id from its canonical wire id.
The id is normalized to lowercase so registration and lookup match case-insensitively, consistent with built-in parsing.
Sourcepub fn default_trace_templates(&self) -> (Option<String>, Option<String>)
pub fn default_trace_templates(&self) -> (Option<String>, Option<String>)
Default trace-link URL templates for this driver, as
(generation_url_template, session_url_template).
These are best-effort defaults for vendors that expose an observability
dashboard. They are only defaults: an org overrides them per provider
(ProviderTraceConfig) and must opt in via enabled, since most vendors
retain prompt/completion content only when logging is explicitly turned
on. Templates support the {response_id}, {session_id}, {turn_id}
and {model} placeholders.
OpenRouter stores logged generations on its Logs page (https://openrouter.ai/logs, gated behind the account’s “Input & Output Logging” Observability setting). OpenRouter does not document a public deep-link by generation id, so the generation template passes the id best-effort; worst case it lands on the Logs page where the generation can be found by recency.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for DriverId
impl<'de> Deserialize<'de> for DriverId
Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
impl Eq for DriverId
impl StructuralPartialEq for DriverId
Auto Trait Implementations§
impl Freeze for DriverId
impl RefUnwindSafe for DriverId
impl Send for DriverId
impl Sync for DriverId
impl Unpin for DriverId
impl UnsafeUnpin for DriverId
impl UnwindSafe for DriverId
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request