Overview
RAG Chatbot — Prompt supportati
Cosa si puo' chiedere al chatbot <wuic-rag-chatbot> a seconda della pagina in cui ci
si trova, e quali operazioni sa eseguire su ciascuna.
Questa pagina risponde alla domanda dell'utente ("cosa posso chiedergli qui?"); il
catalogo dei tool risponde a quella dello sviluppatore ("quale
kind viene emesso e quali metadata tocca").
I prompt in blockquote sono quelli usati dai test end-to-end: un prompt che compare
qui e' stato verificato dal chatbot reale — prompt, proposta, conferma, effetto sulla
pagina. Se cambia nel test e non qui (o viceversa), il test di parita' fallisce.
Come funziona una richiesta
1. Si scrive la richiesta in linguaggio naturale nel pannello del chatbot.
2. Il modello riceve, insieme al prompt, un riassunto della pagina corrente: e' cio'
che gli permette di capire che "aggiungi la colonna X" significa una cosa diversa su
/pivot-builder e su una lista.
3. Se la richiesta corrisponde a un'operazione eseguibile, compare una card con
Applica. Nulla viene modificato prima del click, e il click chiede conferma.
4. Se la richiesta e' ambigua o si riferisce a qualcosa che non esiste, il chatbot **non
propone**: risponde spiegando, ed elenca i valori reali disponibili.
Pivot builder — <route>/pivot-builder
Costruzione della vista (canvas del View Builder) e configurazione del pivot.
Prompt utente:
> Aggiungi la tabella <route> al view builder e mettine una colonna nelle righe del pivot.
Su questa pagina "tabella", "colonna", "riga" si riferiscono alla vista e al pivot,
mai a tabelle o colonne SQL: chiedere di aggiungere una colonna non crea una colonna sul
database. Se la richiesta e' ambigua il chatbot chiede conferma invece di procedere.
| Operazione | Che cosa fa |
|---|---|
inject | Aggiunge piu' tabelle e i loro join in un colpo solo (es. "unisci ordini e clienti su customer_id") |
add_table / remove_table | Aggiunge o toglie una tabella dal canvas |
join / unjoin | Crea o rimuove un join. Ammesso solo verso una colonna chiave e con tipi compatibili: altrimenti l'operazione viene rifiutata spiegando il motivo |
select_columns | Attiva o disattiva colonne della vista |
add_aggregation / remove_aggregation | SUM, COUNT, COUNT_DISTINCT, AVG, MIN, MAX su una colonna |
set_group_by | Imposta le colonne di raggruppamento |
set_column_formula | Colonna calcolata con una formula |
pivot_set_axis | Popola righe, colonne o valori del pivot |
pivot_remove | Toglie una colonna da un asse |
pivot_set_value_options | Aggregazione ed etichetta di una colonna nei valori |
pivot_set_date_group | Raggruppa un asse per anno, trimestre, mese, settimana, giorno... |
pivot_set_top_rows | Limite di righe dell'anteprima |
Le operazioni sul canvas portano automaticamente in primo piano il tab View Builder,
cosi' la modifica avviene sotto gli occhi dell'utente e non in un tab nascosto.
Restano fuori, di proposito: creare la vista SQL, salvare la configurazione e cancellare.
Sono azioni che l'utente esegue dai pulsanti della pagina.
Impostazioni applicative — /appsettings-editor
Prompt utente:
> Imposta <chiave> a <valore>.
Il chatbot prepara le modifiche: compaiono come "modifiche pendenti" e il salvataggio
resta un click esplicito su Save & Apply. Nel riepilogo viene indicato se una delle
chiavi richiede il riavvio del backend.
| Operazione | Che cosa fa |
|---|---|
set | Prepara una o piu' impostazioni |
reset | Annulla le modifiche pendenti |
Non sono modificabili dall'assistente: stringhe di connessione, password, chiavi API,
licenza, tipo di database. Se le si chiede, il chatbot spiega che vanno impostate a mano
nel campo corrispondente. I loro valori non compaiono mai nel contesto inviato al
modello.
Un valore fuori dall'elenco ammesso viene rifiutato indicando i valori validi; una chiave
inesistente viene rifiutata suggerendo quelle simili.
Report designer — <route>/report-designer
Prompt utente:
> Genera un report tabellare con le colonne principali di questa route.
Viene creato un file nuovo, con nome datato: il report aperto non viene sovrascritto.
A differenza delle altre pagine l'effetto e' immediato sul server, quindi il click su
Applica e' la conferma definitiva.
| Template | Quando usarlo |
|---|---|
bands | Elenco tabellare, con eventuali dettagli annidati |
crosstab | Tabella incrociata (righe × colonna, con aggregazione) |
crossgroup | Raggruppamento con totali |
Aggregazioni ammesse: Sum, Avg, Count, Min, Max. Una colonna inesistente fa rifiutare la
richiesta con l'elenco di quelle disponibili.
Struttura dell'applicazione (scaffolding)
Disponibile ovunque, per chi ha i permessi di amministrazione.
| Operazione | Che cosa fa |
|---|---|
db_table_create | Crea una tabella nuova e la registra nell'applicazione (SQL Server e MySQL) |
metadata_scaffold_table | Importa una tabella che esiste gia' sul database. Ripetibile: serve anche a riallineare una route dopo una modifica allo schema |
metadata_scaffold_view | Importa una vista (route in sola lettura) |
metadata_scaffold_column | Mappa una colonna aggiunta al database fuori dall'applicazione |
menu_entry_move | Sposta o riordina una voce di menu |
Prima di proporre, il chatbot legge la struttura reale del database (connessioni
disponibili, tabelle, colonne) e l'albero del menu: non inventa nomi. Delle connessioni
conosce solo i nomi, mai le stringhe di connessione.
Operazioni che rimuovono
Rimozione di una colonna e di una voce di menu sono irreversibili e trattate a parte:
vanno chieste nominando esplicitamente l'oggetto, e la conferma richiede di **digitarne il
nome esatto**. Una richiesta generica ("fai pulizia", "togli le colonne inutili") non
produce alcuna proposta.
Non e' possibile rimuovere tabelle o route dalla chat.
Designer visuali
Dashboard designer, workflow designer e scena 3D hanno i propri prompt, documentati nel
catalogo dei tool: rispettivamente designer_inject,
workflow_inject e scene3d_inject.
Quando il chatbot non propone
Non e' un errore: e' il comportamento previsto quando
- la richiesta e' ambigua e potrebbe corrispondere a operazioni diverse;
- si cita una colonna, una route o una chiave che non esiste — in quel caso vengono
elencate quelle reali;
- l'operazione richiesta non e' disponibile su quella pagina.
In tutti questi casi il chatbot risponde a parole, senza card Applica.
Riferimenti
- RAG Chatbot — Tool catalog: il
kindemesso da ogni tool, i
campi della proposta e i metadata modificati.
- RAG Chatbot: configurazione del componente e del motore.