Nei precedenti articoli abbiamo visto come funziona il Retrieval Augmented Generation (RAG) nel nostro laboratorio AI basato su Kubernetes.
In questo articolo vedremo come configurare OpenWebUI per permettere al modello di generare allenamenti di nuoto realistici utilizzando una knowledge base costruita con allenamenti reali.
Obiettivo: trasformare OpenWebUI in un assistente di coaching basato su AI.
Architettura del sistema
Il flusso di lavoro creato è il seguente:
Quando l’utente chiede di generare un allenamento:
- OpenWebUI interroga la knowledge base
- Qdrant restituisce i documenti più simili
- Il modello LLM utilizza quei documenti come contesto
- Viene generata una nuova seduta di allenamento
Preparazione della Knowledge Base
Il primo passo consiste nel caricare nella piattaforma gli allenamenti reali; nel nostro caso la libreria contiene diverse sedute organizzate per settimana:
Ogni documento contiene una seduta completa con la seguente struttura:
Questi documenti costituiscono il corpus di conoscenza che il sistema utilizzerà per generare nuovi allenamenti.
Caricare i documenti nella sezione Knowledge
Dall’interfaccia di OpenWebUI:
- Aprire il menu laterale
- Selezionare Workspace
- Entrare nella sezione Knowledge
- Creare una nuova knowledge base
Nel mio lab dove le sessioni di allenamento sono specifiche per il nuoto la libreria è stata nominata swim_training_library.
Una volta creata la knowledge base è possibile caricare i documenti:
Durante l’upload OpenWebUI esegue automaticamente:
- creazione degli embeddings
- indicizzazione nel vector database Qdrant
In questo modo i documenti diventano interrogabili tramite ricerca semantica.
Creare un Prompt Skill
Una volta caricata la libreria è utile creare uno skill dedicato alla generazione degli allenamenti.
Gli Skills permettono di definire prompt riutilizzabili che guidano il comportamento del modello.
Nel nostro caso creiamo uno skill chiamato:
All’interno dello skill possiamo inserire un prompt come il seguente.
Questo prompt permette di stabilizzare il comportamento del modello.
Collegare la Knowledge allo Skill
Durante la configurazione dello skill è possibile specificare la knowledge base da utilizzare.
Nel nostro caso selezioniamo:
In questo modo ogni volta che lo skill viene utilizzato:
- OpenWebUI esegue una ricerca nella knowledge base
- i documenti più rilevanti vengono passati al modello
Questo è il cuore del RAG workflow.
Utilizzo dei Tools
OpenWebUI permette anche di aggiungere Tools.
I tools sono funzioni che il modello può richiamare per eseguire operazioni esterne.
Nel laboratorio verranno utilizzati per:
- generare allenamenti
- convertire gli allenamenti in formato Garmin
- esportare i workout
Ad esempio nel prossimo step verrà aggiunto un tool Python per generare file di tipo .tcx compatibili con Garmin Connect.
Creare una Workspace dedicata
Per organizzare il lavoro è utile creare un workspac dedicato.
Ad esempio: AI Swim Coach
All’interno della workspace possiamo raccogliere:
- la knowledge base degli allenamenti
- gli skills di generazione
- i tools di esportazione
Così facendo possiamo trasformare OpenWebUI in un vero ambiente di coaching AI.
Test del sistema
Una volta completata la configurazione possiamo testare il sistema.
Ad esempio con una richiesta come:
Il sistema recupererà i documenti più rilevanti dalla libreria e produrrà un nuovo allenamento coerente con gli esempi reali.
NB: Il file coach_training_rules.txt è quello che spiega al modello come ragiona l’allenatore. Non contiene allenamenti, ma le regole del metodo
- come sono strutturate le sedute
- cosa significano le zone
- quali esercizi sono ammessi
- che stile deve avere l’allenamento