pub trait LlmProvider: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn complete(
&self,
request: &CompletionRequest,
) -> Result<CompletionResponse, LlmError>;
fn embed(
&self,
request: &EmbeddingRequest,
) -> Result<EmbeddingResponse, LlmError>;
fn is_available(&self) -> bool;
fn metrics(&self) -> LlmProviderMetrics;
}Expand description
Trait for LLM provider implementations.
Required Methods§
Sourcefn complete(
&self,
request: &CompletionRequest,
) -> Result<CompletionResponse, LlmError>
fn complete( &self, request: &CompletionRequest, ) -> Result<CompletionResponse, LlmError>
Send a completion request.
Sourcefn embed(
&self,
request: &EmbeddingRequest,
) -> Result<EmbeddingResponse, LlmError>
fn embed( &self, request: &EmbeddingRequest, ) -> Result<EmbeddingResponse, LlmError>
Generate embeddings.
Sourcefn is_available(&self) -> bool
fn is_available(&self) -> bool
Check if the provider is available/connected.
Sourcefn metrics(&self) -> LlmProviderMetrics
fn metrics(&self) -> LlmProviderMetrics
Get provider metrics.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".