Agentic-RagBot / src /services /agents /nodes /rewrite_query_node.py
Nikhil Pravin Pise
feat: production upgrade β€” agentic RAG, OpenSearch, Redis, Langfuse, Docker, Gradio, Telegram
1e732dd
raw
history blame
1.11 kB
"""
MediGuard AI β€” Rewrite Query Node
Reformulates the user query to improve retrieval recall.
"""
from __future__ import annotations
import logging
from typing import Any
from src.services.agents.prompts import REWRITE_SYSTEM
logger = logging.getLogger(__name__)
def rewrite_query_node(state: dict, *, context: Any) -> dict:
"""Rewrite the original query for better retrieval."""
original = state.get("query", "")
patient_context = state.get("patient_context", "")
user_msg = f"Original query: {original}"
if patient_context:
user_msg += f"\n\nPatient context: {patient_context}"
try:
response = context.llm.invoke(
[
{"role": "system", "content": REWRITE_SYSTEM},
{"role": "user", "content": user_msg},
]
)
rewritten = response.content.strip()
if not rewritten:
rewritten = original
except Exception as exc:
logger.warning("Rewrite LLM failed: %s β€” keeping original query", exc)
rewritten = original
return {"rewritten_query": rewritten}