Consulta los ejemplos de gestión desde la aplicación y gestión mediante webhooks en el OpenAI Cookbook.
Elige un modo de aprovisionamiento:
- Gestión desde la aplicación: tu aplicación crea y conecta directamente el sandbox de E2B.
- Gestión mediante webhooks: despliega un controlador que inicie o vuelva a conectar los sandboxes al recibir webhooks de OpenAI.
Consulta Ciclo de vida del sandbox para comparar los dos modos.
Antes de empezar
Configura E2B_API_KEY y usa OPENAI_API_KEY para las solicitudes de la aplicación. Configura OPENAI_EXECUTOR_API_KEY con una clave de entorno y pasa únicamente esa clave al sandbox como CODEX_API_KEY.
Gestión mediante webhooks
Implementa un controlador que verifique los webhooks de OpenAI y aprovisione un worker de E2B independiente para cada sesión. Sigue las instrucciones de Desplegar y conectar un controlador para configurar las credenciales, registrar el punto de acceso y verificar las firmas.
Guarda de forma persistente la asociación entre cada sesión y su sandbox. Cuando el controlador reciba una solicitud de conexión, haz que reanude el worker si está en pausa o que lo reemplace si se eliminó. Al pausar el worker, se conservan sus archivos. El worker de reemplazo no conserva los archivos del anterior. Configura los tiempos máximos de ejecución del controlador y de los workers, y elimina el webhook de OpenAI cuando dejes de usar el controlador.
Gestión desde la aplicación
Usa el SDK o la API de E2B desde tu aplicación para administrar el sandbox:
- Crea una sesión autoalojada y guarda el ID de su entorno.
- Crea un sandbox aislado de E2B con el directorio de trabajo de la sesión e instala la CLI de Codex en el sandbox.
- Inicia el ejecutor en el sandbox con el ID y la clave del entorno.
- Sigue las instrucciones de Ejecutar y continuar sesiones para enviar datos de entrada y comprobar el resultado del turno.
- Elimina la sesión y detén el sandbox de E2B cuando termines.
Configura la duración del sandbox por separado del tiempo máximo de ejecución del comando del ejecutor. Un comando sin límite de tiempo no mantiene el sandbox en ejecución una vez que se agota su tiempo de vida.
Referencias
- Consulta la documentación de E2B
- Consulta el SDK de E2B para Python
- Consulta el SDK de E2B para TypeScript