Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

API de Code Interpreter

Ejecute código de forma segura y gestione archivos sin problemas con la API de Code Interpreter de LibreChat

Introducción

La API de Code Interpreter de LibreChat proporciona una forma segura y sencilla de ejecutar código y gestionar archivos a través de una interfaz de API simple. Ya sea que la utilices a través de los Agents de LibreChat o la integres directamente en tus aplicaciones, la API ofrece un potente entorno de sandbox para ejecutar código en múltiples lenguajes de programación.

Demostración de Code Interpreter

Código abierto

El Code Interpreter de LibreChat funciona con ClickHouse/code-interpreter, un servicio de ejecución de código en entorno aislado de código abierto (Apache 2.0). Aloja el servicio por tu cuenta y apunta LibreChat a tu propia instancia.

Primeros pasos

  1. Despliegue el servicio code-interpreter (Docker Compose o Helm, consulte el README del repositorio)
  2. Apunte LibreChat hacia él con las variables de entorno LIBRECHAT_CODE_BASEURL y LIBRECHAT_CODE_API_KEY
  3. Comience a ejecutar código y generar archivos de forma segura a través de los Agents de LibreChat o el botón "Run Code"

Características clave

Idiomas admitidos

Ejecutar código en múltiples lenguajes de programación:

  • Python, Node.js (JS/TS), Go, C/C++, Java, PHP, Rust, Fortran, Rscript

Gestión de archivos sin interrupciones

  • Subir archivos para su procesamiento
  • Descargar resultados generados
  • Gestión segura de archivos
  • Organización de archivos basada en sesiones

Seguridad y Conveniencia

  • Entorno de ejecución aislado y seguro (sandboxed)
  • Modos de aislamiento fuerte (NsJail o microVM mediante libkrun)
  • No se requiere configuración local para los usuarios finales
  • Almacenamiento de archivos aislado basado en sesiones

Programmatic Tool Calling

Programmatic Tool Calling permite que los agentes de LibreChat enruten herramientas MCP seleccionadas a través del sandbox de Code Interpreter. En lugar de pedirle al modelo que llame a cada herramienta directamente, LibreChat proporciona una herramienta de orquestación respaldada por Code Interpreter; el código de sandbox generado puede llamar a stubs de herramientas registrados, utilizar bucles y condicionales, procesar resultados intermedios y devolver una respuesta final.

El sandbox todavía no recibe acceso general a la red. Las llamadas a herramientas se gestionan a través del Code Interpreter Tool Call Server y el mapa de herramientas registrado de LibreChat, por lo que solo se pueden llamar a las herramientas disponibles para el agente.

Uso de la API

En LibreChat

La API tiene soporte de primera clase en LibreChat a través de estos métodos principales:

  1. Agentes de IA: Habilite el Code Interpreter en la configuración de su agente para permitirle ejecutar código y procesar archivos automáticamente.

  2. Ejecución manual: Utilice el botón "Run Code" en los bloques de código dentro de la interfaz de chat, como se muestra aquí:

  3. Programmatic Tool Calling: Habilite la capacidad programmatic_tools y marque las herramientas MCP seleccionadas como Programmatic para que los agentes puedan orquestar dichas herramientas desde código en entorno aislado (sandboxed).

Intérprete de código en LibreChat

Configurar la API key

  • Configuración por usuario: ingrese su clave de API en LibreChat cuando se le solicite (utilizando los métodos anteriores)
  • Configuración global: utilice la variable de entorno LIBRECHAT_CODE_API_KEY en el archivo .env de su proyecto (proporciona acceso a todos los usuarios)

Integración directa de API

La API de Code Interpreter puede integrarse en cualquier aplicación utilizando una autenticación simple mediante API key:

  1. Despliega tu propia instancia de code-interpreter y crea una API key
  2. Incluye la clave API en tus solicitudes utilizando el encabezado x-api-key

URL base autoalojada

Establezca la variable de entorno LIBRECHAT_CODE_BASEURL para apuntar LibreChat a su instancia de code-interpreter autohospedada, junto con una clave de API generada en ese despliegue, utilizada de la misma manera que se indicó anteriormente.

Funcionalidad principal

Ejecución de código

  • Ejecutar fragmentos de código en lenguajes compatibles
  • Recibir salida stdout/stderr
  • Obtener estadísticas de ejecución (uso de memoria, tiempo de CPU)
  • Gestionar argumentos del programa
  • Acceder al estado de ejecución y a los resultados

Operaciones de archivos

  • Subir archivos de entrada
  • Descargar resultados generados
  • Obtenga una vista previa de los artefactos de Office, CSV, texto y similares a PDF generados en línea cuando LibreChat pueda extraerlos/renderizarlos de forma segura
  • Listar archivos disponibles
  • Eliminar archivos innecesarios
  • Gestionar sesiones de archivos

Las vistas previas de artefactos generados están limitadas en tamaño intencionalmente. Configure FILE_PREVIEW_MAX_EXTRACT_BYTES en el archivo .env de LibreChat para cambiar el límite de tamaño del archivo de origen para la extracción de vistas previas en línea; los archivos más grandes seguirán estando disponibles para su descarga.

Limitaciones

  • El código no puede acceder a la red
  • Solo se pueden generar 10 archivos por ejecución
  • Los límites de recursos (RAM por ejecución, tamaño de carga de archivos y cuotas de solicitud) dependen de cómo aprovisione y configure su despliegue.

Casos de uso

  • Pruebas de código: Pruebe fragmentos de código en múltiples lenguajes
  • Procesamiento de archivos: Transforme y analice archivos mediante programación
  • Aplicaciones de IA: Ejecute código generado por IA de forma segura
  • Herramientas de desarrollo: Cree entornos de programación interactivos
  • Lógica del objetivo: Verificar la lógica y la exactitud del código, mejorando los modelos de IA

Código abierto y autoalojamiento

El servicio de Code Interpreter es de código abierto bajo la licencia Apache 2.0 en ClickHouse/code-interpreter. Mantener la ejecución de código como un servicio separado permite que la aplicación principal de LibreChat sea ligera: solo despliegas la infraestructura de sandbox cuando la necesitas, y puedes escalarla independientemente de la aplicación de chat.

El servicio se ejecuta como un conjunto de componentes escalables de forma independiente (una puerta de enlace API, trabajadores en entorno aislado y un servidor de archivos) y admite modos de aislamiento robustos (NsJail o una microVM a través de libkrun) para que pueda ejecutar código no confiable de manera segura. Consulte el README del repositorio para obtener instrucciones de despliegue con Docker Compose y Helm.


Conclusión

La API de Code Interpreter proporciona una forma segura y conveniente de ejecutar código y gestionar archivos en un entorno aislado (sandbox). Ya sea que la utilices a través de los Agents de LibreChat o la integres directamente en tus aplicaciones, ofrece una solución robusta para las necesidades de ejecución de código.

Para obtener especificaciones técnicas detalladas, guías de despliegue y la referencia de la API, consulte el code-interpreter repository.

#LibreChat #CodeExecution #API #Development

¿Qué te parece esta guía?