reagent-rs 0.2.4

A Rust library for building AI agents with MCP & custom tools
Documentation
use std::pin::Pin;
use futures::Stream;

use crate::services::llm::client::ClientConfig;
use crate::services::llm::models::{
    chat::{ChatRequest, ChatResponse, ChatStreamChunk},
    embedding::{EmbeddingsRequest, EmbeddingsResponse},
    errors::ModelClientError,
};

#[derive(Debug, Clone)]
pub struct OpenAiClient {
    _cfg: ClientConfig,
}

impl OpenAiClient {
    pub fn new(_cfg: ClientConfig) -> Result<Self, ModelClientError> {
        Err(ModelClientError::Unsupported("OpenAI chat not implemented yet".into()))
    }

    pub async fn chat(&self, _req: ChatRequest) -> Result<ChatResponse, ModelClientError> {
        Err(ModelClientError::Unsupported("OpenAI chat not implemented yet".into()))
    }

    pub async fn chat_stream(
        &self,
        _req: ChatRequest,
    ) -> Result<Pin<Box<dyn Stream<Item = Result<ChatStreamChunk, ModelClientError>> + Send + 'static>>, ModelClientError> {
        Err(ModelClientError::Unsupported("OpenAI streaming not implemented yet".into()))
    }

    pub async fn embeddings(&self, _req: EmbeddingsRequest) -> Result<EmbeddingsResponse, ModelClientError> {
        Err(ModelClientError::Unsupported("OpenAI embeddings not implemented yet".into()))
    }
}