from schemas import AgentState from core.llm_router import get_llm from tenacity import retry, stop_after_attempt, wait_exponential def verifier_node(state: AgentState): parsed_content = ( state.verification_results.get("pending_doc_text") if state.verification_results else None ) if not parsed_content: return { "verification_results": { "status": "brak_dokumentu", "analysis": "Brak dokumentu dodanego do weryfikacji.", }, "current_agent": "supervisor", } try: llm = get_llm(task_type="critical") @retry( stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10), ) def _invoke_llm(): return llm.invoke( f"System: Jesteś ekspertem oceny formalnej wniosków PARP. Sprawdź spójność danych.\n" f"Porównaj dane z dokumentu: {parsed_content[:15000]}... z profilem firmy: {state.profile.model_dump() if state.profile else 'Brak'}" ) response = _invoke_llm() from core.utils import safe_extract_text analysis_result = safe_extract_text(response.content) except Exception as e: analysis_result = f"Błąd weryfikacji przez model LLM: {str(e)}" return { "verification_results": {"analysis": analysis_result}, "current_agent": "supervisor", }