Files
upo-app-agents/proposte/Progetto 1 - Corsi.md

3.9 KiB

Progetto di Esame: Agente di Pianificazione Corsi Intelligente

Obiettivo del Progetto

Creare un sistema basato su LLM Agents capace di generare un piano didattico completo e personalizzato per un corso, a partire da input dell'utente. Il sistema dovrà dimostrare capacità di ragionamento , pianificazione adattiva e collaborazione tra agenti per produrre output strutturati e coerenti.


1. Architettura del Sistema

Il sistema è basato su un'architettura a due livelli : una UI per l'input e un sistema multi-agente lato server per l'elaborazione.

  • Interfaccia Utente (UI) : Frontend semplice e intuitivo che raccoglie i parametri del corso.
  • Input obbligatori : Argomento del corso, ore totali, numero di lezioni.
  • Input opzionali : Descrizione aggiuntiva, livello degli studenti (basso, medio, alto), generazione esercizi (toggle), parte pratica (toggle), upload di file (per libri, dispense, ecc.).
  • Motore di Ragionamento (Server) : Core del sistema, dove agenti autonomi collaborano per produrre i materiali didattici.

2. Flusso di Lavoro e Ruolo degli Agenti

Il processo si svolge in una sequenza di passaggi orchestrati dall' Agente Principale .

  • Agente PianificatoreCorso (Orchestratore)

    • Funzione : Riceve tutti gli input dalla UI. È responsabile della coerenza e della coesione del progetto.
    1. Validazione : Valuta la coerenza degli input (es. se le ore totali corrispondono a lezioni * ore_per_lezione).
    2. Ragionamento e Pianificazione : Genera una bozza di piano del corso, suddividendo l'argomento principale in lezioni e argomenti secondari, bilanciando teoria e pratica in base alle richieste.
    3. Orchestrazione Agenti : Delega la creazione dei contenuti specifici (presentazioni, dispense, esercizi) agli agenti specializzati, fornendo loro gli input necessari.
  • Agente GeneratoreContenuti (Collaboratore)

    • Funzione : Crea i documenti testuali per le dispense e le note del relatore per ogni lezione.
    • Input : Argomenti specifici per la lezione, livello degli studenti.
    • Tool : Utilizza un LLM (es. Ollama o API OpenAI) per la generazione di testo dettagliato.
    • Output : Un file .md o .txt per ogni lezione.
  • Agente GeneratorePresentazioni (Collaboratore)

    • Funzione : Realizza le presentazioni .pptx per ogni lezione, basandosi sul contenuto generato e su un tema predefinito.
    • Input : Punti chiave e testo delle slide per ogni argomento, tema grafico.
    • Tool : Combina un LLM per la generazione del testo delle slide con la libreria python-pptx per la creazione del file.
    • Output : Un file .pptx per ogni lezione.
  • Agente GeneratoreEsercizi (Collaboratore, Opzionale)

    • Funzione : Crea esercizi pratici a partire dagli argomenti teorici, in base al livello degli studenti.
    • Input : Argomenti specifici, tipo di corso (pratico/teorico), livello.
    • Tool : Utilizza un LLM per descrivere gli esercizi in formato testuale.
    • Output : Un file di testo con la descrizione degli esercizi per ogni lezione.
  • Agente RicercatoreWeb (Collaboratore, Opzionale)

    • Funzione : Convalida e arricchisce il piano del corso con informazioni aggiornate o conferme sugli argomenti.
    • Input : Argomenti del corso.
    • Tool : Utilizza uno strumento di ricerca web (ad esempio, un'API di ricerca) per trovare riferimenti o dati aggiuntivi.
    • Output : Dati di supporto da passare agli altri agenti.

3. Output Finale

Una volta che tutti gli agenti hanno completato i loro compiti, il programma finale raccoglie i documenti prodotti (.md, .txt, .pptx). L'output sarà una cartella compressa (.zip) che conterrà tutti i materiali, organizzati per lezione (es. Lezione_1_Intro_Python/, Lezione_2_Variabili/). Questa struttura permette all'utente di avere subito un pacchetto pronto all'uso.