Uso de la herramienta code_interpreter

Completado

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:

  1. Envíe una solicitud: incluya code_interpreter en la matriz de herramientas.
  2. El modelo analiza la tarea: el modelo determina si se necesita la ejecución del código.
  3. El modelo genera código: el modelo escribe código de Python para realizar la tarea.
  4. 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).
  5. 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.