diff --git a/Cargo.lock b/Cargo.lock index 88425d1..8e06abb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -164,7 +164,7 @@ checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "based" version = "0.1.0" -source = "git+https://git.hydrar.de/jmarya/based#00bb6f152d758252d62a511705ef35c8aa118168" +source = "git+https://git.hydrar.de/jmarya/based#86dbdcf75df7fb6ce1d9c312ca640b1a4541763c" dependencies = [ "bcrypt", "chrono", diff --git a/src/ai.rs b/src/ai.rs index 7f103ce..44aad7e 100644 --- a/src/ai.rs +++ b/src/ai.rs @@ -1,6 +1,6 @@ use std::collections::VecDeque; -use based::{get_pg, request::api::ToAPI}; +use based::{get_pg, request::api::ToAPI, result::LogNoneAndPass}; use ollama_rs::generation::embeddings::request::{EmbeddingsInput, GenerateEmbeddingsRequest}; use serde::Serialize; use serde_json::json; @@ -47,7 +47,7 @@ impl Embedding for Document { ver.as_ref().unwrap_or(&latest) ); - let content_html = self.render_local(ver).await.unwrap(); + let content_html = self.render_local(ver).await?; let content = html2md::parse_html(&content_html); generate_embedding(content).await } @@ -110,7 +110,16 @@ impl EmbedStore { } pub async fn embed_document(doc: &Document, ver: &str) { - if let Some(embed) = doc.embedding(Some(ver.to_string())).await { + if let Some(embed) = doc + .embedding(Some(ver.to_string())) + .await + .log_warn_none_and_pass(|| { + format!( + "No embeds could be generated for {} / {}", + doc.domain, doc.path + ) + }) + { let _ = sqlx::query( "DELETE FROM doc_embedding WHERE domain = $1 AND path = $2 AND ver = $3", ) @@ -128,12 +137,6 @@ impl EmbedStore { .execute(get_pg!()) .await .unwrap(); - } else { - log::warn!( - "No embeds could be generated for {} / {}", - doc.domain, - doc.path - ); } }