ai-station/PROMPT_V2.md

29 lines
2.3 KiB
Markdown
Raw Permalink Normal View History

2025-12-25 14:54:33 +00:00
AI-STATION: Specifica Tecnica Implementativa (Target Stack: Chainlit)
1. Obiettivo
Sviluppare un'applicazione web Dockerizzata ("AI Station") che funga da hub multi-utente per l'IA. L'app deve presentarsi come una Chat Interface avanzata (stile ChatGPT/Claude) con capacità "Artifacts" (visualizzazione elementi a lato) e RAG.
Frontend/UI: Chainlit (Python). Interfaccia Chat + Elements.
Backend Logic: FastAPI (embedded in Chainlit o separate).
Auth: oauth2-proxy in Docker che inietta header X-Email e X-User-Role.
Vector DB: Qdrant (per RAG).
Database: PostgreSQL (per memorizzare le chat history e le preferenze).
AI Engine: Connessione remota a Ollama (http://192.168.1.243:11434).
3. Architettura dei Profili (Routing)
L'applicazione deve leggere l'header X-Email in entrata.
Mapping: Definire un dizionario Python che mappa email -> Ruolo -> Workspace.
Ruoli: business, engineering, architecture, admin.
4. UI Design (Chat + Canvas)
Layout Standard: Chat principale a sinistra.
Canvas (Elements): Quando l'AI genera codice, grafici (Plotly) o tabelle complesse, usarli come "Elements" espandibili in Chainlit, non come semplice testo markdown.
Nascondere il codice: Per i ruoli business e architecture, il codice python/logica di backend NON deve essere visibile in chat, solo l'output finale.
5. Funzionalità Specifiche per Ruolo
Smart Business (Moglie): Chat semplice. Bottone "Upload PDF" (che va in RAG su Qdrant collection 'contabilita').
Engineering (Figlio): Chat + Visualizzatore Dati. Supporto Python code execution sandboxed (se possibile, o solo spiegazione).
Profilo "Architecture" (Figlia - Studente): Chat Visuale. Focus su storia dell'arte, normative edilizie, RAG su manuali di architettura, generazione idee
Power User (Tu): Accesso a cl.Command per debug, possibilità di vedere i prompt di sistema.
Implementare un semplice sistema di RAG usando LangChain o LlamaIndex integrato in Chainlit.
Perché questo prompt funzionerà meglio:
Definisce la tecnologia: Dice esplicitamente "Usa Chainlit". Aider sa perfettamente come strutturare un progetto Chainlit (file .chainlit/config, cartella .chainlit/data).
Definisce il layout: Richiede elementi nativi di Chainlit (cl.Text, cl.Plotly, cl.File), che corrispondono alla tua idea di "Canvas".
Risolvi l'Auth: Chiede di gestire l'header X-Email, che è standard nelle app Chainlit dietro Proxy.