Spaces:
Running
Running
metadata
title: Grantforge Api
emoji: 🏢
colorFrom: blue
colorTo: red
sdk: docker
app_file: app.py
pinned: false
app_port: 7860
Antigravity Dotacje - Architektura i Założenia
Antigravity Dotacje to zaawansowana aplikacja typu SaaS zaprojektowana dla sektora B2B. Służy do automatycznego analizowania szans na uzyskanie dotacji ze środków unijnych oraz generowania wniosków dotacyjnych przy użyciu modeli językowych LLM współpracujących z bazą wektorową RAG (Retrieval-Augmented Generation).
Stos Technologiczny
Frontend (User Interface)
- Framework: React + TypeScript (Vite)
- Nawigacja:
react-router-dom - Zarządzanie Stanem / Autoryzacja: Clerk (
@clerk/clerk-react) użyty jako Identity Provider. - Stylizacja: Czysty CSS / CSS Modules (z elementami designu inspirowanymi trendem Glassmorphism w edycji Enterprise: głębokie kontrasty,
backdrop-filter: blur, zgaszone akcenty gradientowe). - Komponenty interaktywne i animacje:
framer-motion - Wizualizacje/Grafika: Ikony
lucide-react.
Backend (Logic & AI)
- Framework: FastAPI (Python 3.10+) - asynchroniczny z API opartym o Pydantic.
- Baza Konwencjonalna: MongoDB (Motor / PyMongo) do przechowywania profili użytkowników, zapisanych projektów i logów.
- Architektura RAG (Baza Wektorowa): Zintegrowana z silnikami wektorowymi (np. Qdrant lub Pinecone - w zarysie koncepcyjnym LLM przeszukuje embedingi PDF-ów z regulaminami POIR, FENG, ARiMR). W bieżącej fazie demonstracyjnej mechanizmy LLM są zabezpieczone odpowiednimi asercjami i symulowane.
- Obsługa CORS: Skonfigurowana w
main.pypod domenę frontendu (np. Vercel).
Architektura Systemu
System opiera się na wydzielonych blokach modułowych:
- Discovery (Wizard): Rejestrowany użytkownik (przez profil Clerk) rozpoczyna proces od wprowadzenia NIP-u i zarysu planowanej inwestycji R&D / MŚP.
- Matchmaking RAG (AI Analyst): Asystent filtruje aktualne dotacje (SMART, ARiMR, ZUS) oceniając procent "Match" (np. 92% na Ścieżkę SMART).
- Draft Generation (Generowanie Wniosku): Projekt zostaje utworzony w bazie (
/projects). Następnie model AI generuje określone wymagane sekcje (np. "Wpływ DNSH", "Kwalifikacja MŚP"). - Critic Loop (Weryfikacja / Recenzja): Moduł Critic sprawdza gotowy draft pod kątem regulaminów. Zwraca feedback w skali
low/medium/highseverity nakazując poprawę. - Finalisation: Scalenie zaakceptowanych sekcji do postaci dokumentu w formacie Markdown z opcją pobrania do formatu TXT/MD bądź wydruku przez natywny silnik PDF w przeglądarce (
@media print).
Struktura Katalogów
/
├── backend/ # API w Python + FastAPI
│ ├── app/ # Główne pliki backendowe
│ │ ├── main.py # Inicjalizacja App + Endpointy
│ │ ├── models.py # Modele Pydantic
│ │ ├── services.py # Warstwa logiki (symulacje LLM / RAG)
│ ├── requirements.txt
│
├── frontend-react/ # Aplikacja Single Page App (SPA)
│ ├── src/
│ │ ├── api/ # Warstwa transportowa Axios -> FastAPI
│ │ ├── components/ # Moduły wizualne (Dashboard, Modale, Edytor)
│ │ ├── styles/ # Pliki CSS (dashboard.css, globals.css)
│ │ ├── App.tsx # Definicje Routingów Frontendowych
│ ├── package.json
Uruchamianie Lokalne
- Backend:
Skonfiguruj MongoDB URL (np. w
.envjeśli zaimplementowane, domyślnie łączy do klastra z bazy chmurowej/lokalnej).
cd backend
pip install -r requirements.txt
python run.py
# Backend uruchomi się na porcie 8000
- Frontend:
Skonfiguruj zmienną w
.envpowiązaną z instancją CLERK (VITE_CLERK_PUBLISHABLE_KEY).
cd frontend-react
npm install
npm run dev
# Frontend uruchomi się na porcie 5173