mirror of
https://github.com/samvallad33/vestige.git
synced 2026-07-20 23:21:01 +02:00
Make fastembed smoke tests tolerate unavailable model
This commit is contained in:
parent
5e18304184
commit
2757010d6d
1 changed files with 40 additions and 4 deletions
|
|
@ -115,6 +115,14 @@ impl EmbedderSend for FastembedEmbedder {
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
#[cfg(feature = "embeddings")]
|
||||||
|
fn is_model_unavailable(err: &EmbedderError) -> bool {
|
||||||
|
let msg = err.to_string();
|
||||||
|
msg.contains("Failed to retrieve")
|
||||||
|
|| msg.contains("model files can be downloaded")
|
||||||
|
|| msg.contains("Failed to initialize nomic-ai/nomic-embed-text-v1.5")
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn embedder_reports_correct_name() {
|
fn embedder_reports_correct_name() {
|
||||||
let e = FastembedEmbedder::new();
|
let e = FastembedEmbedder::new();
|
||||||
|
|
@ -162,7 +170,14 @@ mod tests {
|
||||||
fn embedder_embed_smoke() {
|
fn embedder_embed_smoke() {
|
||||||
let e = FastembedEmbedder::new();
|
let e = FastembedEmbedder::new();
|
||||||
let rt = tokio::runtime::Runtime::new().unwrap();
|
let rt = tokio::runtime::Runtime::new().unwrap();
|
||||||
let vec = rt.block_on(e.embed("hello world")).expect("embed");
|
let vec = match rt.block_on(e.embed("hello world")) {
|
||||||
|
Ok(vec) => vec,
|
||||||
|
Err(err) if is_model_unavailable(&err) => {
|
||||||
|
eprintln!("skipping fastembed smoke; model unavailable: {err}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Err(err) => panic!("embed: {err}"),
|
||||||
|
};
|
||||||
assert_eq!(vec.len(), 256);
|
assert_eq!(vec.len(), 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -172,9 +187,30 @@ mod tests {
|
||||||
let e = FastembedEmbedder::new();
|
let e = FastembedEmbedder::new();
|
||||||
let rt = tokio::runtime::Runtime::new().unwrap();
|
let rt = tokio::runtime::Runtime::new().unwrap();
|
||||||
let texts = ["alpha beta", "gamma delta"];
|
let texts = ["alpha beta", "gamma delta"];
|
||||||
let batch = rt.block_on(e.embed_batch(texts.as_ref())).expect("batch");
|
let batch = match rt.block_on(e.embed_batch(texts.as_ref())) {
|
||||||
let seq_a = rt.block_on(e.embed(texts[0])).expect("seq a");
|
Ok(batch) => batch,
|
||||||
let seq_b = rt.block_on(e.embed(texts[1])).expect("seq b");
|
Err(err) if is_model_unavailable(&err) => {
|
||||||
|
eprintln!("skipping fastembed batch smoke; model unavailable: {err}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Err(err) => panic!("batch: {err}"),
|
||||||
|
};
|
||||||
|
let seq_a = match rt.block_on(e.embed(texts[0])) {
|
||||||
|
Ok(vec) => vec,
|
||||||
|
Err(err) if is_model_unavailable(&err) => {
|
||||||
|
eprintln!("skipping fastembed sequential smoke; model unavailable: {err}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Err(err) => panic!("seq a: {err}"),
|
||||||
|
};
|
||||||
|
let seq_b = match rt.block_on(e.embed(texts[1])) {
|
||||||
|
Ok(vec) => vec,
|
||||||
|
Err(err) if is_model_unavailable(&err) => {
|
||||||
|
eprintln!("skipping fastembed sequential smoke; model unavailable: {err}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Err(err) => panic!("seq b: {err}"),
|
||||||
|
};
|
||||||
assert_eq!(batch[0], seq_a);
|
assert_eq!(batch[0], seq_a);
|
||||||
assert_eq!(batch[1], seq_b);
|
assert_eq!(batch[1], seq_b);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue