use serde::{Deserialize, Serialize};
use crate::provider::{ModelName, ProviderId};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RagConfig {
pub provider_id: ProviderId,
pub model: ModelName,
#[serde(default = "default_rag_limit")]
pub limit: usize,
#[serde(default = "default_rag_template")]
pub template: String,
#[serde(default = "default_rag_metadata_field")]
pub metadata_field: String,
}
const fn default_rag_limit() -> usize {
5
}
fn default_rag_template() -> String {
String::from("Use the following retrieved context to inform your response:\n\n{context}")
}
fn default_rag_metadata_field() -> String {
String::from("text")
}