Gli Assistenti AI sono sistemi avanzati che, sfruttando l’intelligenza artificiale, consentono interazioni in linguaggio naturale e offrono potenti strumenti per la ricerca, il recupero delle informazioni, la creazione di codice e l’interpretazione. Gli assistenti OpenAI integrano nativamente la tecnologia RAG (Retrieval-Augmented Generation), la quale, unita ai modelli LLM, permette di configurare infinite combinazioni di Agenti RAG specializzati in competenze di dominio specifiche. Questi Agenti AI non sono soltanto reattivi, ma diventano attivi grazie all’uso di tool avanzati: tali strumenti li abilitano a svolgere calcoli, integrarsi con sistemi esterni, richiamare funzioni complesse e inviare informazioni. In questo modo, oltre alle funzionalità di base, possono impiegare strumenti personalizzati per analizzare dati provenienti da diverse fonti e generare risposte su misura per quesiti complessi, rendendoli indispensabili per l’automazione e l’ottimizzazione delle interazioni tecnologiche in ambito aziendale.
L’API Assistants di OpenAI permette di sviluppare Agenti AI con con sistema RAG nativamente integrato ed espandibile che, grazie a istruzioni specifiche, modelli LLM e tools , è in grado di rispondere alle query degli utenti in modo personalizzato e controllato. Attualmente, l’API supporta tre tipi di strumenti: Code Interpreter, File Search e Tools (Function Calling).
Prima di implementare un assistente nelle applicazioni tramite API, è possibile configurarlo e testarlo direttamente tramite il Playground, che offre un ambiente interattivo per sperimentare e perfezionare le funzionalità dell’assistente.
Gli assistenti possono:
- Personalizzare le risposte: Chiamano i modelli di OpenAI con istruzioni specifiche per calibrare la loro personalità e capacità.
- Utilizzare più strumenti in parallelo: Possono integrare sia strumenti ospitati da OpenAI (come code_interpreter e file_search) sia strumenti creati o gestiti direttamente da te tramite chiamate di funzione, integrandosi con cn fonti, servizi o software esterni.
- Gestire thread persistenti: I thread memorizzano la cronologia dei messaggi, semplificando lo sviluppo delle applicazioni AI. Essi aggiornano la conversazione man mano che gli utenti interagiscono e troncano la cronologia quando necessario per adattarsi alla lunghezza del contesto del modello.
- Gestire e generare file: Gli assistenti possono accedere a file in vari formati durante la loro configurazione o all’interno dei thread. Inoltre, utilizzando gli strumenti, possono generare file (come immagini o fogli di calcolo) e fare riferimento ad essi nei messaggi.

L’API Assistant di OpenAI offre una solida base per sviluppare assistenti AI dinamici e personalizzati, capaci di rispondere in modo efficace a esigenze complesse nelle applicazioni aziendali concrete e reali.
Playground
Il Playground è l’ambiente interattivo di OpenAI progettato per sperimentare e testare i modelli linguistici in tempo reale. È il punto di partenza ideale per chi desidera creare un assistente AI, poiché permette di:
- Sperimentare e capire il funzionamento dei modelli: Nel Playground puoi inserire prompt, modificare parametri e vedere come il modello risponde, permettendoti di coglierne le potenzialità e i limiti.
- Configurare comportamenti personalizzati: Puoi regolare parametri come la temperatura e il massimo numero di token per ottenere risposte più creative o più precise, adattandole alle esigenze specifiche del tuo assistente.
- Testare interazioni e integrazioni: È possibile simulare scenari di conversazione e integrare funzioni specifiche, verificando come il modello gestisce richieste complesse, recupera informazioni o esegue calcoli.
- Accelerare lo sviluppo: Grazie al Playground, sviluppatori e ricercatori possono iterare rapidamente sulle proprie idee, riducendo il tempo necessario per passare da una concept a una soluzione implementabile.
Il Playground è un ambiente fondamentale che non solo facilita la comprensione dei modelli AI, ma offre anche una piattaforma sperimentale per configurare e perfezionare le funzionalità di un assistente AI, rendendolo pronto per essere integrato in applicazioni e sistemi reali.

Il Playground di OpenAI rappresenta uno strumento avanzato per interagire con i modelli di intelligenza artificiale, offrendo una gamma di funzionalità personalizzabili per adattarsi a molteplici esigenze. Questa guida analizza nel dettaglio le sezioni principali, illustrandone l’utilizzo e le caratteristiche principali.
STEP 1. Definire il nome dell’assistente AI
Quando viene creato un assistente AI, il primo passaggio fondamentale è la definizione del suo nome. Sebbene possa sembrare un dettaglio banale, la scelta del nome ha un impatto significativo sulla percezione e sull’efficacia dell’assistente all’interno di un processo aziendale. Il nome dell’assistente non è solo un’etichetta, ma un mezzo potente per comunicare il ruolo che l’agente avrà e come si inserirà nelle dinamiche lavorative. Un nome ben scelto riflette la funzione dell’assistente, facilitando l’interazione con gli utenti e orientandoli sul tipo di attività che l’assistente è progettato per supportare.
Che si tratti di un agente dedicato all’assistenza clienti, alla gestione di documenti o all’automazione di compiti ripetitivi, il nome deve essere coerente con l’obiettivo e la personalità dell’assistente designato a gestire un processo o delle attività di un processo ben definito, creando un punto di connessione tra la tecnologia e gli utenti. In questo senso, il nome diventa una parte essenziale della strategia di adozione e successo dell’assistente AI.
In questo articolo, per spiegare il processo di creazione di un assistente AI, verrà configurato un assistente finanziario senior, denominato “Financial Senior Analyst”, progettato per eseguire analisi qualitative di report aziendali e automatizzare l’elaborazione di dati finanziari complessi. Questo tipo di Agente AI verrà dotato di una solida base di conoscenza sui domini dell’economia aziendale, della finanza aziendale, del marketing e di altri settori correlati, creando un Vettore Store che raccoglierà manuali tecnici, report storici, articoli specialistici e documentazione interna.
Per garantire che l’assistente possa rispondere in modo efficiente a domande complesse e generare analisi approfondite, questo sistema AI incorporerà nativamente un sistema RAG (Retrieval-Augmented Generation).
Questo sistema permette di accedere a un ampio database di conoscenze esterne e interne, restituendo informazioni contestualizzate che vengono poi elaborate per generare risposte accurate.
Il “Financial Senior Analyst” sarà in grado di sintetizzare e analizzare i report finanziari aziendali, concentrandosi sull’analisi qualitativa dei contenuti. Questo include l’interpretazione del tono e delle implicazioni strategiche nei documenti aziendali, l’individuazione di rischi e opportunità attraverso l’analisi delle narrative di management e delle note esplicative, nonché la valutazione dell’affidabilità e coerenza delle dichiarazioni aziendali in relazione ai dati numerici e alle linee guida caricante nella sua knowledge base.
L’assistente sarà capace di estrarre e classificare informazioni qualitative da documenti come report annuali, piani aziendali, comunicati stampa e analisi di mercato, per poi generare sintesi utili per la decisione manageriale. Inoltre, sarà in grado di rispondere a richieste complesse, come l’analisi dei fattori che influenzano le performance aziendali, la valutazione critica di strategie di investimento e l’analisi qualitativa delle informazioni dei documenti sottoposti all’analisi.
La combinazione del sistema RAG e del Vettore Store nativamente integrato renderà il “Financial Senior Analyst” un assistente altamente competente e perfettamente integrabile in tutti flussi di lavoro e touchpoint aziendali.
STEP 2. Definire le istruzioni di sistema

La sezione 2 delle System Instructions del playground consente di definire il comportamento e il contesto operativo dell’assistente AI. Qui è possibile inserire specificare il ruolo e le competenze del modello, fornendo istruzioni che influenzano direttamente il modo in cui risponde agli input. Questa configurazione è particolarmente importante e utile per creare assistenti altamente specializzati, in grado di adattarsi a settori specifici come analisi aziendali, consulenza tecnica o assistenza creativa. Una descrizione chiara e dettagliata in questa sezione garantisce risposte precise e contestualizzate alle esigenze del progettista.
Di seguito si riportano, a titolo di esempio, le istruzioni di sistema per definire un agente specializzato in analisi finanziarie con un focus sull’analisi qualitativa dei dati.
Configurare le istruzioni di Analista Finanziario
# ISTRUZIONI
**Le seguenti istruzioni definiscono il tuo ruolo e le tue modalità di interazione con l'utente**
# RUOLO: Analista Finanziario Senior
## **Descrizione:** Sei un analista finanziario senior specializzato in analisi qualitative. Il tuo compito è fornire supporto decisionale strategico a [tipo di azienda] nel settore [settore].
## **Tono:** Il tuo tono è "Professionale", "Chiaro" e "Competente".
# COMPETENZE
Il tuo dominio di competenze riguarda i seguenti argomenti:
* Analisi di testi, documenti, report e grafici aziendali.
* Interpretazione di strategie e obiettivi.
* Analisi SWOT e di scenario.
* Consulenza strategica.
* Comunicazione efficace.
# OBIETTIVO
Il tuo obiettivo è: **Fornire analisi qualitative approfondite per supportare la comprensione di documenti aziendali e decisioni strategiche.**
# DIRETTIVE
## Analisi Qualitative
Concentrati su:
* Contesto aziendale e mercato di riferimento.
* Cultura aziendale e leadership.
* Concorrenza e posizionamento competitivo.
* Trend e fattori di cambiamento.
* Sostenibilità del business model.
## Richieste di chiarimento:
Chiedi chiarimenti se necessario.
## Personalizzazione Risposte:
* Adatta le analisi al contesto specifico.
* Fornisci interpretazioni e raccomandazioni chiare e attuabili.
# FLUSSO DI LAVORO:
1. Richiedi informazioni e documenti.
2. Definisci obiettivi e priorità.
3. Analizza le informazioni.
4. Fornisci conclusioni e raccomandazioni.
5. Richiedi feedback.
# ESEMPI DI TASK
[Inserisci la descrizione di elaborare le risposte descrivendo alcuni esempi di utilizzo]
# CONTESTO
Nel definire le tue risposte considera sempre il seguente contesto: {{CONTESTO_AZIENDALE}}
# TOOLS PERSONALIZZATI:
[Inserire qui le istruzioni su come richiamare e utilizzare eventuali tool personalizzati]
# REGOLE E CONFORMITA'
Per fornire risposte accurate e conformi considera sempre le regole seguenti:
* **Regole di interpretazione**
* **Regole Golden Standard**
## Regole di interpretazione: {{REGOLE_INTERPRETAZIONE}}
## Regole Golden Standard: {{REGOLE_GOLDEN_STANDARD}}
# VINCOLI
* **Limiti di competenza:** Le tue risposte devono essere inerenti all'analisi finanziaria qualitativa e al contesto aziendale definito dalle variabili {{CONTESTO_AZIENDALE}}.
* Non puoi fornire risposte su altri argomenti.
* Non puoi fornire risposte risposte al di fuori del tuo dominio di competenze.
# OUTPUT FORMAT
Produci e definisci report chiari e competi e, con focus sull'interpretazione qualitativa seguendo sempre il seguente format: {{FORMAT_RISPOSTA}}
By Salvatore Miseo
In contesti di programmazione lato codice, le istruzioni impartite all’agente tramite il Prompt di Sistema possono essere rese dinamiche, creando dei Template Specifici inserendo all’intero del testo delle variabili {{NOME_VARIABILI}} da sostituire con testo o istruzioni specifiche.
Definire con precisione il Ruolo, le Competenze e le Istruzioni di un assistente AI è cruciale per ottenere i risultati desiderati da un modello LLM.
Un prompt di sistema efficace fornisce un contesto operativo chiaro e strutturato, ottimizzando la lunghezza del testo e guidando l’LLM verso il comportamento desiderato.
Le istruzioni e i principali elementi da includere in un prompt di sistema possono essere diverse come nelle immagine seguente.
- Ruolo: Definizione chiara e concisa del ruolo dell’assistente AI (es. “Analista Finanziario Senior”).
- Descrizione: Descrizione dettagliata delle responsabilità e delle aree di competenza dell’assistente.
- Tono: Indicazione del tono di voce e dello stile comunicativo desiderati (es. “Professionale, competente e chiaro”).
- Competenze: Elenco delle competenze specifiche dell’assistente, con esempi concreti.
- Obiettivo: Definizione dell’obiettivo principale dell’assistente.
- Direttive: Istruzioni specifiche su come l’assistente deve operare, inclusi:
- Aree di focus per l’analisi.
- Indicazioni su quando chiedere chiarimenti.
- Linee guida per la personalizzazione delle risposte.
- Descrizione del flusso di lavoro.
- Esempi di Task: Esempi concreti di compiti che l’assistente può svolgere.
- Contesto: Descrizione del contesto aziendale di riferimento.
- Tools Personalizzati: Istruzioni su come richiamare e utilizzare eventuali tool personalizzati.
- Regole: Definizione delle “Regole di Interpretazione” e delle regole “Golden Standard” da seguire.
- Vincoli: Limitazioni e restrizioni per l’assistente, come limiti di competenza, riservatezza e conformità alle regole.
- Output Format: Descrizione del formato di output desiderato.
Il seguente prompt di sistema e tutti gli esempi successivi sono forniti a scopo puramente illustrativo. Sebbene siano esempi validi e applicabili in diversi contesti, è importante sottolineare che potrebbero necessitare di reingegnerizzazioni e personalizzazioni specifiche a seconda delle esigenze individuali e degli obiettivi di analisi.
Si declina ogni responsabilità per l’uso improprio o non autorizzato del prompt e di tutti gli esempi successivi, nonché per eventuali danni o perdite derivanti dal loro utilizzo. Si raccomanda di adattare il prompt e gli esempi alle proprie esigenze specifiche e di consultare un esperto in caso di dubbi o incertezze.
L’utente è invitato a utilizzare il prompt e gli esempi in modo responsabile e consapevole, verificando sempre la correttezza e la pertinenza delle informazioni fornite dall’assistente virtuale. Si raccomanda inoltre di effettuare unit test e cicli di validazione prima di entrare in produzione, per garantire l’affidabilità e l’accuratezza delle risposte generate dall’assistente virtuale in un ambiente reale.
Ottimizzare le istruzioni utilizzando tag XML
Le istruzioni di sistema possono essere descritte utilizzando diversi linguaggi di markup, ognuno con i suoi vantaggi e svantaggi. Markdown, ad esempio, è un linguaggio leggero e intuitivo, ideale per la scrittura di testi semplici e leggibili. Tuttavia, per descrivere situazioni di sistema complesse, potrebbe essere più efficace utilizzare un linguaggio più strutturato come XML. XML (Extensible Markup Language) consente di definire tag personalizzati per organizzare le informazioni in modo gerarchico, rendendo il contenuto facilmente elaborabile da parte di macchine. Questo può essere particolarmente utile per definire una struttura precisa per i prompt, automatizzare la generazione di prompt e integrare i prompt con altri sistemi. In definitiva, la scelta del linguaggio di markup dipende dalle specifiche esigenze del progetto.
Format XML
Per ottenere prestazioni ottimizzate dai modelli LLM, strutturare i prompt con i tag XML, specialmente quando contengono diverse componenti come contesto, istruzioni ed esempi. Utilizzare tag come
<instructions>,<example>e<formatting>aumenta la chiarezza e la precisione, evitando che il modello LLM confonda le diverse parti del prompt. Questo approccio offre diversi vantaggi: il prompt risulta più chiaro e ben strutturato, si riducono gli errori di interpretazione e si aumenta la flessibilità nella modifica del prompt. Inoltre, l’uso di tag XML nell’output facilita l’estrazione di informazioni specifiche tramite post-elaborazione.Attenzione!!! Ricordarsi di essere coerente nell’uso dei tag, utilizzando gli stessi nomi in tutti i tuoi prompt e di nidificare i tag
<outer><inner></inner></outer>per contenuti gerarchici. Per prompt ancora più efficaci, combina i tag XML con tecniche come il prompt multishot (<examples>) o la catena di pensiero (<thinking>,<answer>).Fonte: Anthropic.com
Prompt di sistema dinamici, esempi in abito aziendale.

Esempio 1 – Ambito: Analisi report finanziari – Focus: Analisi qualitativa dei report

Esempio 2 – Ambito: Acquisti – Focus: Analisi di conformità offerta di acquisto

Esempio 3 – Ambito: Contratti – Focus: Analisi contratti commerciali

Esempio 4 – Ambito marketing digitale – Focus: Creazione campagne media

STEP 3. Selezionare il modello LLM
La scelta del modello LLM (Large Language Model) è fondamentale per il successo del tuo assistente AI, in quanto influisce direttamente sulle sue prestazioni, capacità e costi operativi. Nel periodo di scrittura di questo articolo, openAI offre una gamma di modelli adatti a diverse esigenze, suddivisi in tre principali categorie: serie o, GPT-4 e GPT-3.5 Turbo. Ogni modello è ottimizzato per specifici tipi di task e scenari applicativi.
Serie o: Ragionamento e complessità Multi-Step
I modelli della serie o, come o1 e o1-mini, sono progettati per task che richiedono ragionamenti complessi e pianificazione multi-step.
- o1: Ideale per problemi difficili e multi-turno, con una capacità contestuale fino a 200k token. Questo modello è perfetto per orchestrare workflow complessi e per essere utilizzato come agente principale in sistemi multi-agente.
- o1-mini: Una variante più leggera e veloce, ottimizzata per task semplici e ad alta frequenza. È particolarmente indicata per chatbot avanzati e applicazioni scalabili, utilizzabile come agente secondario in catene multi-agente.

GPT-4: Potenza multimodale e alta intelligenza. Modello legacy
La serie GPT-4, con modelli come GPT-4o e GPT-4o Mini, è il punto di riferimento per task complessi che richiedono precisione, supporto multimodale (testo e immagini) e alta capacità analitica. Nel periodo in cui si sta scrivendo l’articolo rappresenta la serie serie legacy dei modelli OpenAI.
- GPT-4o: Modello flagship ad alta intelligenza, è ideale per generazione di contenuti tecnici, analisi avanzate e interazioni multi-turno. Perfetto per essere integrato come coordinatore principale in workflow AI.
- GPT-4o Mini: Variante compatta ed economica, progettata per task focalizzati e scalabili. È una scelta eccellente per supportare sistemi multi-agente con costi ridotti e tempi di risposta rapidi.
GPT-3.5 Turbo: Efficienza e convenienza
GPT-3.5 Turbo è una soluzione economica e veloce per task semplici e ripetitivi. Grazie al suo basso costo per token e alla velocità di elaborazione, è ideale per applicazioni con budget limitati o come agente ausiliario in sistemi multi-agente, ad esempio per il pre-processing dei dati o risposte generiche.

La scelta tra queste opzioni dipende dalla complessità del task, dal volume delle richieste, dai costi operativi previsti e dalla necessità di scalabilità futura. È importante tenere in considerazione che nuove versioni e varianti di modelli possono essere rilasciate regolarmente, ampliando ulteriormente le possibilità applicative. Per informazioni aggiornate sui modelli e sulle loro specifiche, è consigliabile consultare la pagina ufficiale di OpenAI: Specifiche tecniche dei modelli di OpenAI.
Confronto tra modelli delle serie O e GPT

La Serie O è ideale per task complessi (O1) o applicazioni scalabili e veloci (O1-Mini). Il GPT-4o si distingue per analisi avanzate e task multimodali, con la versione Mini perfetta per ottimizzare costi e velocità. Infine, il GPT-3.5 Turbo è la scelta migliore per task semplici e altamente scalabili, offrendo un eccellente rapporto costo-prestazioni. Scegli il modello giusto per ogni esigenza e massimizza l’efficienza delle tue operazioni.
STEP 4 – Configurare la base di conoscenza

L’immagine precedente illustra i passaggi da seguire per specializzare l’Assistente AI su un dominio di conoscenze specifico. La funzione File Search consente di caricare file che il modello può consultare durante l’elaborazione delle risposte, di fatto rappresenta la base di conoscenza del modello comunemente chiamata Knowledge Base. Questo strumento si rivela indispensabile per fornire al modello informazioni supplementari, come documenti di riferimento, dataset o altri file rilevanti. Una volta caricati, questi file vengono utilizzati dall’agente AI per contestualizzare le risposte e accedere rapidamente a informazioni complesse.
Un assistente AI senza documenti è come un bibliotecario senza libri: sa come cercare, ma non ha nulla da consultare. Caricando file nella sua Knowledge Base, si forniscono:
- Informazioni specifiche (es. manuali operativi, conoscenza di dominio).
- Contesto per risposte accurate (es. linee guida aziendali).
- Aggiornamenti in tempo reale (basta aggiungere nuovi file nel database vettoriale collegato al sistema).
Cediamo come attivare e ottimizzare tutto ciò, passo dopo passo.
Attivare la funzionalità File Search – La porta d’accesso alla knowledge base
La File Search non è solo un pulsante: è lo strumento che trasforma l’AI da “generico” a “esperto specializzato”. Ecco perché è indispensabile:
- Cos’è: Una funzione che permette di caricare file (PDF, dataset, documenti) che l’AI può consultare durante l’elaborazione delle risposte.
- A cosa serve:
- Costruisce la Knowledge Base del modello, arricchendolo con informazioni supplementari (es. manuali, linee guida tecniche, regolamenti ecc.).
- Permette all’AI di contestualizzare le risposte e accedere rapidamente a dati complessi.
Come si attiva:
- Vai nella sezione Attach files to vector store.
- Carica i file trascinandoli o selezionandoli dal computer.
- I documenti vengono automaticamente integrati nel Vector Store, il database semantico dell’AI.
Esempio pratico:
Caricando un manuale di Management, l’AI potrà spiegare come generare una strategia aziendale o risolvere conflitti di team, basandosi su un documento specifico in modo controllato e non generalista.
Organizzare l’informazione
I documenti non vengono utilizzati così come sono: vengono suddivisi in chunk (frammenti) per ottimizzare l’analisi.
Cosa sono i chunk?
- Definizione: Porzioni di testo di dimensione controllata (es. 500 token, dove 1 token ≈ 4 caratteri).
- Perché usarli:
- L’AI lavora meglio con testi brevi e focalizzati.
- Esempio: Un manuale di 100 pagine viene spezzato in chunk da 500 parole, come capitoli di un libro.
Cosa significa overlap?
- Definizione: La sovrapposizione di token tra chunk consecutivi (es. 300 token).
- A cosa serve:
- Preserva il contesto tra paragrafi, evitando di troncare concetti a metà.
- Esempio: Se un chunk termina con “Il ROI si calcola con…” e il successivo inizia con “…la formula (Utile Netto / Investimento) × 100”, l’overlap garantisce coerenza.
Impostazioni consigliate:
- Per documenti tecnici: Chunk Size = 500 token, Overlap = 300 token.
- Per FAQ o risposte rapide: Chunk Size = 300 token, Overlap = 150 token.
Vector store
Il Vector Store è la tecnologia che rende possibile la magia della File Search e la mappa de tesori dell’AI. Ecco cosa devi sapere:
- Cos’è: Un database che converte il testo in embedding vettoriali, rappresentazioni numeriche del significato delle parole.
- Come funziona:
- Ogni chunk viene trasformato in un vettore (una serie di numeri).
- Quando fai una domanda, l’AI confronta il vettore della tua query con quelli dei chunk, trovando i più simili effettuando una ricerca semantica.
- Vantaggi della ricerca semantica:
- Ricerca per significato, non per parole chiave:Esempio: Se chiedi “Come migliorare l’engagement sui social?”, l’AI cercherà chunk su strategie di contenuti, anche se nel testo non c’è la parola “engagement”.
- Se chiedi “Come creare una strategia per aumentare i ricavi?”, l’AI cercherà chunk correlati a strategie di vendita, anche se nel testo non c’è la parola “ricavi”.
- Velocità: Confrontare numeri è più efficiente che scorrere pagine di testo.
Esempio di ottimizzazione:
Dopo aver caricato un nuovo manuale delle strategie di marketing, l’Assistente AI potrà iniziare a fornire previsioni più accurate sulle strategie da adottare, grazie al Vector Store aggiornato.
Gestione della Knowledge Base
Una volta attivata la File Search è possibile:
- Aggiungere nuovi file: Clicca “+ Add” per integrare dati recenti (es. un report trimestrale).
- Rimuovere contenuti obsoleti: Usa “Detach from assistant” per eliminare file non più rilevanti.
- Monitorare le performance: Se l’AI commette errori, regola Chunk Size e Overlap o verifica i formati dei file.
- Estrarre l’ID del file per correlare il file al contesto di un prompt o una query di specifica all’interno di un workflow dell’assistente AI.
STEP 5 – Attivare la funzionalità Code Interpreter
Il Code Interpreter è uno strumento avanzato che permette al modello di eseguire calcoli complessi, analizzare dati e manipolare file come fogli di calcolo o immagini. È particolarmente utile per attività di analisi statistica, elaborazione di dataset o generazione di output grafici. Questa funzione amplia notevolmente le capacità del modello, rendendolo adatto a compiti tecnici e operazioni basate su dati.
Code Interpreter consente agli Assistenti di scrivere ed eseguire codice Python in un ambiente di esecuzione sandbox. Questo strumento può elaborare file con dati e formattazioni diversi e generare file con dati e immagini di grafici. Code Interpreter consente al tuo Assistente di eseguire codice in modo iterativo per risolvere problemi di codice e matematica complessi. Quando il tuo Assistente scrive codice che non riesce a essere eseguito, può iterare su questo codice tentando di eseguire codice diverso finché l’esecuzione del codice non riesce.
Fonte: OpenAI
STEP 6 – Functions
Le Functions rappresentano un’opportunità per integrare il modello con API esterne o processi personalizzati. Attraverso questa funzionalità, è possibile definire metodi specifici che il modello può richiamare durante l’elaborazione, ampliando le sue capacità in ambiti specifici come richieste a database, calcoli avanzati o interazioni con sistemi esterni. Questa caratteristica consente una personalizzazione avanzata, particolarmente utile in scenari complessi o applicazioni aziendali.
La chiamata di funzione consente di descrivere le funzioni all’API degli Assistenti e di farle restituire in modo intelligente le funzioni che devono essere chiamate insieme ai loro argomenti.
Questo aspetto merita un approfondimento specifico: per questo motivo, è in programma la pubblicazione di un articolo dedicato in futuro.
STEP 7 – Response Format
La configurazione del Response Format permette di definire il formato dell’output generato dal modello. Le due opzioni principali includono:
- Text: Ideale per risposte in linguaggio naturale.
- Code: Utilizzato per generare output tecnici o formattati come JSON.
Questa impostazione è cruciale per garantire che il modello produca risposte adatte al contesto d’uso previsto.
Un Senior Financial Analyst Assistant potrebbe essere programmato per analizzare un report finanziario (ad esempio, un report trimestrale o un documento PDF) ed estrarre i dati rilevanti in formato strutturato, come JSON, per facilitare l’integrazione con un flusso di elaborazione o archiviazione. Questo è particolarmente utile per automatizzare processi di analisi, facilitare l’estrazione, e la trasformazione di informazioni, aggiornare un di database, passare una task successivo valori con uno schema predefinito stabile.
Ecco un esempio di come potrebbe funzionare:
Input: Report Finanziario (testo non strutturato)
Report Trimestrale - XYZ Corporation - Q3 2023 - Ricavi totali: $1.2 miliardi, con una crescita del 5% rispetto al trimestre precedente. - Spese totali: $900 milioni, di cui $600 milioni sono spese operative e $300 milioni sono costo del venduto. - Utile netto: $300 milioni, con un margine di profitto del 25%. - EPS (Earnings Per Share): $2.50. - Rapporto P/E (Price-to-Earnings): 15. - ROE (Return on Equity): 18%.
Output: Dati strutturati in JSON
{
"report_metadata": {
"company": "XYZ Corporation",
"period": "Q3 2023",
"source": "Report Trimestrale",
"extraction_date": "2023-10-15T14:30:00Z"
},
"financial_data": {
"revenue": {
"total": "1.2B",
"growth": "5%",
"comparison": "previous_quarter"
},
"expenses": {
"total": "900M",
"breakdown": {
"operating_expenses": "600M",
"cost_of_goods_sold": "300M"
}
},
"profit": {
"net_income": "300M",
"margin": "25%"
},
"key_metrics": {
"eps": "2.50",
"pe_ratio": "15",
"roe": "18%"
}
},
"processing_instructions": {
"next_step": "archive",
"target_system": "financial_database",
"format": "json"
}
}
STEP 8 – Definire la prevedibilità e la coerenza delle risposte
Il parametro Temperature regola la creatività delle risposte generate dal modello. Valori più bassi, come 0.2, producono risposte più prevedibili e coerenti, utili per compiti tecnici o risposte dirette. Valori più alti, come 0.8, generano invece risposte più variegate e creative, adatte per attività come brainstorming o generazione di idee. La regolazione di questo parametro consente di adattare il comportamento del modello al tipo di attività da svolgere.

STEP 9 – Definire la variabilità delle risposte bilanciando precisione e creatività
Il parametro Top P controlla la probabilità cumulativa utilizzata per generare le risposte. Un valore basso restringe le possibilità, producendo risposte più focalizzate, mentre un valore alto consente una maggiore varietà. Questo parametro, in combinazione con la Temperature, offre un controllo avanzato sulla generazione di testo, permettendo di bilanciare precisione e creatività.
STEP 10. Valutare e monitore le risposte dell’assistente
La sezione Thread funge da registro della conversazione in corso, mostrando tutte le interazioni con il modello. Questo riquadro consente di monitorare il flusso della conversazione, di rivedere le risposte precedenti e di fornire ulteriori input per migliorare la coerenza e la continuità delle risposte del modello.
La sezione dei Thread permette di valutare come il modello come risponde alle sollecitazione dei prompt dell’utente.

STEP 11. Sollecitare il modello e testare input personalizzati
L’area dedicata all’inserimento dell’input (USER PROMPT) e al comando di esecuzione è la sezione operativa principale. L’utente può digitare richieste o istruzioni, allegare file o configurare parametri specifici prima di avviare l’elaborazione. Il pulsante Run esegue il processo e attiva il modello per generare una risposta dando la possibilità di Questa sezione è progettata per massimizzare l’efficienza dell’interazione con il modello.

STEP 12. Analizzare e valutare il comportamento dell’Assistente
La sezione Logs consente di visualizzare i dettagli delle interazioni, comprese le richieste inviate e le risposte generate. Questa funzionalità è essenziale per analizzare il comportamento del modello, individuare eventuali errori o incongruenze, e ottimizzare i prompt. I log rappresentano uno strumento indispensabile per il debugging e il miglioramento continuo delle interazioni.

Ottimizzare l’uso del Playground per migliorare le performance dell’Assistente
L’ottimizzazione dell’uso del Playground è un processo chiave per sfruttare al massimo le potenzialità dei modelli di intelligenza artificiale. Iniziando con la sperimentazione, è possibile testare diverse configurazioni di parametri, come la temperatura o il numero massimo di token, per comprendere come influenzano il comportamento del modello. Fornire istruzioni chiare e specifiche nei prompt è fondamentale per ottenere risposte pertinenti e di alta qualità. Utilizzando il Playground, è possibile iterare rapidamente, osservando in tempo reale come il modello risponde a variazioni nei prompt e nei parametri. L’analisi dei risultati e la revisione dei log delle interazioni permettono di identificare modelli e aree di miglioramento, perfezionando progressivamente le richieste. Questo approccio iterativo non solo aumenta la qualità delle risposte, ma migliora anche la coerenza del modello, rendendolo più affidabile e adatto a contesti specifici. In sintesi, il Playground diventa uno strumento essenziale per affinare l’interazione con l’AI, trasformando esperimenti e osservazioni in soluzioni ottimizzate e performanti.

Guida rapida all’API degli assistenti
La creazione di un assistente AI personalizzato tramite l’API di OpenAI segue un flusso strutturato in quattro passaggi chiave. Si inizia definendo l’Assistente attraverso codice (In questo caso si utilizza il il codice Python), specificando istruzioni personalizzate (Instructions), definendo un modello (come gpt-4o) e abilitando strumenti come Code Interpreter per l’esecuzione di codice. Successivamente, si crea un Thread, un contenitore dinamico che rappresenta una conversazione utente-assistente. Al thread si aggiungono Messaggi (es: una domanda specifica dell’utente) utilizzando client.beta.threads.messages.create(). Il cuore dell’interazione è la Run, un’esecuzione che attiva l’Assistente sul thread: tramite client.beta.threads.runs.stream() si avvia lo streaming in tempo reale, dove l’AI elabora la richiesta, esegue calcoli con Code Interpreter e genera risposte contestuali. Opzioni avanzate come l’override delle istruzioni durante la Run (es: personalizzare il nome utente) e la gestione di eventi tramite classi come AssistantEventHandler permettono un controllo fine sul flusso di output. L’integrazione, ottimizzata negli SDK ufficiali, semplifica l’uso delle intestazioni beta (OpenAI-Beta: assistants=v2), rendendo questo framework ideale per sviluppare assistenti conversazionali, tutor intelligenti o tool aziendali con interazioni complesse e multimodali.
STEP 1 – Creare un Assistente
Un Assistente rappresenta un’entità che può essere configurata per rispondere ai messaggi di un utente utilizzando diversi parametri come model, instructions, e tools.
#----------------------------------------------
# STEP 1: Creare un assistente
#----------------------------------------------
from openai import OpenAI
client = OpenAI()
tipologia_azienda = "Iserire qui la tipologia di azienda"
settore = "Iserire qui il settore"
# Iserire qui gli altri parametri di configurazione
assistant_name = "Senior Financial Analyst"
assistant_instructions = f"""
# ISTRUZIONI
**Le seguenti istruzioni definiscono il tuo ruolo e le tue modalità di interazione con l'utente**
# RUOLO: Analista Finanziario Senior
## **Descrizione:** Sei un analista finanziario senior specializzato in analisi qualitative.
Il tuo compito è fornire supporto decisionale strategico a {tipologia_azienda} nel settore {settore}.
## **Tono:** Il tuo tono è "Professionale", "Chiaro" e "Competente".
# COMPETENZE
Il tuo dominio di competenze riguarda i seguenti argomenti:
* Analisi di testi, documenti e report e grafici aziendali.
* Interpretazione di strategie e obiettivi.
* Analisi SWOT e di scenario.
* Consulenza strategica.
* Comunicazione efficace.
[Iserire qui le altre istruzioni]
"""
assistant = client.beta.assistants.create(
name=assistant_name,
instructions=assistant_instructions,
tools=[{"type": "code_interpreter"}],
model="gpt-4o",
)PythonSTEP 2 – Creare un Thread
Un Thread rappresenta una conversazione tra un utente e uno o più Assistenti. Puoi creare un Thread quando un utente (o la tua applicazione AI) avvia una conversazione con il tuo Assistente.
#----------------------------------------------
# STEP 2: Creare un thread
#----------------------------------------------
thread = client.beta.threads.create()PythonSTEP 3 – Aggiungere messaggi al Thread
I contenuti dei messaggi creati dai tuoi utenti o dalle tu applicazioni vengono aggiunti come oggetti Message al Thread. I messaggi possono contenere sia testo che file. C’è un limite di 100.000 messaggi per Thread, superata questa soglia OpenAI tronca il Thread in modo intelligente qualsiasi contesto che non si adatti alla finestra di contesto del modello.
#----------------------------------------------
# STEP 3: Aggiungere un messaggio al thread
#----------------------------------------------
user_query = "Come mi puoi aiutare? "
message = client.beta.threads.messages.create(
thread_id=thread.id,
role="user",
content=user_query
)PythonSTEP 4 – Creare uno Stream Run
Una volta aggiunti tutti i messaggi utente al thread, è possibile
eseguire il thread con qualsiasi assistente. La creazione di un’esecuzione utilizza il modello e gli strumenti associati all’assistente per generare una risposta. Queste risposte vengono aggiunte al thread come assistant messaggi.
#----------------------------------------------
# Step 4: Create a uno Stream Run
#----------------------------------------------
from typing_extensions import override
from openai import AssistantEventHandler
# Per prima cosa, Creare una classe EventHandler per definire
# come gestire gli eventi nel flusso della risposta.
class EventHandler(AssistantEventHandler):
@override
def on_text_created(self, text) -> None:
print(f"\nassistant > ", end="", flush=True)
@override
def on_text_delta(self, delta, snapshot):
print(delta.value, end="", flush=True)
def on_tool_call_created(self, tool_call):
print(f"\nassistant > {tool_call.type}\n", flush=True)
def on_tool_call_delta(self, delta, snapshot):
if delta.type == 'code_interpreter':
if delta.code_interpreter.input:
print(delta.code_interpreter.input, end="", flush=True)
if delta.code_interpreter.outputs:
print(f"\n\noutput >", flush=True)
for output in delta.code_interpreter.outputs:
if output.type == "logs":
print(f"\n{output.logs}", flush=True)
# Usare l'helper `stream` dell'SDK
# con la classe `EventHandler` per creare la Run
# e trasmettere la risposta.
with client.beta.threads.runs.stream(
thread_id=thread.id,
assistant_id=assistant.id,
instructions="[Inserire qui le istruzioni per indirizzare l'utente]",
event_handler=EventHandler(),
) as stream:
stream.until_done()PythonL’integrazione degli Assistenti AI di OpenAI rappresenta una rivoluzione per le aziende, offrendo la possibilità di creare chatbot conversazionali avanzati basati su RAG nativa e automatizzare flussi di analisi e processi complessi. Grazie a strumenti come Code Interpreter, File Search e Function Calling, è possibile sviluppare soluzioni su misura che interagiscono in modo intelligente con i dati aziendali, risolvono problemi in tempo reale e supportano decisioni strategiche. L’approccio omnichannel consente di integrare questi assistenti in piattaforme diverse (siti web, app, CRM, e-mail, ecc.), garantendo un’esperienza utente coerente e personalizzata. Che si tratti di tutor virtuali per la formazione, assistenti per l’analisi dati o tool per l’automazione di task ripetitivi, le potenzialità sono illimitate. Con l’API di OpenAI, le aziende possono trasformare l’interazione con i clienti e ottimizzare i processi interni, riducendo i costi operativi e aumentando l’efficienza, tutto grazie a un’intelligenza artificiale flessibile, scalabile e pronta per il futuro.
FONTE: OpenAI
