wae_ai/capabilities/
chat.rs1use crate::{AiConfig, AiResult};
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct ChatMessage {
8 pub role: String,
10 pub content: String,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct ChatParams {
17 pub messages: Vec<ChatMessage>,
19 pub temperature: Option<f32>,
21 pub max_tokens: Option<u32>,
23}
24
25pub trait ChatCapability: Send + Sync {
27 #[allow(async_fn_in_trait)]
29 async fn chat(&self, params: &ChatParams, config: &AiConfig) -> AiResult<String>;
30}