from langchain_core.tools import tool from rag_pipeline.hybrid_retriever import get_hybrid_retriever @tool def search_technology_trends(query: str, program_name: str = "") -> str: """ Wyszukuje informacje w bazie wiedzy (RAG) na temat trendów technologicznych, wymogów KIS (Krajowych Inteligentnych Specjalizacji) oraz odpowiednich poziomów TRL (Technology Readiness Level) dla projektów badawczych i innowacyjnych. Args: query (str): Pytanie dotyczące wymogów technologicznych, np. "Jakie są wytyczne dla prac B+R w KPO?" program_name (str): Opcjonalnie nazwa programu, np. "FENG Ścieżka SMART". """ retriever = get_hybrid_retriever() search_query = ( f"[Innowacje, KIS, B+R, TRL] Program: {program_name}. Zapytanie: {query}" ) docs = retriever.invoke(search_query) if not docs: return "Nie znaleziono w bazie specyficznych wymogów wpisujących się w to zapytanie o poziomie innowacyjności/B+R." result = "\n".join( [ f"- Zródło: {d.metadata.get('source', 'nieznane')}\n{d.page_content}" for d in docs ] ) return f"Wyniki wyszukiwania dla wymogów technologicznych i B+R:\n{result}"