Last chance! 50% off DataCamp Premium
Sale ends in
L'OpenAI Dev Day ha segnato una tappa importante nell'intelligenza artificiale, presentando una suite di servizi IA innovativi, tra cui GPTs, il GPTs App Store, GPT-4 Turbo e la nuova Assistants API.
Questa API offre agli sviluppatori strumenti di IA avanzati per creare assistenti personalizzati in grado di gestire compiti diversi.
In questo tutorial entriamo nel mondo degli Assistants, esplorandone nel dettaglio le capacità, le applicazioni pratiche nei vari settori e fornendo una guida passo passo per implementarli in Python. Seguici mentre affrontiamo le complessità di costruire il tuo assistente IA personalizzato.
Al momento della stesura di questo articolo, l'Assistants API è in beta e il team di sviluppo di OpenAI sta lavorando attivamente per includere più funzionalità; prima di allora, però, vediamo cosa offre l'attuale versione!
Questa sezione approfondisce come funzionano gli Assistants e l'interazione tra i componenti sottostanti.
I due pilastri principali degli Assistants sono i modelli e gli strumenti di OpenAI.

Come funzionano gli Assistants
Ora vediamo i cinque passaggi principali coinvolti nell'implementazione di un Assistant.
Sfruttare la Assistant API può essere un modo potente per integrare l'IA in vari processi aziendali, migliorando l'efficienza, automatizzando compiti noiosi e fornendo risposte più rapide e accurate alle domande degli utenti.
Di seguito cinque casi d'uso convincenti dell'Assistant API nei vari settori.
L'Assistant può fungere da assistente alla programmazione on-demand. Usando il code interpreter, può tradurre snippet di codice da un linguaggio all'altro, supportando lo sviluppo software e rendendo più agevole l'apprendimento di nuovi linguaggi. Questa funzione è particolarmente utile per team che lavorano con più linguaggi o in contesti educativi per insegnare a programmare.
La funzione di retrieval può essere sfruttata per la gestione della conoscenza all'interno delle organizzazioni. Caricando ed elaborando documenti, report e manuali interni, l'Assistant diventa un repository centralizzato di conoscenza. I dipendenti possono interrogarlo per informazioni specifiche, migliorando l'efficienza e riducendo il tempo speso a cercare in grandi insiemi di documenti.
L'Assistant può essere integrato nei sistemi di assistenza clienti. Usando il function calling, può rispondere alle richieste recuperando informazioni da API esterne o database, automatizzando di fatto le risposte alle domande più comuni. Questa integrazione può migliorare l'esperienza del cliente fornendo risposte rapide e accurate e riducendo il carico sul personale umano.
Descrivendo funzioni per l'analisi dei dati, gli utenti possono chiedere all'Assistant di effettuare complesse manipolazioni dei dati e generare report, traducendo richieste in linguaggio naturale in task strutturati di analisi.
I team IT possono usare l'Assistant per automatizzare le operazioni di routine. Definendo funzioni che corrispondono a compiti IT comuni, come diagnostica di sistema, controlli di rete o aggiornamenti software, l'Assistant può eseguirli in risposta ai comandi degli utenti. Questa capacità può ridurre significativamente il tempo che i professionisti IT dedicano alla manutenzione ordinaria, permettendo loro di concentrarsi su problemi più complessi.
Con questa comprensione dell'API di OpenAI, passiamo a un caso d'uso più pratico. Questa sezione ti guida nella creazione di un assistant che recupera conoscenza da file PDF.
Il notebook end-to-end completo è disponibile su DataLab.
Per qualsiasi implementazione tecnica, è meglio fornire un workflow visivo che illustri l'interazione tra i principali componenti dell'applicazione in sviluppo.
Questo workflow evidenzia i cinque passaggi principali dell'implementazione dell'assistant, dal caricamento dei file alla generazione della risposta finale.

Cinque passaggi principali del workflow di knowledge retrieval
Gli strumenti principali necessari per riprodurre con successo i risultati di questo tutorial sono:
Il primo passo è ottenere la OpenAI KEY, che consente l'accesso al modello DALL-E 3. I passaggi principali sono illustrati di seguito:
Quattro passaggi principali per creare una OpenAI KEY
I quattro passaggi sopra sono autoesplicativi. È comunque importante creare un account dal sito ufficiale di OpenAI.
Puoi esplorare ulteriormente l'OpenAI API con la nostra Guida per principianti all'OpenAI API: tutorial pratico e best practice. Ti introduce all'OpenAI API, ai suoi casi d'uso, a un approccio hands-on e a tutte le best practice da seguire.
Una volta ottenuta la KEY, assicurati di non condividerla con nessuno. La chiave deve rimanere privata. Poi impostala come variabile d'ambiente come segue per poterla utilizzare:
import os
OPENAI_API_KEY= "<YOUR PRIVATE KEY>"
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
La funzione helper seguente sfrutta la funzione "create" per caricare automaticamente sul proprio account OpenAI il file con cui gli utenti vogliono interagire.
La funzione "create" ha due parametri principali:
def upload_file(file_path):
# Upload a file with an "assistants" purpose
file_to_upload = client.files.create(
file=open(file_path, "rb"),
purpose='assistants'
)
return file_to_upload
La funzione helper viene infine utilizzata per avviare il processo di caricamento del paper sui transformer presente nella cartella data.
transformer_paper_path = "./data/transformer_paper.pdf"
file_to_upload = upload_file(transformer_paper_path)
Dopo l'esecuzione corretta della funzione, il file transformer_paper.pdf viene caricato ed è visibile dalla scheda Files, come mostrato di seguito.

Paper sui transformer caricato sull'account OpenAI
La creazione dell'assistant avviene usando la funzione create del modulo client.beta.assistants e richiede cinque parametri principali:
La funzione helper create_assistant combina tutte queste informazioni per creare l'assistant come illustrato di seguito:
def create_assistant(assistant_name,
my_instruction,
uploaded_file,
model="gpt-4-1106-preview"):
my_assistant = client.beta.assistants.create(
name = assistant_name,
instructions = my_instruction,
model="gpt-4-1106-preview",
tools=[{"type": "retrieval"}],
file_ids=[uploaded_file.id]
)
return my_assistant
Ora possiamo eseguire la funzione per creare l'assistant usando l'istruzione e il nome dell'assistant:
inst="You are a polite and expert knowledge retrieval assistant. Use the documents provided as a knowledge base to answer questions"
assistant_name="Scientific Paper Assistant"
my_assistant = create_assistant(assistant_name, inst, uploaded_file)
Una volta creato l'assistant, il passo successivo naturale è avviare un thread di interazione usando il messaggio o la richiesta degli utenti.
Il thread e il messaggio sono creati usando le funzioni create dei moduli client.beta.threads e client.beta.threads.messages rispettivamente.
Queste due funzionalità sono combinate nella funzione helper initiate_interaction.
def initiate_interaction(user_message, uploaded_file):
my_thread = client.beta.threads.create()
message = client.beta.threads.messages.create(thread_id=my_thread.id,
role="user",
content=user_message,
file_ids=[uploaded_file.id]
)
return my_thread
Si può avviare un'interazione a partire dalla variabile user_message:
user_message = "Why do authors use the self-attention strategy in the paper?"
my_thread = initiate_interaction(user_message, uploaded_file)
Dal thread sopra, è possibile attivare l'assistant per fornire una risposta al messaggio dell'utente. L'azione di attivazione è definita nella funzione helper trigger_assistant e la risposta è fornita dalla variabile response.
def trigger_assistant():
run = client.beta.threads.runs.create(
thread_id = my_thread.id,
assistant_id = my_assistant.id,
)
trigger_assistant()
messages = client.beta.threads.messages.list(
thread_id = my_thread.id
)
response = messages.data[0].content[0].text.value
response
La seguente risposta viene generata dopo l'esecuzione corretta del codice sopra.

Risposta dell'assistant al messaggio dell'utente
Questa risposta è esattamente quanto riportato dagli autori come risposta alla domanda a pagina 6.

Passaggio che menziona la risposta dal paper sui transformer
Quando integri la Assistant API in un progetto, è importante attenersi alle best practice per garantire prestazioni ottimali e una buona esperienza utente. Ecco alcuni punti chiave da considerare.
In sintesi, questo articolo ha esplorato l'Assistants API, evidenziando come funziona e come può essere utilizzata in diversi settori. Abbiamo iniziato presentando l'API e le sue funzioni chiave, ponendo le basi per una comprensione più profonda.
Abbiamo poi esaminato le funzionalità specifiche dell'Assistants API e discusso come possano essere applicate in vari ambiti aziendali, mostrando la sua ampia utilità.
Abbiamo anche fornito una guida passo passo per iniziare a usare l'Assistants API, semplificando l'impostazione in base alle tue esigenze.
Inoltre, abbiamo condiviso alcune importanti best practice da tenere a mente durante l'uso dell'API, così da ottenere il massimo.
In breve, l'Assistants API è uno strumento versatile e prezioso, adattabile a molti utilizzi e in grado di offrire benefici significativi a chi impara a usarla in modo efficace.
Vuoi fare un salto di qualità con le API di OpenAI e adottare un approccio più creativo? La nostra Guida completa all'API di DALL-E 3 ti aiuterà a scoprire il potere trasformativo dell'API DALL-E 3, coprendone le funzionalità principali, le applicazioni nei vari settori e i consigli per sprigionare il tuo potenziale creativo.
Se sei alle primissime armi, perché non iniziare con il nostro corso Working with the OpenAI API.
Un data scientist poliedrico che ama condividere le proprie conoscenze e restituire valore agli altri, Zoumana è un content creator su YouTube e un top writer tech su Medium. Trova soddisfazione nel parlare in pubblico, programmare e insegnare. Zoumana ha due lauree magistrali: la prima in informatica con specializzazione in Machine Learning conseguita a Parigi, Francia, e la seconda in Data Science alla Texas Tech University negli Stati Uniti. Ha iniziato la sua carriera come Software Developer presso Groupe OPEN in Francia, per poi passare a IBM come Machine Learning Consultant, dove ha sviluppato soluzioni di IA end-to-end per compagnie assicurative. Successivamente, è entrato in Axionable, la prima startup di Sustainable AI con sede a Parigi e Montréal. Lì ha lavorato come Data Scientist e ha implementato prodotti di IA, principalmente casi d’uso di NLP, per clienti in Francia, Montréal, Singapore e Svizzera. Inoltre, ha dedicato il 5% del suo tempo ad attività di Ricerca e Sviluppo. Attualmente lavora come Senior Data Scientist presso IFC - World Bank Group.
Scopri di più su OpenAI
Programma
Corso
Corso

blog
Abid Ali Awan
15 min

blog
Abid Ali Awan
10 min
blog
Tim Lu
12 min