CompletionModel

Trait CompletionModel 

Source
pub trait CompletionModel:
    Clone
    + Send
    + Sync {
    type Response: Send + Sync + Serialize + DeserializeOwned;
    type StreamingResponse: Clone + Unpin + Send + Sync + Serialize + DeserializeOwned + GetTokenUsage;

    // Required methods
    fn completion(
        &self,
        request: CompletionRequest,
    ) -> impl Future<Output = Result<CompletionResponse<Self::Response>, CompletionError>> + Send;
    fn stream(
        &self,
        request: CompletionRequest,
    ) -> impl Future<Output = Result<StreamingCompletionResponse<Self::StreamingResponse>, CompletionError>> + Send;

    // Provided method
    fn completion_request(
        &self,
        prompt: impl Into<Message>,
    ) -> CompletionRequestBuilder<Self> { ... }
}
Expand description

Trait defining a completion model that can be used to generate completion responses. This trait is meant to be implemented by the user to define a custom completion model, either from a third party provider (e.g.: OpenAI) or a local model.

Required Associated Types§

Source

type Response: Send + Sync + Serialize + DeserializeOwned

The raw response type returned by the underlying completion model.

Source

type StreamingResponse: Clone + Unpin + Send + Sync + Serialize + DeserializeOwned + GetTokenUsage

The raw response type returned by the underlying completion model when streaming.

Required Methods§

Source

fn completion( &self, request: CompletionRequest, ) -> impl Future<Output = Result<CompletionResponse<Self::Response>, CompletionError>> + Send

Generates a completion response for the given completion request.

Source

fn stream( &self, request: CompletionRequest, ) -> impl Future<Output = Result<StreamingCompletionResponse<Self::StreamingResponse>, CompletionError>> + Send

Provided Methods§

Source

fn completion_request( &self, prompt: impl Into<Message>, ) -> CompletionRequestBuilder<Self>

Generates a completion request builder for the given prompt.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl CompletionModel for CompletionModelHandle<'_>

Source§

impl CompletionModel for rig::providers::anthropic::completion::CompletionModel

Source§

impl CompletionModel for rig::providers::azure::CompletionModel

Source§

impl CompletionModel for rig::providers::cohere::completion::CompletionModel

Source§

impl CompletionModel for rig::providers::deepseek::CompletionModel

Source§

impl CompletionModel for rig::providers::galadriel::CompletionModel

Source§

impl CompletionModel for rig::providers::gemini::completion::CompletionModel

Source§

impl CompletionModel for rig::providers::groq::CompletionModel

Source§

impl CompletionModel for rig::providers::huggingface::completion::CompletionModel

Source§

impl CompletionModel for rig::providers::hyperbolic::CompletionModel

Source§

impl CompletionModel for rig::providers::mira::CompletionModel

Source§

impl CompletionModel for rig::providers::mistral::completion::CompletionModel

Source§

impl CompletionModel for rig::providers::moonshot::CompletionModel

Source§

impl CompletionModel for rig::providers::ollama::CompletionModel

Source§

impl CompletionModel for rig::providers::openai::completion::CompletionModel

Source§

impl CompletionModel for ResponsesCompletionModel

Source§

impl CompletionModel for rig::providers::openrouter::completion::CompletionModel

Source§

impl CompletionModel for rig::providers::perplexity::CompletionModel

Source§

impl CompletionModel for rig::providers::together::completion::CompletionModel

Source§

impl CompletionModel for rig::providers::xai::completion::CompletionModel