From 5dadaca7674e74183c192416f3a0761413cdea9e Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Wed, 2 Jul 2025 09:53:57 +0530 Subject: [PATCH] feat: v1 api: better error handling --- src/v1/api.rs | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/src/v1/api.rs b/src/v1/api.rs index 99c0969..eab3d2c 100644 --- a/src/v1/api.rs +++ b/src/v1/api.rs @@ -1,4 +1,4 @@ -use hora::core::ann_index::ANNIndex; +use hora::core::{ann_index::ANNIndex, metrics::Metric::Euclidean}; use std::collections::HashMap; use super::errors::Error; @@ -63,21 +63,19 @@ pub(crate) async fn add_snippet( let Ok(mut appstate) = data.inner.lock() else { return Err(Error::Busy); }; - let Ok(embedding) = appstate.embed.embed(&snippet.desc) else { - return Err(Error::EmbedFailed); - }; + let embedding = appstate + .embed + .embed(&snippet.desc) + .map_err(|_| Error::EmbedFailed)?; let index = appstate .v1 .dict .entry(snippet.lang.clone()) - .or_insert_with(|| { - let dimension = 384; - let params = hora::index::hnsw_params::HNSWParams::::default(); - - HNSWIndex::::new(dimension, ¶ms) - }); - index.add(&embedding, snippet.body.clone()).unwrap(); - index.build(hora::core::metrics::Metric::Euclidean).unwrap(); + .or_insert_with(|| HNSWIndex::::new(384, &Default::default())); + index + .add(&embedding, snippet.body.clone()) + .map_err(|_| Error::EmbedFailed)?; + index.build(Euclidean).map_err(|_| Error::EmbedFailed)?; Ok(format!( "{} {} {}",