Veja os exemplos de gerenciamento pelo aplicativo e por webhooks no OpenAI Cookbook.
Escolha um modo de provisionamento:
- Gerenciado pelo aplicativo: Seu aplicativo cria e conecta o sandbox E2B diretamente.
- Gerenciado por webhooks: Implante um manipulador que inicia ou reconecta sandboxes a partir de webhooks da OpenAI.
Consulte Ciclo de vida do sandbox para comparar os dois modos.
Antes de começar
Defina E2B_API_KEY e use OPENAI_API_KEY para as requisições do aplicativo. Defina OPENAI_EXECUTOR_API_KEY como uma chave de ambiente e passe apenas essa chave para o sandbox como CODEX_API_KEY.
Gerenciado por webhooks
Implemente um controlador que verifica os webhooks da OpenAI e provisiona um processo de execução E2B separado para cada sessão. Siga as instruções em Implante e conecte um manipulador para configurar credenciais, registrar o endpoint e verificar assinaturas.
Armazene de forma persistente o mapeamento entre sessões e sandboxes. Ao receber uma solicitação de conexão, retome um processo de execução pausado ou substitua um que tenha sido excluído. A pausa preserva os arquivos; a substituição, não. Defina limites de tempo de execução para o controlador e os processos de execução e remova o webhook da OpenAI quando parar de usar o controlador.
Gerenciado pelo aplicativo
Use o SDK ou a API do E2B no seu aplicativo para gerenciar o sandbox:
- Crie uma sessão auto-hospedada e salve o ID do ambiente dela.
- Crie um sandbox E2B isolado com o diretório de trabalho da sessão e instale o Codex CLI nele.
- Inicie o executor no sandbox usando o ID e a chave do ambiente.
- Siga as instruções em Execute e continue sessões para enviar dados de entrada e verificar o resultado do turno.
- Exclua a sessão e pare o sandbox E2B quando terminar.
Configure o tempo de vida do sandbox separadamente do limite de tempo do comando do executor. Um comando sem limite de tempo não mantém um sandbox expirado em execução.
Referências
- Leia a documentação do E2B
- Consulte o SDK do E2B para Python
- Consulte o SDK do E2B para TypeScript