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(); let has_fragments = !runtime.fragments().is_empty();
if has_fragments { 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 mut fragment_diff = Vec::new();
let old_fields_ids_map = old_fields_ids_map.as_fields_ids_map(); 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(); 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)); fragment_diff.push((name.clone(), diff));
} }
VectorStateDelta::UpdateGeneratedFromFragments(fragment_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 { } else {
tracing::trace!("⏭️ Prompt unmodified, skipping"); tracing::trace!("⏭️ Prompt unmodified, skipping");
VectorStateDelta::NoChange VectorStateDelta::NoChange
} }
}
} else { } else {
VectorStateDelta::NowRemoved VectorStateDelta::NowRemoved
} }