Tento dokument slouží jako komplexní technický a procesní přehled celého systému pro automatizované sledování, hodnocení a vizualizaci práce studentů v předmětu Programování pomocí umělé inteligence (AI).
Architektura se skládá ze tří hlavních vrstev: 1. Zdrojová data (GitHub, CSV): Informace o studentech a jejich kód (Git repozitáře). 2. Datové zpracování a AI analýza (Python skripty, Gemini API, OpenClaw): Získání dat, vyhodnocení, generování zpráv. 3. Prezentace a monitoring webový Dashboard (Flask, Nginx, Let's Encrypt): Učitelské rozhraní pro prohlížení výsledků a statistik.
Životní cyklus dat:
- Systém pravidelně kontroluje aktivitu na zadaných projektech studentů.
- Změněné soubory jsou staženy a pomocí promptů odeslány modelu Google Gemini.
- Model Gemini zanalyzuje kód objektivně (splnění podmínek) i subjektivně (logika, přístup).
- Výsledky (Markdown soubory) a statistiky (CSV, JSON) se uloží do strukturovaných adresářů na serveru.
- Flask webová aplikace (app.py) na pozadí renderuje uložené Markdown a JSON soubory, dynamicky
je anonymizuje (kvůli ochraně soukromí s využitím přezdívek) a podává je jako interaktivní HTML web učiteli.
monitor2.pyZodpovědnost: Okamžitý přehled a notifikace o aktivitě studentů.
- Čte CSV soubor adresářů ze zdroje studenti.csv.
- Každý den ráno (přes Cron) zkontroluje přes GitHub API, zda od poslední známé revize dodal uživatel do
větve cokoliv nového.
- Nové hashe závazně ukládá do stavového souboru last_commits.json. Tento soubor využívá Web
dashboard k tomu, aby učitel okamžitě v boxech viděl (Active / Inactive) kdo začal pracovat a kdo se
ještě ani nepohnul.
- Rychle s pomocí AI sumarizuje malé změny a případně vyrozumí email učitele.
main.pyZodpovědnost: Týdenní hloubková revize práce studenta.
- Skript, který vytrhává kontext za celých posledních 7 dnů zpětně (od úterý nad ránem okna až do pondělní
noci).
- Klonuje lokálně obsah repozitáře do /tmp/, sbírá diference změněných kódů.
- Využívá knihovny google-genai k odeslání diference modelu gemini-2.5-flash.
Model dostane přesně definované instrukce jako pedantický asistent učitele a kontroluje u studenta: počet
commitů v týdnu, požadované prodlevy (časový interval) pro zamezení opisování, tvorbu projektové dokumentace
apod.
- Pomocí robustního "Jinja2" templating enginu nahradí vyhodnocené stavy
(individual_report.md.j2, summary_report.md.j2) do fixních složek
/reporty/T-RRRR-MM-DD/.
- Dynamicky reaguje i na nulovou aktivitu tím, že souborům připojí suffix _NEODEVZDANO.md. Ke
každému vygeneruje pro podporu obhajoby práce vedlejší soubor _OTAZKA.md s navrhovaným odborným
dotazem na použitý kód.
app.py, templates/, static/)Zodpovědnost: Grafické uživatelské rozhraní a anonymizace k prezentaci.
- Moderní webová vrstva napsaná nad Flask, nasazená produkčním wsgi enginem
Gunicorn, kterému je předřazen reverzní proxy Nginx s plnohodnotným SSL
certifikátem Let's Encrypt (doména erudios.com).
- Real-Time Anonymizace: Skript na svém backendu bezpečně zachází s repozitářovými .MD
soubory, zachytí jejich plná znění s reálnými jmény a adresami, přičemž těsně před jejich překladem do HTML
na Webu tyto reálie zcenzuruje – přepíše je z databáze na studentské přezdívky nebo alias [SKRYTO].
main.py, monitor2.py) mohou být v takovém rámci
vnímány jako plnohodnotné "dovednosti" (Skills),
což umožní budoucí interaktivní proaktivitu – místo čekání stroje na cron může např. OpenClaw sám
monitorovat změny a zasílat notifikace přímo na mobil učitele formou chat-zprávy bota.crontab)Uživatel virtuálu (agentai) automatizuje sběr nad výše zmíněnými funkcemi v linuxovém plánovači
úloh cron. Tato vrstva odřezává jakoukoliv lidskou závislost z generování zpráv.
Hlavní obslužné spínače v cron tabulce:
1. 10 7 * * * /bin/bash /home/agentai/ai_hodnoceni/run_monitor.sh
- Každý den v 07:10 ráno.
- Dohlédne na refresh monitor2.py pro doplnění malých úkolových změn k zapsání stavové databáze
denního boxu.
2.
1 0 * * 1 cd /home/agentai/ai_hodnoceni/kod && /home/agentai/agent_env/bin/python main.py
- Zlatý hřeb – přesně každé pondělí v 00:01 v noci.
- Zpracuje a upeče masivní celotýdenní kompozit, provede AI volání, uloží ho staticky na disk do finální
podoby, odkud se ho nad ránem ujme vizuál Flasku, plně připravený k výkladu u ranní kávy pro vyučující.
(Služba webovky jako taková nepodléhá plánování – je udržena konstatně v operabilitě systémovým hlídačem Systemd přes lokální démon)