TuaGPT

Guida completa a tutte le funzionalità

TuaGPT — Guida

Introduzione

TuaGPT è un client desktop per modelli di linguaggio (LLM) che si connette a server compatibili con l'API OpenAI (Ollama, TuaGate, LM Studio, ecc.). Offre funzionalità avanzate come RAG (Retrieval-Augmented Generation), ricerca web, supporto multimodale e molto altro.

Requisiti

Server e API supportate

TuaGPT è compatibile con:

Interfaccia principale

L'interfaccia è organizzata in diverse aree:

Barra strumenti superiore

Barra di stato inferiore

Mostra in tempo reale: modello caricato, stato connessione server, OCR, RAG, file contestuali, ricerca web. Il pulsante Interrompi appare durante operazioni lunghe per annullarle.

Layout generale

Sotto la barra strumenti e sopra la barra di stato, la finestra principale è organizzata in tre colonne:

La traduzione documenti (modelli ONNX) non è un pannello fisso della finestra principale: si usa dalle funzioni dedicate alla traduzione, come descritto nella sezione Traduzione.

Esempi d'uso (scenari guidati)

Qui trovi percorsi tipici che puoi replicare sul tuo PC. I passi assumono che il server LLM (es. Ollama) sia già in esecuzione e che in Impostazioni l'URL e il modello siano configurati correttamente.

Usare i documenti contestuali in una chat

Porta uno o più file nel contesto della conversazione corrente senza passare dal RAG globale: il modello riceve il testo estratto da quei file insieme al messaggio.

  1. Avvia TuaGPT e attendi che nella barra di stato risulti connesso al server.
  2. Crea una nuova conversazione normale (o seleziona una chat esistente che non sia effimera).
  3. Nel pannello destro, individua l'area File contestuali.
  4. Apri l'Esplora file di Windows e trascina uno o più file supportati (es. PDF, DOCX, TXT, MD) sopra il riquadro File contestuali finché l'area si evidenzia.
  5. Rilascia: i file compaiono nell'elenco del pannello. Se era assente una conversazione idonea, l'app può crearne una automaticamente.
  6. Nell'area messaggio scrivi la richiesta (es. «Riassumi i punti principali del documento allegato»).
  7. Premi Invia. Verifica che non sia in corso uno streaming di un messaggio precedente: durante lo streaming il trascinamento può essere disabilitato.

Suggerimento: per indicizzare grandi archivi e riutilizzarli in più chat, usa il sistema RAG e attiva Abilita contesto RAG nell'area conversazione.

Prima conversazione con il RAG sui propri documenti

Scenario: hai già caricato documenti in RAG Avanzato e vuoi interrogarli dalla chat.

  1. Apri RAG Avanzato, carica ed elabora almeno un documento (embedding configurato, vedi Dashboard ONNX).
  2. Chiudi o riduci la finestra RAG e torna alla finestra principale.
  3. Crea o apri una conversazione e spunta Abilita contesto RAG nell'area messaggi.
  4. Scrivi una domanda pertinente ai contenuti indicizzati e invia.
  5. Opzionale: dal menu sulla riga info della chat, Visualizza consumi token per capire quanto contesto RAG è stato inviato.

Assegnare un prompt a un tasto funzione (e invio rapido)

  1. Apri Gestione Prompt, seleziona o crea un template (non di sistema).
  2. Clicca Assegna FN: il prompt viene collegato al primo slot libero (vedi Tasti funzione).
  3. Nel riquadro Tasti FN, verifica l'etichetta sul pulsante; se serve, tasto destro sul pulsante → Modifica etichetta e posizione… per append, ordine, invio immediato o agente in background.
  4. In una chat, clic sul tasto: in modalità prompt il testo viene inserito nel campo messaggio; con invio immediato attivo parte subito l’inferenza dopo le variabili.

Note chat con allegato portato nel contesto

  1. Nella lista chat, tasto destro sulla conversazione → Aggiungi Note.
  2. Nella finestra note, aggiungi testo formattato e, se serve, un allegato (pulsante o drag-and-drop nell'area allegati).
  3. Tasto destro sull'allegato nell'elenco → Aggiungi al contesto chat: il file viene caricato nei File contestuali della stessa conversazione (se esiste ancora sul disco).
  4. Torna alla chat principale e invia un messaggio che si appoggia a quel file. Dettagli in Note chat.

Etichettare le chat per tema o priorità

  1. Tasto destro sulla lista chat → Gestione etichette…
  2. Crea un'etichetta (nome e colore), es. «Lavoro» o «Urgente», e conferma.
  3. Seleziona una conversazione → tasto destro → Assegna etichetta → scegli l'etichetta creata.
  4. La riga nella lista mostra la tinta colore: così distinguere a colpo d'occhio le chat classificate. Vedi Etichette chat.

Ricerca web dalla chat (con estensione browser)

  1. In Impostazioni abilita i tool per LLM, configura porta e token per l'estensione browser e verifica Test Connessione.
  2. Installa e configura l'estensione con lo stesso token (come da guida estensione).
  3. Nella chat, spunta Abilita ricerca web (e opzionalmente Ricerca profonda).
  4. Usa un modello con function calling e fai una domanda che richiede fonti attuali (es. «Quali sono le ultime novità su…»).

Approfondimento: sezione Ricerca Web.

Esportare una conversazione in PDF o Word

  1. Dalla barra strumenti apri Esporta Chat.
  2. Seleziona una o più conversazioni e il formato desiderato (PDF, DOCX, Markdown, ecc.).
  3. Imposta cartella di destinazione e opzioni (timestamp, metadati, includi note se ti serve).
  4. Conferma l'esportazione e apri il file generato. Vedi Esportazione.

Chat e conversazioni

Creazione conversazioni

Pannello conversazioni (sinistra)

Menu contestuale sulla lista chat

Area conversazione

Menu contestuale chat (label info)

Azioni sui messaggi (ChatDisplayBox)

Se abilitato: thumbs up/down, rigenera risposta, menu con copia selezione, copia tutto, copia su Note Chat.

Formattazione messaggi

La chat supporta Markdown completo, tabelle, grafici ASCII, LaTeX, codice con evidenziazione sintattica, link cliccabili. Configurabile tramite markdown_symbols.json.

Per note dettagliate, tasti funzione ed etichette vedi le sezioni dedicate più sotto.

Tasti funzione (FN)

I tasti FN sono pulsanti nella colonna destra associati a slot persistenti nel database. Ogni slot può lavorare in due filosofie distinte: inserimento prompt nella chat (comportamento in primo piano) oppure agente in background sulla conversazione selezionata.

Gestione degli slot (ciclo di vita “statico”)

  1. Creazione slot — All’avvio l’app garantisce almeno quattro slot vuoti; altri slot compaiono quando assegni più prompt di quanti ne entrano nel riquadro visibile.
  2. Collegamento al prompt — Da Gestione Prompt, Assegna FN lega il template al primo slot libero. I prompt DiSistema non sono usabili né in chat né come agente FN.
  3. Ordine e visibilitàModifica etichetta e posizione… consente di rinominare il pulsante, spostare lo slot (trackbar posizione) e configurare testo aggiuntivo, invio immediato, modalità agente, obiettivo, limiti di turni/timeout.
  4. Scorrimento — Pulsanti ▲/▼ quando i tasti eccedono l’altezza del pannello.
  5. Menu contestuale (tasto destro) — Spunta Invio immediato; voci per Modifica etichetta e posizione…, Assegna/Rimuovi etichetta sul pulsante (colori come le chat), Liberare lo slot, Apri pannello agenti….
  6. Rimozione legameLiberare lo slot toglie prompt e append senza cancellare il template in Gestione Prompt.

Modalità prompt (lato conversazione / “foreground”)

Predefinita quando non è attiva l’opzione agente in background nello slot.

  1. Clic — Con prompt associato: variabili eventuali (dialog + salvataggio workflow per conversazione), poi inserimento nel campo messaggio con formattazione come da Inserisci Prompt.
  2. Testo aggiuntivo — Se presente nello slot, viene appeso dopo il prompt nel campo composizione (stile testo utente).
  3. Solo testo senza prompt — Slot senza PromptTemplateId ma con testo aggiuntivo: il clic inserisce quel testo. Opzione Solo etichetta in chat (solo se compatibile): in chat vedi un’etichetta compatta mentre il messaggio inviato all’API contiene il testo completo.
  4. Invio immediato — Se attivo dal menu, dopo l’inserimento viene chiamato lo stesso flusso del pulsante Invia.

Modalità agente in background (lato compito asincrono)

Attivabile dallo stesso form di personalizzazione dello slot (Esegui come agente in background).

  1. Prerequisiti — Conversazione non effimera selezionata; server LLM connesso; almeno uno tra prompt, testo aggiuntivo o Obiettivo compito.
  2. Conferma utente — Il sistema mostra un riepilogo (modello usato, obiettivo, limiti) prima di accodare o avviare.
  3. Modello — Si usa il modello scelto nella barra strumenti (con le stesse regole del selettore, incluso Auto TGPT).
  4. Costruzione del turno — Viene generato un system prompt combinato con il compito; si allega la cronologia messaggi della chat (fino al limite configurato in API/history) e un messaggio utente sintetico che chiede di eseguire il compito in italiano.
  5. Tool e RAG — Il job rispetta il contesto tool della conversazione (documenti RAG consentiti, condivisione ibrida se attiva), come un normale invio.
  6. Output — La risposta viene scritta nella chat come messaggio assistente tramite streaming dedicato, senza bloccare la UI principale per altre chat.
  7. Un job attivo per conversazione — Non può girare più di un agente alla volta sulla stessa chat: i clic successivi vanno in coda ed escono in ordine.
  8. Turni e timeout — Parametro turni massimi (modello + tool) configurabile per slot; timeout opzionale in minuti (0 = disattivato).
  9. Soft-lock — Con agente attivo, su quella conversazione sono bloccate alcune azioni (nuovo messaggio utente, RAG, file contestuali, eliminazione chat, ecc.) fino a termine o annullamento.
  10. Segnalazioni — Contatore sul pulsante FN se ci sono compiti attivi per quello slot sulla chat corrente; segmento rosso sotto il titolo nella lista conversazioni; notifiche a fine compito se configurate.
  11. Terminazione — Stati possibili: completato, errore, annullato dall’utente, timeout. Storico consultabile dalla Dashboard agenti.

Dashboard agenti (monitoraggio)

Apribile da menu contestuale lista chat (Apri pannello agenti…) o da menu contestuale di un tasto FN. Finestra non modale con:

Planner e calendario interno

Il planner è un agenda leggera integrata in TuaGPT: salva eventi e task nel database locale (PlannerItems), indipendente dal server LLM. Puoi usarla dall’interfaccia grafica oppure lasciare che sia il modello, tramite tool, a consultarla o modificarla in chat.

Apertura e layout (vista umana)

Ciclo di vita lato interfaccia (CRUD manuale)

  1. Nuovo — Apre l’editor su un task preimpostato per il giorno selezionato; titolo obbligatorio, note, orari o flag “tutto il giorno”, stato per i task.
  2. Modifica — Con una riga selezionata nella griglia giornaliera (oppure doppio clic), riapri l’editor sull’elemento esistente.
  3. Elimina — Rimuove l’elemento selezionato dopo conferma.
  4. TipiEvento (intervallo o giornata intera, può essere “occupato” o libero per il calcolo slot) e Task (stati: da fare, completato, annullato; durata stimata opzionale).
  5. Doppio clic sul giorno nel calendario — Se esiste almeno un elemento quel giorno, apre direttamente il primo in modifica.

Ciclo di vita lato LLM (tool planner_*)

Se in Impostazioni → Tool LLM abiliti Tool planner (calendario e task interni) e il modello supporta le function call, l’LLM riceve funzioni dedicate. Il prompt di sistema Planner.prompt spiega al modello quando usarle (date in ISO 8601, non inventare slot).

Coerenza: ogni operazione via tool scrive/legge le stesse tabelle usate dal pannello Planner: ciò che crei in chat compare nel calendario e viceversa.

Abilitazione e licenza

Il pulsante Planner in barra segue le regole di licenza dell’applicazione (come gli altri moduli avanzati). Senza tool abilitati il modello non riceve le definizioni planner_* anche se il database contiene dati.

Note chat

Le note sono un blocco di annotazioni per conversazione, separato dal flusso dei messaggi inviati al modello: servono per appunti, checklist, materiale di riferimento e file allegati collegati a quella chat.

Come si aprono e si salvano

Contenuto e allegati

Integrazione con i messaggi

Esportazione

Nell’esportazione conversazioni puoi includere le note associate al formato scelto, così backup e documentazione restano allineati al contenuto della chat.

Etichette chat

Le etichette sono categorie visive (nome + colore) che puoi applicare a ogni conversazione per evidenziarla e classificarla nella lista a sinistra. Sono distinte dai gruppi (tag di raggruppamento già presenti in TuaGPT): gruppi e etichette possono convivere e rispondono a esigenze diverse (organizzazione per progetto vs. marcatura rapida per tipo di lavoro).

Gestione delle etichette

Assegnazione alla conversazione

Quando usarle

Utile per segnare ad esempio «Lavoro», «Studio», «Urgente», «Da rivedere» o clienti/progetti, così a colpo d’occhio distingui le chat senza dover rileggere i titoli.

Sistema RAG (Retrieval-Augmented Generation)

Il RAG permette di indicizzare documenti e immagini per arricchire le risposte dell'LLM con contenuti pertinenti. Il flusso è: File → DocumentProcessor → Chunking → Embeddings → SQLite → Ricerca Semantica.

Formati supportati

Operazioni principali

Parametri configurabili

OCR per immagini

Le immagini vengono processate con OCR (Tesseract). Lingue: italiano + inglese. Soglia confidenza configurabile. Il modello di embedding è necessario per la ricerca semantica: configuralo dalla Dashboard ONNX.

Ricerca semantica

Campo di test per verificare la ricerca sui documenti indicizzati prima di usarla in chat. Il sistema combina similarità densa (embedding) e BM25 su indice testuale; con query a più parole (es. nome e cognome) i termini vengono richiesti tutti nello stesso chunk per ridurre risultati fuorvianti. Mostra chunk trovati con nome file, punteggi e anteprima testo.

PDF e tabelle: l’estrazione testo usa l’ordine spaziale dei token sul foglio (utile per graduatorie a colonne). Dopo aggiornamenti del motore di indicizzazione conviene rielaborare i documenti già caricati così chunk e indice FTS si rigenerano.

Database e archiviazione

I dati sono salvati in TuaGPT_Data.db (SQLite). Il database supporta fino a ~1.000.000 file. Ottimizzazioni automatiche: VACUUM, ANALYZE, indici.

Ricerca Web

Quando attivata, l'LLM può richiedere ricerche su internet tramite un tool (web_search). Richiede un modello che supporti i function call (Llama, Mistral, GPT, Claude, ecc.).

Configurazione

Estensione browser

L'estensione comunica con TuaGPT tramite polling: TuaGPT accoda job (navigate, search, extract), l'estensione li preleva ogni 2 secondi da GET http://localhost:8765/browser/jobs, li esegue nel browser e invia i risultati con POST http://localhost:8765/browser/result. Porta default: 8765. Token di autenticazione obbligatorio (header Bearer).

Configurazione estensione: Impostazioni → Tool LLM → Estensione Browser. Usa "Copia" per il token e incollalo nel popup dell'estensione. "Test Connessione" verifica il server; "Test Navigazione" esegue un test end-to-end.

L'estensione ha priorità sul fallback DuckDuckGo/API: se non risponde, TuaGPT usa metodi alternativi.

Contenuti multimodali

TuaGPT supporta l'invio di immagini insieme al testo quando si usa un modello vision (es. LLaVA, llama3.2-vision). Le immagini vengono convertite in base64 e inviate nel formato richiesto dall'API (Ollama, LM Studio).

Modelli vision supportati

Formati immagine

jpg, png, gif, bmp, webp

Utilizzo

File contestuali

Documenti e immagini possono essere trascinati sul pannello "File Contestuali" per aggiungerli al contesto della chat corrente. Formati supportati: txt, pdf, docx, odt, xlsx, md, csv. Se non c'è conversazione attiva o è effimera, viene creata automaticamente una nuova conversazione per i documenti. Feedback visivo (evidenziazione area) durante il trascinamento. Il drop è bloccato durante lo streaming.

Gestione Prompt e template

Creazione e gestione di prompt riutilizzabili con variabili. Il Prompt Wizard guida nella definizione di template strutturati.

Prompt Wizard – campi

Collegamento ai tasti funzione

Dopo aver creato o selezionato un prompt, il pulsante Assegna FN lo collega al primo slot libero dei tasti funzione. Per compiti lunghi senza occupare il campo messaggio valuta la modalità agente in background descritta nella stessa sezione.

Prompt di sistema predefiniti

Cartella SystemPrompt/ con prompt per: Analisi e ricerca (AnalistaDecisionale, AnalistaDocumenti, RicercatoreTematico), Personale e apprendimento (CoachProduttivita, PreparatoreEsami, TutorSocratico), Professionale e business (AssistenteHR, AssistenteRiunioni, ConsulenteStartup), Scrittura e contenuti (CopywriterMarketing, RevisoreTesti, TraduttoreTecnico), Specialistici (AssistenteLegale, AssistenteMedicoSanitario, ConsulenteFiscale), Sviluppo e tecnico (DocumentatoreTecnico, PairProgrammer, RevisoreCodice), oltre a RAG, WebSearch, QueryBoost, ChatSystemPrompt.

Sistema di condivisione

Condivisione on-demand di documenti RAG e conversazioni tramite TuaGate. I vettori restano nel database locale del proprietario; TuaGate memorizza solo metadata; solo i risultati delle ricerche vengono trasmessi.

Flusso operativo

  1. Client A registra risorse su TuaGate (con callback_url)
  2. Client B esegue query → TuaGate invia a Client A
  3. Client A cerca localmente e restituisce risultati
  4. TuaGate aggrega e restituisce a Client B

Interfaccia Gestione Condivisione

Configurazione

Esportazione conversazioni

Seleziona una o più conversazioni (anche archiviate) e il formato. Destinazione: cartella configurabile (default: Desktop\TuaGPT_Export).

Formati disponibili:

Opzioni: Includi timestamp, metadati (modello, data), formattazione messaggi, note associate.

Impostazioni

Per una spiegazione scheda per scheda della finestra Impostazioni (significato delle opzioni, scopo e consigli pratici) apri la pagina dedicata: Guida dettagliata alle Impostazioni.

Server e connessione

Parametri LLM

Database e sicurezza

Interfaccia chat

Tool e estensione browser

Log

Formattazione avanzata della chat

La chat supporta Markdown, tabelle, grafici ASCII, LaTeX, codice con evidenziazione sintattica. Configurazione tramite markdown_symbols.json. L’anteprima messaggi usa ChatDisplayBox (icone azioni sui messaggi, copia codice, ecc.).

Pattern Markdown supportati

Tabelle

Formato markdown: | Col1 | Col2 | con riga separator |---|. Renderizzate con caratteri box-drawing Unicode.

Grafici ASCII

Dashboard ONNX

Gestione modelli ONNX per funzionalità locali (nessuna connessione internet richiesta).

I modelli possono essere scaricati dalla dashboard. Configura il modello di embedding per il RAG.

Traduzione documenti

Pannello "Traduzione Documenti" per tradurre messaggi o documenti con modelli ONNX locali. Seleziona lingua sorgente e destinazione (EN↔IT), tipo di azione, e avvia. La traduzione avviene offline.

Gestione Archivio

Le chat archiviate non appaiono nella lista principale ma restano nel database. Apri "Gestione Archivio" per visualizzarle, ripristinarle o eliminarle definitivamente.