pub trait OpenAICompatibleProvider: Send + Sync {
// Required methods
fn provider_name(&self) -> &'static str;
fn supports_prompt_caching(&self) -> bool;
// Provided methods
fn parse_openai_request(
&self,
value: &Value,
default_model: &str,
) -> Option<LLMRequest> { ... }
fn serialize_openai_messages(&self, request: &LLMRequest) -> Value { ... }
fn parse_openai_response(
&self,
response: Value,
model: String,
include_cache: bool,
) -> Result<LLMResponse> { ... }
}Expand description
Trait for providers that support standard OpenAI-compatible APIs
Required Methods§
fn provider_name(&self) -> &'static str
fn supports_prompt_caching(&self) -> bool
Provided Methods§
Sourcefn parse_openai_request(
&self,
value: &Value,
default_model: &str,
) -> Option<LLMRequest>
fn parse_openai_request( &self, value: &Value, default_model: &str, ) -> Option<LLMRequest>
Parse request from OpenAI format
Sourcefn serialize_openai_messages(&self, request: &LLMRequest) -> Value
fn serialize_openai_messages(&self, request: &LLMRequest) -> Value
Serialize messages to OpenAI format
Sourcefn parse_openai_response(
&self,
response: Value,
model: String,
include_cache: bool,
) -> Result<LLMResponse>
fn parse_openai_response( &self, response: Value, model: String, include_cache: bool, ) -> Result<LLMResponse>
Parse response from OpenAI format
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".