Agente AI locale basato su FastAPI e interfaccia Angular. Offre chat con modelli Ollama, ricerca file, metriche di sistema e RAG di base, utilizzabile sia da console sia via UI web.
- Python 3.10+ (consigliato 3.12)
- Node.js 18+ per la UI Angular
- Ollama in esecuzione con i modelli definiti in
config.py - Accesso ai percorsi definiti in
config.py/data/config.json(opzionale)
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.pyEffetti:
- API FastAPI su
http://127.0.0.1:8000 - Console interattiva nel terminale corrente (comandi: testo libero;
/files <q>ricerca file;/systemmetriche;/rag <q>ricerca semantica;exitesce).
Compila .env (parti da .env.example) per token e credenziali:
TELEGRAM_TOKEN=
WHATSAPP_TOKEN=
GMAIL_USER=
GMAIL_PASSWORD=
NOTION_TOKEN=
NOTION_DB_ID=
utils/config_manager carica .env e data/config.json; i servizi leggono i token da lì.
Con il server avviato:
python cli_client.pyDialoga con POST /chat e termina con exit.
- UI:
http://127.0.0.1:8000/docs - JSON:
http://127.0.0.1:8000/openapi.json
GET /healthGET /modelsPOST /chat—{ "message": "...", "model": "llama3.1", "temperature": 0.7 }POST /search/files—{ "query": "nome" }POST /search/rag—{ "query": "testo" }GET /memory/DELETE /memoryGET /system
cd angular_ui
npm install
npm startL’app si connette al backend su http://127.0.0.1:8000 e offre selezione modello, chat e pulizia cronologia.
| Comando | Descrizione | Parametri |
|---|---|---|
/news <tema> |
Cerca e sintetizza notizie recenti sul tema indicato. | <tema>: testo libero (es. “tecnologia AI”). |
I comandi sono memorizzati in data/commands.db e accessibili via GET /commands.
main.py— avvio API e consoleapi/app.py— FastAPI con chat, search, memoria, sistemacore/— orchestratore agenteservice/— servizi (ollama, memoria, file, sistema, news, scheduler, notifiche)rag/— ricerca semantica con Chroma (opzionale)angular_ui/— interfaccia webcli_client.py— client da terminale che usa l’APIDocumentazione/— guide d’uso
- La vector memory Chroma viene disattivata se la configurazione locale non è compatibile; per abilitarla vedi
memory/memory_manager.py. - Configurazioni personalizzate possono essere poste in
data/config.json(sovrascriveconfig.py).