Usare lo strumento code_interpreter
Lo strumento code_interpreter fornisce al modello un runtime Python in cui può generare ed eseguire codice Python.
Qual è lo strumento code_interpreter?
Lo strumento code_interpreter consente ai modelli di intelligenza artificiale generativi di scrivere ed eseguire codice Python in modo dinamico durante una conversazione. Invece di discutere semplicemente di codice o algoritmi, il modello può testare la logica, elaborare i dati e restituire i risultati effettivi dal codice. In questo modo il modello viene trasformato da un pensatore in un doer.
Le funzionalità principali includono:
- Esecuzione dinamica di Python: il modello scrive ed esegue codice Python in un ambiente in modalità sandbox
- Gestione file: caricare, elaborare e scaricare file (CSV, JSON, immagini e così via)
- Analisi dei dati: eseguire calcoli, analisi statistiche e trasformazioni dei dati in tempo reale
- Feedback in tempo reale: il modello vede i risultati dell'esecuzione del codice e può scorrere o correggere gli errori
- Risoluzione dei problemi complessi: affrontare problemi matematici, simulazioni e puzzle logici tramite codice eseguibile
Casi d'uso comuni
| Caso d'uso | Esempio |
|---|---|
| Analisi dei dati | Analizzare un file CSV e generare statistiche di riepilogo |
| Matematica e fisica | Risolvere equazioni differenziali o simulare scenari di fisica |
| Conversione di file | Eseguire la conversione tra formati di dati (CSV JSON ↔ e così via) |
| Prototipazione | Testare algoritmi e idee prima dell'implementazione formale |
Un semplice esempio
Ecco come usare code_interpreter con l'API Risposte OpenAI:
from openai import OpenAI
client = OpenAI(
base_url={openai_endpoint},
api_key={auth_key_or_token}
)
# Get response using the code_interpreter tool
response = client.responses.create(
model={model_deployment},
instructions="You are an AI assistant that provides information. Use the python tool to run code for math problems.",
input="What is the square root of 16?",
tools=[{"type": "code_interpreter",
"container": {"type": "auto"}}]
)
print(response.output_text)
L'output di questo codice è simile al seguente:
The square root of 16 is 4.
Più importante, esaminare i dettagli dell'oggetto risposta restituito dal modello rivela che il risultato è stato calcolato e restituito al modello usando codice Python generato dinamicamente come segue:
import math
# Calculate the square root of 16
square_root = math.sqrt(16)
square_root
Funzionamento dello strumento code_interpreter
Il processo generale per l'uso dello strumento di code_interpreter è:
- Si invia una richiesta: includere code_interpreter nella matrice di strumenti.
- Il modello analizza l'attività: il modello determina se è necessaria l'esecuzione del codice.
- Il modello genera codice: il modello scrive il codice Python per eseguire l'attività.
- Esecuzioni di codice: il codice viene eseguito in un ambiente in modalità sandbox con accesso alle librerie comuni, ad esempio pandas, numpy e matematica.
- Risultati restituiti: il modello riceve l'output e lo incorpora nella risposta.
Procedure consigliate
- Specifica: descrivere chiaramente il formato dei dati e l'output previsto. Molti modelli usano internamente lo strumento python per identificare lo strumento di code_interpreter, quindi usare questo linguaggio nelle istruzioni.
- Fornire contesto: includere le informazioni rilevanti sul dominio nelle richieste
- Convalidare i risultati: esaminare sempre il codice generato dall'intelligenza artificiale per la correttezza prima di usare nell'ambiente di produzione
- Monitorare i costi: l'esecuzione del codice aggiunge token; operazioni complesse possono usare più risorse
- Sfruttare le librerie: pacchetti comuni come Pandas, numpy e matplotlib sono preinstallati
- Gestione degli errori: il modello può visualizzare gli errori e tenterà di correggerli automaticamente
Limitazioni da conoscere
- Le esecuzioni vengono eseguite in un ambiente in modalità sandbox senza accesso alla rete esterna
- Alcune librerie potrebbero non essere disponibili. Informa il modello se una libreria standard non funziona.
- I limiti di timeout si applicano alle operazioni a esecuzione prolungata
- Il codice viene eseguito con vincoli di memoria. I set di dati di grandi dimensioni potrebbero richiedere lo streaming o la suddivisione in blocchi