NemoReport AI v2 — Technická dokumentace¶
Interní dokumentace pro vývojový tým, integrátory (Nette aplikace, partneři), investory a interní stakeholdery. Není určená cílovým uživatelům aplikace.
Tato dokumentace popisuje stav k 30.4.2026
Phase A + B + C jsou dokončené a běží v produkci. Phase D (chat s RAG injection) a Phase E (Nette integration) jsou plánované — viz Roadmap.
Co je NemoReport AI v2¶
NemoReport AI v2 je multi-tenant SaaS platforma pro AI-asistované hodnocení nemovitostí. Uživatel nahraje report o nemovitosti (PDF, MHTML z Nette systému, DOCX, obrázky) a aplikace:
- Extrahuje strukturovaný obsah přes OCR (Mistral OCR) a HTML parsing (BeautifulSoup + trafilatura)
- Anotuje obrázky a mapy přes multimodální AI (Gemini-3-Flash) — popisuje co je v technických výkresech, mapách povodňových zón, fotech parcel atd.
- Indexuje obsah do vector databáze (pgvector + Gemini Embedding 2 multimodal) pro sémantické vyhledávání
- Vyhledává relevantní pasáže přes hybridní retrieval (vector + BM25 + Cohere Rerank 4.0) když uživatel klade dotazy
- (Plánované) Bude nabízet AI chat ve kterém AI odpovídá na dotazy o nemovitosti s citacemi konkrétních míst v reportu
Cílem je nahradit pomalé manuální čtení 50-stránkových reportů konverzačním rozhraním které "rozumí" obsahu napříč všemi soubory ve složce (folder model = main report + N příloh).
Klíčové vlastnosti¶
- Multi-tenant — RLS izolace dat per tenant, JWT auth s custom claims
- Folder model — report je container s N přílohami; AI vidí kompletní kontext
- Multimodal embedding — text + obrázky do unified vector space (Gemini-2 GA)
- Hybrid retrieval — vector similarity + BM25 keyword + RRF fusion + Cohere Rerank 4.0
- Czech-first — czech_unaccent text search, CZ prompts pro AI anotace, multilingual reranker
- Async ingestion — taskiq worker + Redis Streams, durable retry, 5-stage pipeline
- Realtime UX — Supabase Realtime pro live status updates během zpracování
- Cost tracking — per-stage cost tracking v halířích, admin cost dashboard
Stack v kostce¶
| Vrstva | Technologie |
|---|---|
| Frontend | Next.js 16 + Tailwind v4 + Supabase SSR (deployed jako CF Worker přes @opennextjs/cloudflare) |
| Backend | FastAPI 0.135 + Pydantic AI + uvicorn (Docker kontejner) |
| Worker | taskiq + Redis Stream broker (Docker kontejner) |
| Databáze | Supabase Postgres 17 + RLS + Realtime + custom JWT hooks |
| Vector | pgvector 0.8 + halfvec(1536) + HNSW + ivfflat fallback |
| Object storage | Supabase Storage (4 buckety) — bytes na Supabase managed infra; v DB jen relativní storage_path |
| Cache / queue | Redis 7 (rate limit + taskiq broker + result backend) |
| Embedding | Google Gemini Embedding 2 (GA, multimodal) |
| OCR | Mistral OCR (mistral-ocr-latest) |
| LLM (anotace + budoucí chat) | Gemini 3 Flash Preview |
| Rerank | Cohere Rerank 4.0 (rerank-v4.0-pro) |
Detail viz Architektura → Komponenty a Závislosti.
Stav vývoje¶
| Fáze | Stav | Co obsahuje |
|---|---|---|
| Phase A | ✅ Hotovo (4/2026) | Multi-tenant Supabase Auth, JWT custom claims, RLS, 12 migrací |
| Phase A.1 | ✅ Hotovo (4/2026) | UI port v1 → v2 (chat, admin, /reports), Vitest scaffold |
| Phase B | ✅ Hotovo (4/2026) | 5-stage ingestion pipeline (PDF/MHTML/DOCX), folder model live |
| Phase C | ✅ Hotovo (4/2026) | Vector RAG: chunks + halfvec(1536) + hybrid retrieval + Cohere rerank |
| Phase D | ⏳ Plánováno | Chat s RAG injection — /chat použije chunks místo full textu |
| Phase E | ⏳ Plánováno | Nette integration — embed chat do Nette aplikace, JWT bridge |
Jak číst dokumentaci¶
Doporučené pořadí pro různé role:
Pro nového vývojáře: 1. Architektura → Přehled 2. Architektura → Komponenty 3. Pipeline (data flow) 4. API endpointy 5. Deployment
Pro integrátora (Nette tým):
1. Architektura → Přehled
2. API endpointy (zejména /reports/{id}/attachments/system)
3. Phase E plán (až bude napsán)
Pro investora / stakeholdera: 1. Tato stránka 2. Phase A, Phase B, Phase C — co bylo postaveno 3. Architektonická rozhodnutí 4. Roadmap
Pro license / production-readiness review: 1. Backend balíčky 2. Frontend balíčky 3. Externí API 4. Bezpečnost
Spuštění dokumentace lokálně¶
# Instalace mkdocs (jednorazově)
uv tool install mkdocs-material
# Spuštění dev serveru s live reload
cd /home/jiri/Nextcloud/vibecode/Nemoreport_v2
mkdocs serve
# Build statické HTML
mkdocs build # výstup do site/
Hosting¶
Dokumentace je statické HTML — možnosti hostingu:
- Cloudflare Pages (doporučeno):
mkdocs build→site/deploy přes wrangler - GitHub Pages: pushnout
site/nagh-pagesbranch - Docker kontejner s nginx: na vlastním Docker hostingu, servíruje
site/
Live URLs¶
| Service | URL | Popis |
|---|---|---|
| Frontend | https://nemoreport-ai-frontend-v2.algaweb.workers.dev | Next.js 16 SSR Worker |
| Backend API | https://nemoreport-ai-backend-v2.sliplane.app | FastAPI |
| Supabase | https://cubdrgjdkatyecrgckwp.supabase.co | Postgres + Auth + Storage + Realtime |
| Worker | (privátní) | taskiq, no public endpoint |
| Redis | (privátní, internal Docker network) | Queue + cache |