Add project proposals for intelligent course planning, crypto analysis, and travel planning agents; update requirements with new libraries and recommendations

This commit is contained in:
2025-09-04 12:01:35 +02:00
parent a88b2bdd60
commit 35b4067ecd
5 changed files with 227 additions and 17 deletions

View File

@@ -0,0 +1,60 @@
### **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.

View File

@@ -0,0 +1,46 @@
### **Progetto di Esame: Agente di Analisi e Consulenza Crypto/Scommesse**
#### **Obiettivo**
Creare un sistema di consulenza basato su **LLM Agents** che analizza dati di mercato in tempo reale per fornire raccomandazioni strategiche e motivate su criptovalute o scommesse sportive. L'obiettivo è dimostrare la capacità dell'agente di interpretare dati complessi, ragionare su di essi e presentare un'analisi comprensibile e razionale.
---
#### **1. Input Utente e Analisi Preliminare**
L'utente fornisce una richiesta di analisi che include:
* **Tipo di analisi:** Criptovalute o scommesse sportive.
* **Dettagli specifici:** Nome della criptovaluta (es. "Ethereum") o nome dell'evento sportivo (es. "Partita di calcio Juventus vs. Inter").
* **Fattori da considerare:** Intervallo di tempo (es. "prossime 24 ore"), infortuni, condizioni meteo.
* **Stile di approccio:** Stile di investimento (aggressivo, conservativo) o tipo di scommessa.
L'**Agente Orchestratore** riceve queste informazioni e le prepara per gli agenti successivi.
---
#### **2. Processo di Analisi e Acquisizione Dati**
Questo processo si basa sulla collaborazione di più agenti specializzati, in linea con l'approccio dei modelli di ragionamento.
* **Agente RicercatoreDati:** Recupera dati di trading da API di exchange (es. Binance) per le criptovalute, o da database di statistiche sportive per le scommesse.
* **Agente AnalistaSentiment:** Esegue l'analisi di news e post su forum e social media per valutare il sentiment del mercato o del pubblico, individuando trend ed emozioni che possono influenzare l'andamento.
* **Agente MotorePredittivo:** Combina i dati numerici e le analisi di sentiment per generare previsioni e strategie plausibili, come un **modello di ragionamento trasparente** .
---
#### **3. Valutazione e Selezione Strategica**
L'**Agente Orchestratore** valuta le previsioni generate e, in base al suo ragionamento, seleziona le strategie più appropriate per l'utente.
* **Valutazione Logica:** Analizza i dati raccolti, come volumi di scambio o statistiche di gioco.
* **Analisi Integrata:** Scarta o modifica le strategie se i dati del sentiment o altri fattori esterni lo rendono necessario. Ad esempio, potrebbe consigliare di non puntare su una squadra anche se le statistiche sono a suo favore, a causa di un report di infortunio.
---
#### **4. Presentazione dei Risultati**
Infine, il sistema presenta all'utente le raccomandazioni strategiche.
* **Consulenza Dettagliata:** Ogni proposta include un riassunto della strategia, le ragioni che la supportano e i dati presi in considerazione.
* **Ragionamenti (Note):** Vengono aggiunte note esplicative che descrivono il processo decisionale degli agenti, dimostrando il "perché" di una certa scelta. Ad esempio: "Questa strategia è consigliata perché l'analisi del sentiment indica un forte interesse nella criptovaluta X, nonostante un recente calo di prezzo."

View File

@@ -1,14 +1,15 @@
Assolutamente. Ecco il piano di lavoro completo per il tuo progetto di esame, formattato come documento interno per una consultazione più semplice.
---
### **Progetto di Esame: Agente di Pianificazione Viaggi Intelligente** ### **Progetto di Esame: Agente di Pianificazione Viaggi Intelligente**
#### **Obiettivo** #### **Obiettivo**
Creare un sistema di pianificazione viaggi basato su **LLM Agents** che genera itinerari personalizzati e adattivi in base a vincoli e informazioni in tempo reale. L'obiettivo è dimostrare la capacità del sistema di ragionare, adattarsi a eventi esterni e comunicare in modo intelligente. Creare un sistema di pianificazione viaggi basato su **LLM Agents** che genera itinerari personalizzati e adattivi in base a vincoli e informazioni in tempo reale. L'obiettivo è dimostrare la capacità del sistema di ragionare, adattarsi a eventi esterni e comunicare in modo intelligente.
--- ---
#### **1. Input Utente e Analisi Preliminare** #### **1. Input Utente e Analisi Preliminare**
L'utente interagisce con una semplice interfaccia, fornendo una richiesta di viaggio che include: L'utente interagisce con una semplice interfaccia, fornendo una richiesta di viaggio che include:
* **Vincoli finanziari:** Budget massimo. * **Vincoli finanziari:** Budget massimo.
* **Preferenze di viaggio:** Tipologia di vacanza (es. mare, montagna, città) e mezzo di trasporto preferito (es. treno, aereo). * **Preferenze di viaggio:** Tipologia di vacanza (es. mare, montagna, città) e mezzo di trasporto preferito (es. treno, aereo).
* **Tempistiche:** Date di viaggio e durata. * **Tempistiche:** Date di viaggio e durata.
@@ -16,22 +17,31 @@ L'utente interagisce con una semplice interfaccia, fornendo una richiesta di via
L'**Agente di Comunicazione** riceve queste informazioni e, usando un **LLM**, le interpreta e le formatta per gli agenti successivi. L'**Agente di Comunicazione** riceve queste informazioni e, usando un **LLM**, le interpreta e le formatta per gli agenti successivi.
--- ---
#### **2. Processo di Pianificazione e Acquisizione Dati** #### **2. Processo di Pianificazione e Acquisizione Dati**
Questo processo si basa sulla collaborazione di più agenti specializzati, in linea con l'approccio dei modelli di ragionamento. Questo processo si basa sulla collaborazione di più agenti specializzati, in linea con l'approccio dei modelli di ragionamento.
* **Agente Pianificatore:** Sulla base della richiesta iniziale, questo agente genera internamente una serie di **idee di viaggio** iniziali. * **Agente Pianificatore:** Sulla base della richiesta iniziale, questo agente genera internamente una serie di **idee di viaggio** iniziali.
* **Agente Meteo:** Per ogni destinazione, richiede le previsioni del tempo tramite un'API REST, come quella di `open-meteo.com`. * **Agente Meteo:** Per ogni destinazione, richiede le previsioni del tempo tramite un'API REST, come quella di `open-meteo.com` e `openstreetmap.org`.
* **Agente Notizie:** Interroga un'API di notizie (`newsapi.com`) per rilevare eventuali eventi imprevisti o avvisi importanti per le località considerate. * **Agente Notizie:** Interroga un'API di notizie (`newsapi.com`) per rilevare eventuali eventi imprevisti o avvisi importanti per le località considerate.
* **Agente Ricerca:** Per ogni idea di viaggio, raccoglie informazioni essenziali sui **punti di interesse**, sfruttando un database statico o un'API semplificata, come suggerito nelle linee guida del progetto. * **Agente Ricerca:** Per ogni idea di viaggio, raccoglie informazioni essenziali sui **punti di interesse**, sfruttando un database statico o un'API semplificata, come suggerito nelle linee guida del progetto.
* **Agente Logistico:** Ottiene dati simulati su opzioni di viaggio (voli, treni) e costi per ciascuna destinazione. * **Agente Logistico:** Ottiene dati simulati su opzioni di viaggio (voli, treni) e costi per ciascuna destinazione o da una API esterna (`serpapi.com/google-flights-api`)
--- ---
#### **3. Valutazione e Selezione Adattiva** #### **3. Valutazione e Selezione Adattiva**
L'**Agente Pianificatore** valuta le idee di viaggio in base alle informazioni raccolte dagli altri agenti. L'**Agente Pianificatore** valuta le idee di viaggio in base alle informazioni raccolte dagli altri agenti.
* **Valutazione Logica:** Analizza il budget e la compatibilità dei mezzi di trasporto. * **Valutazione Logica:** Analizza il budget e la compatibilità dei mezzi di trasporto.
* **Adattabilità:** Scarta o modifica le proposte se le condizioni esterne lo rendono necessario. Ad esempio, non proporrà un viaggio al mare se sono previste forti piogge, o cambierà l'ordine delle tappe in base a notizie rilevanti. * **Adattabilità:** Scarta o modifica le proposte se le condizioni esterne lo rendono necessario. Ad esempio, non proporrà un viaggio al mare se sono previste forti piogge, o cambierà l'ordine delle tappe in base a notizie rilevanti.
--- ---
#### **4. Presentazione dei Risultati** #### **4. Presentazione dei Risultati**
Infine, il sistema presenta all'utente un massimo di tre proposte di viaggio. Infine, il sistema presenta all'utente un massimo di tre proposte di viaggio.
* **Itinerari Dettagliati:** Ogni proposta include un riepilogo del viaggio, le tappe suggerite e i costi stimati. * **Itinerari Dettagliati:** Ogni proposta include un riepilogo del viaggio, le tappe suggerite e i costi stimati.
* **Ragionamenti (Note):** Vengono aggiunte note esplicative che descrivono il processo decisionale degli agenti, dimostrando il "perché" della scelta fatta. Ad esempio, "Abbiamo evitato la città A perché le notizie riportano un evento di traffico locale". * **Ragionamenti (Note):** Vengono aggiunte note esplicative che descrivono il processo decisionale degli agenti, dimostrando il "perché" della scelta fatta. Ad esempio, "Abbiamo evitato la città A perché le notizie riportano un evento di traffico locale".

82
proposte/Riassunto.md Normal file
View File

@@ -0,0 +1,82 @@
### **1. Proposta: Agente di Pianificazione Corsi Intelligente**
#### **Descrizione Dettagliata**
L'agente si concentra sulla generazione dinamica di programmi didattici completi e personalizzati. A differenza dei sistemi statici, questo progetto utilizza un'architettura multi-agente per ragionare sul contenuto, adattarsi a diversi livelli di competenza e produrre materiali didattici pronti all'uso. Il focus è sulla capacità del sistema di pianificare, generare e validare informazioni complesse, trasformando input semplici in una serie di documenti coerenti.
**Features Principali**
* **Pianificazione Adattiva** : Il sistema bilancia automaticamente gli argomenti teorici e pratici in base alle ore disponibili e al livello degli studenti.
* **Generazione di Contenuti Multipli** : Produce non solo il programma, ma anche dispense, presentazioni e note per il relatore, dimostrando la capacità di creare diversi tipi di output da un'unica fonte di dati.
* **Gestione di Dati Eterogenei** : Accetta input strutturati (ore, lezioni) e non strutturati (descrizioni, file di riferimento), dimostrando flessibilità.
* **Output Coerente** : Organizza tutti i materiali generati in una cartella compressa per una consegna facile e organizzata.
#### **Input Utente**
* **Argomento del corso** : Tema principale (es. "Introduzione a Python").
* **Ore totali** : Durata complessiva del corso.
* **Numero di lezioni** : Suddivisione del tempo.
* **Livello studenti** : Basso, medio o alto.
* **Opzioni Aggiuntive** : Toggle per esercizi e parte pratica, upload di file di riferimento.
#### **Agenti Lato Server**
* **Agente `PianificatoreCorso`** : L'orchestratore che riceve l'input, ragiona sulla struttura del corso e delega i compiti agli altri agenti.
* **Agente `GeneratoreDispense`** : Crea documenti testuali formattati per ogni lezione.
* **Agente `GeneratorePresentazioni`** : Genera file PowerPoint (.pptx) usando il contenuto fornito dall'LLM e la libreria `python-pptx`.
* **Agente `GeneratoreEsercizi`** : Produce esercizi pratici descritti testualmente, adattati al livello degli studenti.
---
### **2. Proposta: Agente di Analisi e Consulenza Crypto**
#### **Descrizione Dettagliata**
Il progetto crea un consulente virtuale che utilizza gli **LLM** per analizzare il mercato delle criptovalute. A differenza dei semplici tracker di prezzo, questo agente combina dati di mercato in tempo reale con l'analisi del sentiment online per fornire raccomandazioni strategiche e il ragionamento che le supporta. L'intelligenza del sistema risiede nella sua capacità di elaborare grandi quantità di dati non strutturati (news, social media) e di presentarli in una forma comprensibile e contestualizzata per l'utente.
**Features Principali**
* **Analisi in Tempo Reale** : Si connette a un'API per monitorare prezzi e volumi di scambio.
* **Sentiment Analysis** : Scansiona fonti online per rilevare il sentiment del mercato e i trend.
* **Consigli Strategici** : Non si limita a mostrare i dati, ma propone una strategia (es. "compra", "vendi", "hold") e ne spiega le motivazioni.
* **Ragionamento Trasparente** : Fornisce un resoconto dettagliato del processo decisionale, elencando i fattori che hanno portato a una specifica raccomandazione.
#### **Input Utente**
* **Nome della criptovaluta** : La moneta da analizzare (es. "Bitcoin", "Ethereum").
* **Intervallo di tempo** : Ore, giorni o settimane.
* **Stile di trading** : Aggressivo, conservativo.
#### **Agenti Lato Server**
* **Agente `RicercatoreMercato`** : Recupera dati di trading da API pubbliche.
* **Agente `AnalistaSentiment`** : Esegue lo scraping di notizie e post sui social per l'analisi del sentiment.
* **Agente `ConsulenteStrategico`** : Combina i dati raccolti, il sentiment e le preferenze dell'utente per formulare una strategia e le sue motivazioni.
---
### **3. Proposta: Agente di Pianificazione Viaggi Intelligente**
#### **Descrizione Dettagliata**
Questo progetto è un sistema che pianifica viaggi personalizzati e adattivi. L'agente intelligente non si limita a proporre un itinerario fisso, ma ragiona e modifica il piano in base a informazioni in tempo reale, dimostrando la sua capacità di adattamento a eventi imprevisti. La forza del progetto sta nel mostrare come un LLM può integrare dati da fonti eterogenee (meteo, notizie, punti di interesse) per prendere decisioni complesse e generare un output coerente e personalizzato.
**Features Principali**
* **Adattabilità in Tempo Reale** : Il piano di viaggio si adatta a variabili come le condizioni meteorologiche o gli eventi locali.
* **Pianificazione Basata su Dati** : Il sistema utilizza informazioni reali e simulazioni per ottimizzare il viaggio in base ai vincoli dell'utente e alle condizioni esterne.
* **Ragionamento Esplicito** : Spiega all'utente il "perché" di ogni decisione presa (es. "Abbiamo evitato la città A a causa di un evento locale imprevisto").
* **Output Organizzato** : Il risultato è un itinerario chiaro e dettagliato con tutte le informazioni necessarie per l'utente.
#### **Input Utente**
* **Vincoli finanziari** : Budget massimo.
* **Preferenze di viaggio** : Mare, montagna, città, ecc.
* **Tempistiche** : Date di viaggio e durata.
#### **Agenti Lato Server**
* **Agente `Pianificatore`** : L'orchestratore che crea l'itinerario e lo adatta in base alle informazioni degli altri agenti.
* **Agente `Meteo`** : Interroga un'API per le previsioni meteorologiche.
* **Agente `Notizie`** : Cerca eventi locali e notizie che potrebbero influenzare il viaggio.
* **Agente `Ricerca`** : Recupera informazioni sui punti di interesse, voli e treni da database o API.

View File

@@ -2,16 +2,28 @@
# Se si nota che alcune non sono necessarie, si potrebbero rimuovere # Se si nota che alcune non sono necessarie, si potrebbero rimuovere
# in modo da evitare conflitti o problemi futuri. # in modo da evitare conflitti o problemi futuri.
# Per ogni roba ho fatto un commento per evitare di dimenticarmi cosa fa chi. # Per ogni roba ho fatto un commento per evitare di dimenticarmi cosa fa chi.
# Inoltre ho messo una emoji per indicare se è raccomandato o meno.
# per fare richieste HTTP # per gestire variabili d'ambiente (generalmente API keys o opzioni)
requests
# per l'elaborazione del linguaggio naturale in locale (https://huggingface.co/learn/llm-course/chapter1/3?fw=pt)
transformers
# per fare una UI web semplice con input e output
gradio
# per interagire con l'API di OpenAI e di altri (basta cambiare il baseurl)
openai
# per fare in modo di ottenere dati validati e strutturati
pydantic
# per gestire variabili d'ambiente (generalmente API keys o opzioni)
dotenv dotenv
# 🟡 per fare richieste HTTP
requests
# 🟡 per fare scraping di pagine web
bs4
# ✅ per fare una UI web semplice con input e output
gradio
# 🟡 per fare in modo di ottenere dati validati e strutturati
pydantic
# ❌ per l'elaborazione del linguaggio naturale in locale (https://huggingface.co/learn/llm-course/chapter1/3?fw=pt)
transformers
# ❌ per interagire con l'API di OpenAI e di altri (basta cambiare il baseurl)
openai
# ❌ per fare chiamate a modelli indipendentemente dal modello specifico (astrae meglio rispetto a openai)
langchain
# ✅ per costruire agenti (ovvero modelli che possono fare più cose tramite tool) https://github.com/agno-agi/agno
# altamente consigliata dato che ha anche tools integrati per fare scraping, calcoli e molto altro
agno