Vertix-agent / nodes /answer_generator.py
Naif Alqubalee
Update space
16ab8a2
Raw
History Blame Contribute Delete
831 Bytes
from __future__ import annotations
import json
from langchain_core.language_models.chat_models import BaseChatModel
from langchain_core.messages import HumanMessage, SystemMessage
from graph.state import AgentState
from prompts.templates import ANSWER_PROMPT
def generate_answer(state: AgentState, model: BaseChatModel) -> dict:
evidence = json.dumps(state.get("evidence", []), ensure_ascii=False, indent=2)[:30000]
prompt = ANSWER_PROMPT.format(question=state["question"], evidence=evidence)
try:
response = model.invoke([SystemMessage(content=prompt), HumanMessage(content=state["question"])])
answer = str(response.content).strip()
return {"draft_answer": answer, "error": ""}
except Exception as exc:
return {"draft_answer": "", "error": f"Answer generation failed: {exc}"}