Uso de la herramienta code_interpreter
La herramienta code_interpreter proporciona al modelo un entorno de ejecución de Python en el que puede generar y ejecutar código de Python.
¿Cuál es la herramienta de code_interpreter?
La herramienta code_interpreter permite que los modelos de IA generativos escriban y ejecuten código de Python dinámicamente durante una conversación. En lugar de simplemente analizar el código o los algoritmos, el modelo puede probar su lógica, procesar datos y devolver resultados reales del código. Esto transforma el modelo de un pensador en un hacedor.
Entre las características clave se incluyen:
- Ejecución dinámica de Python: el modelo escribe y ejecuta código de Python en un entorno de espacio aislado.
- Control de archivos: carga, proceso y descarga de archivos (CSV, JSON, imágenes, etc.)
- Análisis de datos: realizar cálculos, análisis estadísticos y transformaciones de datos sobre la marcha
- Comentarios en tiempo real: el modelo ve los resultados de la ejecución del código y puede iterar o corregir errores.
- Solución de problemas complejos: Abordar problemas matemáticos, simulaciones y rompecabezas lógicos mediante código ejecutable
Casos de uso comunes
| Caso de uso | Ejemplo |
|---|---|
| Análisis de datos | Análisis de un archivo CSV y generación de estadísticas de resumen |
| Matemáticas y Física | Resolver ecuaciones diferenciales o simular escenarios de física |
| Conversión de archivos | Conversión entre formatos de datos (CSV JSON ↔, etc.) |
| Creación de prototipos | Probar algoritmos e ideas antes de la implementación formal |
Un ejemplo sencillo
Aquí se muestra cómo usar code_interpreter con la API de respuestas de 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)
La salida de este código es similar a la siguiente:
The square root of 16 is 4.
Lo más importante es que inspeccionar los detalles del objeto de respuesta devuelto por el modelo revela que el resultado se calculó y devolvió al modelo mediante código python generado dinámicamente de la siguiente manera:
import math
# Calculate the square root of 16
square_root = math.sqrt(16)
square_root
Funcionamiento de la herramienta code_interpreter
El proceso general para usar la herramienta code_interpreter es:
- Envíe una solicitud: incluya code_interpreter en la matriz de herramientas.
- El modelo analiza la tarea: el modelo determina si se necesita la ejecución del código.
- El modelo genera código: el modelo escribe código de Python para realizar la tarea.
- Ejecución de código: el código se ejecuta en un entorno de espacio aislado con acceso a bibliotecas comunes (por ejemplo, pandas, numpy y math).
- Resultados devueltos: el modelo recibe la salida e lo incorpora en su respuesta.
procedimientos recomendados
- Ser específico: describa claramente el formato de datos y la salida esperada. Muchos modelos usan internamente la herramienta python para identificar la herramienta code_interpreter, por lo que deberías usar este lenguaje en tus instrucciones.
- Proporcionar contexto: incluya los conocimientos de dominio pertinentes en las solicitudes.
- Validar los resultados: revise siempre el código generado por ia para comprobar la exactitud antes de usarlo en producción.
- Supervisar los costos: la ejecución del código agrega tokens; las operaciones complejas pueden usar más recursos
- Sacar provecho de las bibliotecas: los paquetes comunes como pandas, numpy y matplotlib están preinstalados.
- Control de errores: el modelo puede ver errores e intentará corregirlos automáticamente.
Limitaciones sobre las que conocer
- Las ejecuciones se ejecutan en un entorno de espacio aislado sin acceso a la red externa
- Es posible que algunas bibliotecas no estén disponibles; informar al modelo si se produce un error en una biblioteca estándar
- Los límites de tiempo de espera se aplican a las operaciones de ejecución prolongada
- El código se ejecuta con restricciones de memoria: es posible que los conjuntos de datos masivos necesiten streaming o fragmentación.