omni_dev/claude/ai/
mod.rs1pub mod bedrock;
4pub mod claude;
5pub mod openai;
6
7use anyhow::Result;
8use std::future::Future;
9use std::pin::Pin;
10
11#[derive(Clone, Debug)]
13pub struct AiClientMetadata {
14 pub provider: String,
16 pub model: String,
18 pub max_context_length: usize,
20 pub max_response_length: usize,
22}
23
24pub trait AiClient: Send + Sync {
26 fn send_request<'a>(
28 &'a self,
29 system_prompt: &'a str,
30 user_prompt: &'a str,
31 ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'a>>;
32
33 fn get_metadata(&self) -> AiClientMetadata;
35}