ai_client 0.1.0

A Rust crate for interacting with AI language model APIs
Documentation
use async_trait::async_trait;
use super::super::entities::Message;
use super::super::entities::ChatCompletionResponse;
use super::super::metrics::Metrics;
use super::super::error::LlmClientError;

/// Trait for chat completion clients
#[async_trait]
pub trait ChatCompletionClient: Send + Sync {
    /// Sends a chat completion request
    async fn send_chat_completion(
        &self,
        messages: Vec<Message>,
        reasoning_effort: &str,
    ) -> Result<ChatCompletionResponse, LlmClientError>;

    /// Retrieves metrics
    async fn get_metrics(&self) -> Metrics;

    /// Streams chat completion responses
    async fn stream_chat_completion(
        &self,
        messages: Vec<Message>,
        reasoning_effort: &str,
    ) -> Result<(), LlmClientError>;
}