from typing import Dict, Any from langchain_core.messages import AIMessage from core.llm_router import get_llm from schemas import AgentState def document_gap_analyzer_node(state: AgentState) -> Dict[str, Any]: """ Analizuje załączniki i profil, by precyzyjnie wykazać braki we frameworku dotacyjnym Zwraca listę braków, np. brak KPI, brak wskaźników ROI itp. """ llm = get_llm(task_type="standard") # Simple simulation check if state.profile and state.profile.financials: prompt_context = f"Dane finansowe podane: {state.profile.financials}" else: prompt_context = "Brak danych finansowych w systemie." prompt = f""" Jesteś Document Gap Analyzerem. Spójrz na zebrane dane o firmie i odpowiedz czego dokładnie brakuje, aby wniosek dotacyjny zyskał wysokie szanse. Zwróć odpowiedź w liście wypunktowanej. PISZ ZAWSZE I WYŁĄCZNIE W JĘZYKU POLSKIM. Kontekst: {prompt_context} """ response = llm.invoke(prompt) from core.utils import safe_extract_text gap_result = safe_extract_text(response.content) return { "messages": [ AIMessage( content=f"[GAP ANALYZER] Znalazłem następujące braki:\n{gap_result}" ) ], "current_agent": "supervisor", }