File size: 1,466 Bytes
3b7f713
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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",
    }