Fix chunk finder
This commit is contained in:
parent
8002962f03
commit
a26c19a80a
|
@ -39,11 +39,29 @@ def parse_output_node(state: EmailGenerationState) -> EmailGenerationState:
|
|||
subject = _validate_subject(subject)
|
||||
body = _validate_body(body)
|
||||
|
||||
ranked_context = state.get("ranked_context")
|
||||
real_chunk_ids = []
|
||||
|
||||
if isinstance(used_chunks, list) and ranked_context:
|
||||
for chunk_idx in used_chunks:
|
||||
try:
|
||||
idx = int(chunk_idx) - 1
|
||||
if 0 <= idx < len(ranked_context.chunks):
|
||||
chunk = ranked_context.chunks[idx]
|
||||
chunk_info = f"{chunk.parent_doc_id}#{chunk.chunk_id}"
|
||||
real_chunk_ids.append(chunk_info)
|
||||
else:
|
||||
real_chunk_ids.append(str(chunk_idx))
|
||||
except (ValueError, TypeError):
|
||||
real_chunk_ids.append(str(chunk_idx))
|
||||
else:
|
||||
real_chunk_ids = []
|
||||
|
||||
email_draft = EmailDraft(
|
||||
subject=subject,
|
||||
body=body,
|
||||
short_reasoning=short_reasoning,
|
||||
used_chunks=used_chunks if isinstance(used_chunks, list) else [],
|
||||
used_chunks=real_chunk_ids,
|
||||
)
|
||||
|
||||
state["email_draft"] = email_draft
|
||||
|
|
|
@ -70,12 +70,7 @@ class RetrievalService:
|
|||
|
||||
text_query = " ".join(search_terms)
|
||||
|
||||
metadata_filters = {}
|
||||
if lead_features.industry_tag != "other":
|
||||
metadata_filters["$or"] = [
|
||||
{"industry": {"$contains": lead_features.industry_tag}},
|
||||
{"roles_relevant": {"$contains": lead_features.role_category}},
|
||||
]
|
||||
metadata_filters = None
|
||||
|
||||
return RetrievalQuery(
|
||||
text_query=text_query,
|
||||
|
@ -155,9 +150,12 @@ class RetrievalService:
|
|||
if chunk.metadata.get("metrics"):
|
||||
metrics = chunk.metadata["metrics"]
|
||||
metrics_parts = []
|
||||
if isinstance(metrics, dict):
|
||||
for key, value in metrics.items():
|
||||
if isinstance(value, (int, float)):
|
||||
metrics_parts.append(f"{key}: {value}")
|
||||
elif isinstance(metrics, str):
|
||||
metrics_parts.append(metrics)
|
||||
if metrics_parts:
|
||||
metrics_info = f" ({', '.join(metrics_parts)})"
|
||||
|
||||
|
|
Loading…
Reference in New Issue