Projekt demonstrujący agentów LangChain do zadań SQL, rekomendacji tagów Steam i nadzorcy (supervisor) z obsługą kontekstu RAG oraz narzędzi globalnych.
- Python 3.11+
- Klucze API (OpenAI, DeepSeek, Tavily) w pliku
.env - Dostęp do bazy PostgreSQL z danymi Steam (tabele steamscrapy_*)
- (Opcjonalnie) backend SteamSEO działający lokalnie
python -m venv .venv && source .venv/bin/activate(Windows:.\.venv\Scripts\activate)pip install -r requirements.txt- Uzupełnij
.env(klucze API, DATABASE_URL itp.)
DATABASE_URL=postgresql+psycopg://rag_reader:123abc@localhost:5432/YourDatabase
DEBUG=True
APP_ENV=local
API_PREFIX=/api/v1
TAVILY_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxx
DEEPSEEK_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxx
OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxx
python -m app.main- W CLI wpisuj pytania; zakończ poleceniem
exitlubquit. - W terminalu zobaczysz ślad kroków: [USER], [AGENT], [TOOL], finalną odpowiedź.
app/main.py– buduje modele, narzędzia, agentów i uruchamia pętlę CLIapp/agents/sql_agent.py– agent SQL z walidacją wyników zapytańapp/agents/steam_recommendation.py– narzędzia i klient rekomendacji tagów Steamapp/agents/supervisor_agent.py– nadzorca routujący do agentów SQL/Steamapp/global_tools.py– globalne narzędzia (retrieval, web search)app/core/tracing.py– proste logowanie kroków w CLIreports/– dokumenty PDF do RAGrequirements.txt– zależności
Plik .env powinien zawierać m.in.:
OPENAI_API_KEYDEEPSEEK_KEYTAVILY_API_KEYDATABASE_URL
Ślad w terminalu zapewnia CliTraceHandler:
- [USER] – wejście użytkownika
- [AGENT] – przebieg nadzorcy
- [TOOL] – wywołania narzędzi z krótkim podglądem argumentów
- Finalna odpowiedź zgodna z ostatnim AIMessage
- Agent SQL blokuje DML; zwraca tylko dane odczytu.
- Narzędzia zwracają dane serializowalne (str, dict, list) i walidują typy.
resolve_category_linkdopasowuje linki po slugach (ILIKE) bez potrzeby dokładnego URL.