Característica en Beta
container de la API) tiene su propio sandbox, que crea bajo demanda el servicio OpenSandbox incluido en el mismo clúster de Kubernetes.
Los usuarios la ven en el Workspace cuando trabajan con Skills o generan archivos. Los desarrolladores pueden usarla a través de la API; ver Herramienta de ejecución de código.
La ejecución de código está habilitada por defecto en los despliegues estándar de Zylon 1.58. Los operadores pueden controlar su disponibilidad en el chat del Workspace con la siguiente configuración.
Configuración
Ejemplo
Cuando está desactivada
Después de configurarfeatures.codeExecution.enabled: false, ejecuta sudo zylon-cli sync para aplicar el cambio. El chat del Workspace elimina las herramientas de ejecución de código antes de enviar las solicitudes al modelo, incluso cuando una Skill las añadiría. El chat normal y las demás herramientas disponibles siguen funcionando; los pasos de una Skill que requieren ejecutar código no pueden ejecutarse a través de ese flujo de chat.
Cómo funciona
- Un sandbox por hilo. Cada sandbox es un pod en el namespace
opensandbox-runtimes, que se crea cuando el asistente ejecuta código por primera vez en un hilo y se apaga trassessionTTLSecondsde inactividad. - Archivos persistentes. Los archivos subidos, las salidas y los archivos del espacio de trabajo se almacenan en el bucket
sessionsdel almacenamiento de objetos de la plataforma, por lo que sobreviven a los reinicios del sandbox y a las actualizaciones de la plataforma. - Imágenes descargadas previamente. Las imágenes del sandbox se descargan durante la instalación y la actualización, así que no se necesita acceso al registro cuando arranca un sandbox. Esto también funciona en instalaciones airgapped.
Acceso a la red
Los sandboxes no tienen acceso a internet. Por defecto, un sandbox de ejecución de código solo puede acceder a:- DNS.
- La API de Zylon, para que el código del sandbox pueda llamar al modelo con los permisos del usuario que envió la solicitud.
external.opensandbox.codeExecution.internal.services. Cada entrada es un peer de NetworkPolicy de Kubernetes:
Recursos
Por defecto, los sandboxes no tienen límites de CPU ni de memoria. Para limitar el total de recursos que pueden usar los sandboxes, habilita la cuota y el rango de límites para el namespace de los sandboxes:Imágenes del sandbox
La imagen incluye Python 3 con las librerías de datos más habituales (pandas, numpy, matplotlib, openpyxl, python-docx, pypdf, entre otras) y herramientas de línea de comandos como
unzip, rg y sqlite3.
Resolución de problemas
Comprueba los sandboxes que están en ejecución:features.codeExecution.enabled y ejecuta sudo zylon-cli sync después de cambiarlo.
El error code_execution provider is not configured. significa que falta el proveedor de ejecución de código de GPT. Comprueba la configuración del proveedor de GPT y el servicio OpenSandbox; este error no es el resultado esperado de desactivar únicamente el flag del Workspace.