Document problematic case in test and acknowledge PR comment

This commit is contained in:
vuthanhtung2412 2025-03-26 12:57:25 +01:00
parent 43c8a206b4
commit bf3a29b60d
2 changed files with 9 additions and 3 deletions

View File

@ -212,6 +212,14 @@ async fn user_provide_mismatched_embedding_dimension() {
"finishedAt": "[date]"
}
"#);
// FIXME: /!\ Case where number of embeddings is divisor of `dimensions` would still pass
let new_document = json!([
{"id": 0, "name": "kefir", "_vectors": { "manual": [[0, 0], [1, 1], [2, 2]] }},
]);
let (value, code) = index.add_documents(new_document, None).await;
snapshot!(code, @"202 Accepted");
index.wait_task(response.uid()).await.succeeded();
}
async fn generate_default_user_provided_documents(server: &Server) -> Index {

View File

@ -218,14 +218,12 @@ pub fn write_from_bbqueue(
arroy_writers.get(&embedder_id).expect("requested a missing embedder");
let mut embeddings = Embeddings::new(*dimensions);
let all_embeddings = asvs.read_all_embeddings_into_vec(frame, aligned_embedding);
// FIXME: /!\ Case where number of embeddings is divisor of `dimensions` would still pass
if *dimensions!= 0 && all_embeddings.len() % *dimensions != 0 {
if embeddings.append(all_embeddings.to_vec()).is_err() {
return Err(Error::UserError(UserError::InvalidVectorDimensions {
expected: *dimensions,
found: all_embeddings.len(),
}));
}
embeddings.append(all_embeddings.to_vec()).unwrap();
writer.del_items(wtxn, *dimensions, docid)?;
writer.add_items(wtxn, docid, &embeddings)?;
}