use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use apistos::ApiComponent;
use schemars::JsonSchema;
#[derive(Debug, Serialize, Deserialize, Clone, JsonSchema, ApiComponent)]
pub struct Config {
pub chunking_type: String,
pub chunking_size: usize,
pub embedding_model: String,
}
#[derive(Debug, Serialize, Deserialize, JsonSchema, ApiComponent)]
pub struct ProcessedContent {
pub url: String,
pub config: Config,
pub chunks: HashMap<usize, String>,
pub embeddings: HashMap<usize, Vec<f32>>,
pub error: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, JsonSchema, ApiComponent)]
pub struct InputData {
pub url: String,
pub config: Option<Config>,
}
#[derive(Debug, Serialize, Deserialize, JsonSchema, ApiComponent)]
pub struct InputDataText {
pub text: Vec<String>,
pub config: Option<Config>,
}
pub fn get_default_config() -> Config {
Config {
chunking_type: "words".to_string(),
chunking_size: 512,
embedding_model: "BGESmallENV15".to_string(),
}
}