Usare lo strumento code_interpreter

Completato

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 è:

  1. Si invia una richiesta: includere code_interpreter nella matrice di strumenti.
  2. Il modello analizza l'attività: il modello determina se è necessaria l'esecuzione del codice.
  3. Il modello genera codice: il modello scrive il codice Python per eseguire l'attività.
  4. Esecuzioni di codice: il codice viene eseguito in un ambiente in modalità sandbox con accesso alle librerie comuni, ad esempio pandas, numpy e matematica.
  5. 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