Old dump import indexer: fix the case where going from Generated to Generated

This commit is contained in:
Louis Dureuil 2025-07-03 09:58:41 +02:00
parent 428463e45c
commit 549dc985b8
No known key found for this signature in database

View file

@ -726,21 +726,6 @@ fn extract_vector_document_diff(
}
let has_fragments = !runtime.fragments().is_empty();
if has_fragments {
let prompt = &runtime.document_template;
// Don't give up if the old prompt was failing
let old_prompt = Some(&prompt).map(|p| {
p.render_kvdeladd(obkv, DelAdd::Deletion, old_fields_ids_map)
.unwrap_or_default()
});
let new_prompt =
prompt.render_kvdeladd(obkv, DelAdd::Addition, new_fields_ids_map)?;
if old_prompt.as_ref() != Some(&new_prompt) {
let old_prompt = old_prompt.unwrap_or_default();
tracing::trace!(
"🚀 Changing prompt from\n{old_prompt}\n===to===\n{new_prompt}"
);
VectorStateDelta::NowGenerated(new_prompt)
} else {
let mut fragment_diff = Vec::new();
let old_fields_ids_map = old_fields_ids_map.as_fields_ids_map();
let new_fields_ids_map = new_fields_ids_map.as_fields_ids_map();
@ -769,11 +754,26 @@ fn extract_vector_document_diff(
fragment_diff.push((name.clone(), diff));
}
VectorStateDelta::UpdateGeneratedFromFragments(fragment_diff)
}
} else {
let prompt = &runtime.document_template;
// Don't give up if the old prompt was failing
let old_prompt = Some(&prompt).map(|p| {
p.render_kvdeladd(obkv, DelAdd::Deletion, old_fields_ids_map)
.unwrap_or_default()
});
let new_prompt =
prompt.render_kvdeladd(obkv, DelAdd::Addition, new_fields_ids_map)?;
if old_prompt.as_ref() != Some(&new_prompt) {
let old_prompt = old_prompt.unwrap_or_default();
tracing::trace!(
"🚀 Changing prompt from\n{old_prompt}\n===to===\n{new_prompt}"
);
VectorStateDelta::NowGenerated(new_prompt)
} else {
tracing::trace!("⏭️ Prompt unmodified, skipping");
VectorStateDelta::NoChange
}
}
} else {
VectorStateDelta::NowRemoved
}