Consultez les exemples de gestion par l’application et par webhook dans le Cookbook OpenAI.
Consultez Bacs à sable autohébergés pour connaître la configuration de l’exécuteur et les exigences de connexion.
Choisissez un mode de provisionnement :
- Gestion par l’application : Suivez ce guide pour démarrer et arrêter les bacs à sable depuis votre application.
- Gestion par webhook : Déployez un gestionnaire qui démarre ou reconnecte les bacs à sable à partir des webhooks OpenAI.
Consultez Cycle de vie du bac à sable pour comparer les deux modes.
Avant de commencer
Vous avez besoin d’une clé API de projet OpenAI, d’une clé API et d’un espace de travail Blaxel, ainsi que du package Codex CLI.
Définissez BL_API_KEY et BL_WORKSPACE, puis utilisez OPENAI_API_KEY pour les requêtes de l’application. Attribuez à OPENAI_EXECUTOR_API_KEY une clé d’environnement et transmettez uniquement cette clé au bac à sable via CODEX_API_KEY.
Choisissez la région du bac à sable dans votre code de provisionnement. Utilisez us-was-1 si vous avez besoin de l’option de persistance Agent Drive présentée ci-dessous.
1. Configurez l’environnement Blaxel
Créez une session auto-hébergée et enregistrez son identifiant d’environnement. Utilisez le SDK ou l’API Blaxel pour créer un bac à sable isolé avec le répertoire de travail configuré. Installez Codex CLI dans le bac à sable, puis démarrez son exécuteur avec cet identifiant d’environnement et la clé d’environnement.
L’image Node de Blaxel utilise Alpine Linux : installez donc ripgrep avec apk. Transmettez la clé d’environnement via CODEX_API_KEY uniquement au processus de l’exécuteur. Définissez keep_alive=True pour empêcher la mise à l’échelle à zéro du bac à sable pendant l’exécution de l’exécuteur. Des délais maximaux pour la configuration, l’exécuteur et le bac à sable empêchent les ressources abandonnées de continuer à fonctionner indéfiniment.
Pour une utilisation régulière, construisez une image Blaxel avec Codex et ripgrep déjà installés afin que le bac à sable puisse se connecter plus rapidement.
2. Exécutez la session
Utilisez les exemples HTTP de la page Exécutez et poursuivez des sessions pour envoyer des données d’entrée et recevoir le résultat en streaming une fois l’exécuteur Blaxel connecté. Une fois le travail terminé, supprimez la session et arrêtez séparément le bac à sable du fournisseur.
Démarrez le bac à sable avant d’envoyer des données d’entrée. Le tour attend que l’environnement se connecte, et la session signale la connexion par agent.session.environment.connected dans le flux d’événements.
Utilisez agent.session.turn.completed pour identifier un tour réussi. Un tour ayant échoué ou ayant été annulé peut aussi être suivi de agent.session.idle : ne considérez donc pas une session inactive comme la preuve que le tour a réussi.
Facultatif : conservez les fichiers entre les sessions
Utilisez Blaxel Agent Drive pour conserver les fichiers d’un bac à sable ou d’une session à l’autre. Montez le même disque dans chaque bac à sable pour partager les fichiers ; Agent Drive nécessite la région us-was-1 et ne transfère ni l’historique de la conversation ni l’état de la session.
Références
- Consultez la documentation des bacs à sable Blaxel
- Consultez le SDK Python de Blaxel
- Consultez le SDK TypeScript de Blaxel