// 00 · start
Trzy komendy do uruchomienia
1
Środowisko Python
cd ai-hub && python3 -m venv venv && source venv/bin/activate
2
Instalacja zależności
pip install -r requirements.txt
3
Start serwera
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
# Aplikacja webowa http://localhost:8000/app → otwórz index.html # Interaktywna dokumentacja API http://localhost:8000/docs → Swagger UI # Status workspace http://localhost:8000/workspace → pełna topologia JSON # Android (przez WiFi) http://192.168.1.XX:8000/app → zmień IP na swój Linux
// 01 · features
Co potrafi AI HUB
Unified Chat
Jeden interfejs do wszystkich 9 modeli. Tryb Wszyscy, Projekt lub Jeden model. Pełna historia per model.
Plener AI
Avatary modeli z dymkami odpowiedzi. 4 layouty: siatka, wolna przestrzeń (drag&drop), okrągły stół, losowy.
Kontrakty
Globalny kontrakt dla wszystkich + per model. Automatycznie wchodzą do każdego kontekstu chatu.
Reguły
Globalne reguły pracy + per projekt. Operator definiuje zasady — AI ich przestrzega w każdej sesji.
Memories
Trzy poziomy: globalny per model, per projekt per model, per chat. Auto-generowanie przez AI. Globalny nie zapycha się automatem.
Projekty & Grupy
Każdy projekt ma własną grupę modeli, sandbox na pliki, memories i reguły. Pełna izolacja kontekstu.
Sandbox
Folder roboczy per projekt. Czytaj, pisz, edytuj pliki przez UI lub API. AI może operować na Twoich plikach.
Panel Operatora
Kontrakty, reguły, guidelines AI Whispers, prywatny schowek (nie wychodzi do AI). Pełna kontrola nad systemem.
Workspace View
Pełna topologia: projekty, modele, klucze, pamięć, kontrakty — wszystko w jednym widoku.
// 02 · models
9 modeli, jeden backend
Wszystkie modele za wyjątkiem Claude i Gemini używają OpenAI-compatible API — łatwe do rozszerzenia o kolejne.
| Model | Provider | Endpoint | Wersja |
|---|---|---|---|
| Claude | Anthropic | native | claude-sonnet-4 |
| GPT-4o | OpenAI | OAI compat | gpt-4o-mini |
| Gemini | native | gemini-2.0-flash | |
| Copilot | GitHub / Microsoft | OAI compat | gpt-4o |
| DeepSeek | DeepSeek AI | OAI compat | deepseek-chat |
| Grok | xAI | OAI compat | grok-3-mini |
| Llama | Meta / via Groq | OAI compat | llama-3.3-70b |
| Mistral | Mistral AI | OAI compat | mistral-small-latest |
| Perplexity | Perplexity AI | OAI compat | sonar |
// 03 · context
Co wchodzi do każdego chatu
Każde zapytanie do AI automatycznie otrzymuje bogaty kontekst zbudowany z kilku warstw — w tej kolejności:
Kontrakt globalny — zasady dla wszystkich modeli
zawsze
↓
Kontrakt per model — indywidualne zasady dla np. Claude
zawsze
↓
Reguły globalne — Twoje reguły pracy z AI
zawsze
↓
Reguły projektu — specyficzne zasady dla aktywnego projektu
jeśli projekt
↓
Guidelines AI Whispers — ściąga operatora
zawsze
↓
Memories — globalna (per model) + projekt + chat
jeśli niepuste
↓
Twoja wiadomość
zapytanie
🔒 Schowek operatora nigdy nie trafia do AI — to tylko Twój prywatny notatnik.
// 04 · workspace
Topologia plików
workspace/
├── keys.json ← klucze API (nie commituj!)
├── groups.json ← grupy modeli per projekt
├── avatars.json ← emoji, nick, status każdego AI
│
├── contracts/
│ ├── global.md ← kontrakt dla wszystkich modeli
│ ├── claude.md ← kontrakt per model
│ └── gpt.md gemini.md …
│
├── rules/
│ ├── global.md ← Twoje globalne reguły
│ └── projects/
│ └── {projekt}.md ← reguły per projekt
│
├── guidelines/
│ ├── aiwhispers.md ← ściąga dla operatorów
│ └── private/
│ └── vault.md ← prywatny schowek (nie do AI)
│
├── memories/
│ ├── global/
│ │ ├── claude.md ← pamięć globalna per model
│ │ └── gpt.md gemini.md …
│ ├── projects/
│ │ └── {projekt}/
│ │ ├── claude.md ← pamięć per model per projekt
│ │ └── gpt.md …
│ └── chats/
│ └── {chat_id}.md ← pamięć per sesja
│
├── sandbox/
│ └── {projekt}/ ← pliki robocze
│
└── chats/
└── {chat_id}__{model}.json ← historia rozmów
// 05 · plener
Plener AI — żywe avatary
Wizualny widok wszystkich modeli jako avatarów z dymkami. Odpowiedzi pojawiają się przy każdym AI w czasie rzeczywistym.
Oto moja odpowiedź…
🟠
Claude
🟢
GPT
myśli… 💭
🔵
Gemini
🟡
Grok
🦙
Llama
🌿
Mistral
Siatka
Klasyczna 3×3. Przejrzyste porównanie odpowiedzi wszystkich modeli naraz.
Wolna przestrzeń
Przeciągaj avatary myszką po ekranie. Twoja własna konfiguracja rozmowy.
Okrągły stół
AI w kręgu, Ty w centrum. Poczucie wspólnej narady z całym zespołem.
Losowy
Losuje jeden z powyższych przy każdym kliknięciu. Dla zabawy.
// 06 · api
Kluczowe endpointy
POST/chatWyślij wiadomość · model: "all" | "group" | "claude" | …
GET/workspacePełna topologia workspace w JSON
GET/modelsLista modeli z metadanymi i kolorami
POST/keysZapisz klucze API na serwerze
GET/projectsLista projektów z grupami modeli
PUT/groups/{project}Ustaw grupę modeli dla projektu
GET/contracts/globalGlobalny kontrakt dla wszystkich AI
PUT/contracts/{model}Kontrakt per model
GET/rules/globalGlobalne reguły operatora
PUT/rules/project/{name}Reguły per projekt
GET/memories/global/{model}Pamięć globalna per model
POST/memories/auto-generateAI generuje notatki z historii chatu
GET/sandboxLista plików w sandbox
POST/sandbox/writeZapisz plik w sandbox
GET/avatarsStan avatarów (emoji, nick, status)
PUT/avatars/{model}Zaktualizuj avatar modelu
POST /chat { "model": "all", "messages": [{ "role": "user", "content": "Twoje pytanie" }], "chat_id": "sesja_001", "project": "mahle" } // Odpowiedź { "models_used": ["claude", "gpt", "gemini", ...], "results": { "claude": { "reply": "..." }, "gpt": { "reply": "..." }, // każdy model równolegle } }
// 07 · stack
Stack technologiczny
FastAPI + Python
Async backend, automatyczna dokumentacja Swagger, pydantic validation. Jeden plik main.py.
Vanilla HTML/JS
Zero frameworków. Jeden plik index.html. Działa jako plik lokalny lub serwowany przez FastAPI.
httpx async
Wszystkie modele wywoływane równolegle przez asyncio.gather. Brak blokowania przy wielu modelach.
File-based storage
Markdown i JSON na dysku. Bez bazy danych. Łatwy backup, grep, edycja ręczna, git.