Note preliminari
Contenuto fornito “as-is”, senza garanzie. Prima di usarlo su dataset reali:
- Lavorate su una copia del dataset in una directory di test, non sull’originale.
- Backup del dataset prima di ogni sessione: Open Interpreter esegue codice reale e può sovrascrivere o cancellare file.
- Non inserite secrets (DB connection string, token API, chiavi di licenza) nei prompt.
- I log di interpreter (
~/.config/open-interpreter/nelle versioni correnti) includono l’output dei comandi, dati campione inclusi: tutelateli come tutelereste un notebook Jupyter. - Per dataset soggetti a consensi etici o clausole di data use agreement, usate esclusivamente un modello locale via Ollama: cloud significa trasmissione a terzi.
Cosa è Open Interpreter
Open Interpreter (openinterpreter.com) è un tool Python rilasciato su PyPI in v0.0.1 il 14 luglio 2023 da Killian Lucas, licenza AGPL-3.0. L’idea è semplice: un REPL in cui descrivete un task in linguaggio naturale e l’LLM genera codice (Python, shell, JavaScript) che viene eseguito localmente sulla macchina dell’utente. È esplicitamente concepito per lavori di data exploration, automazione locale, scripting ad-hoc.
Per un gruppo di ricerca il valore immediato è la riduzione del tempo speso a ricordare sintassi di pandas, matplotlib, scipy per task esplorativi che non giustificano la scrittura di uno script permanente.
Caso d’uso: prima esplorazione di un dataset tabellare
Scenario: un ricercatore riceve un dataset da un collaboratore — un file measurements.parquet di 200 MB, schema non del tutto documentato. Vuole in un’ora avere: conteggi per categoria, distribuzioni principali, valori anomali evidenti, e una prima pulizia documentata.
1. Ambiente isolato
python3 -m venv ~/.venvs/interpreter
source ~/.venvs/interpreter/bin/activate
pip install open-interpreter
interpreter --version
Non installate mai Open Interpreter globalmente nel Python di sistema: esegue codice e può installare dipendenze a sua discrezione. Il virtualenv isola il blast radius.
2. Copia di lavoro del dataset
mkdir -p ~/research/measurements-work
cp /data/raw/measurements.parquet ~/research/measurements-work/
cd ~/research/measurements-work
# Rendete il file originale sola-lettura per sicurezza:
chmod 444 measurements.parquet
Se l’agente propone un “rename” o un “fix tipi inline” sul file, il read-only lo blocca. L’operatore decide consapevolmente se produrre un file derivato (measurements.cleaned.parquet).
3. Avvio in modalità locale
# Ollama deve essere già in esecuzione con un modello capace:
ollama pull codellama:13b-instruct # oppure llama2:13b-chat, wizardcoder, ecc.
interpreter --local
# Nella prompt di selezione: Ollama → codellama:13b-instruct
L’opzione --local (nome e sintassi possono variare tra release) indirizza l’agente a un endpoint locale senza chiavi cloud.
4. Prompt per l’esplorazione
Nel REPL:
- “Leggi
measurements.parquetcon pandas in un dataframedf. Mostradf.info()edf.head(10).” - “Per ogni colonna numerica calcola min, max, media, mediana, e numero di NaN. Restituisci una tabella.”
- “Per la colonna
categorymostra il conteggio dei valori e un bar chart salvato comecategory_counts.pngnella directory corrente.” - “Identifica righe in cui
temperature_cè fuori dal range [-40, 150] e salva inoutliers.csv.”
Ogni istruzione genera un blocco di codice che interpreter propone. In default chiede conferma prima di eseguire. Mantenete la conferma abilitata: interpreter -y (auto-yes) va evitato finché non sapete cosa state esaminando.
5. Persistenza delle operazioni
Al termine della sessione, l’operatore può chiedere:
“Esporta tutto il codice Python eseguito finora in un file exploration_2023-09-10.py, ordinato, con commenti che riassumono ogni blocco.”
Il file risultante è un artefatto riproducibile. Inseritelo in un repo git (o nel dataset di accompagnamento del paper) insieme al category_counts.png e agli outliers.csv: il lavoro dell’agente diventa un exploratory notebook controllabile.
Limiti e avvertenze
- Open Interpreter esegue codice reale: una prompt ambigua può generare un
os.remove, undf.to_parquetche sovrascrive l’originale, o unpip installindesiderato. Il virtualenv + dataset read-only sono difese minime, non esaustive. - Il modello locale ha limiti: i modelli open disponibili a metà 2023 (Code Llama, Llama 2, WizardCoder) restano lontani da un frontier model sulle librerie di data science più di nicchia. Per analisi statistiche complesse conviene una seconda revisione umana esperta.
- Versioni che cambiano: il progetto è evoluto rapidamente, con cambi di CLI, default provider, sandbox. Fissate la versione (
pip install open-interpreter==<ver>) nelle sessioni che devono essere riproducibili a distanza di tempo. - Non un sostituto di un notebook Jupyter: per analisi estese o condivise il notebook rimane l’artefatto più leggibile. Interpreter è uno strumento di primo sondaggio rapido, non di reporting.
Link: openinterpreter.com — github.com/OpenInterpreter/open-interpreter
