use anyhow::{Context, Result};
use super::embeddings::EmbeddingEngine;
use super::model_cache_dir;
use super::reranker::CrossEncoderEngine;
#[derive(Debug, serde::Serialize)]
pub struct SetupResult {
pub model_dir: String,
}
pub fn download_model() -> Result<SetupResult> {
let cache_dir = model_cache_dir();
let _engine = EmbeddingEngine::new().context("Failed to download embedding model")?;
Ok(SetupResult {
model_dir: cache_dir.display().to_string(),
})
}
pub fn download_cross_encoder() -> Result<SetupResult> {
let cache_dir = model_cache_dir();
let _engine = CrossEncoderEngine::load().context("Failed to download cross-encoder model")?;
Ok(SetupResult {
model_dir: cache_dir.display().to_string(),
})
}