Accueil / Articles

Codex CLI via le portail LiteLLM sur Bedrock Mantle

Diriger le Codex CLI via un gateway LiteLLM vers Amazon Bedrock Mantle afin d’accéder aux modèles OpenAI, avec des fonctionnalités de contrôle du gateway, des alias de modèles et des paramètres de fonctionnement par défaut raisonnables.

Éditeur : REACTAPP.TOP8 min de lecture1907 mots

Sources: Using OpenAI Codex CLI with LiteLLM AI Gateway and Amazon Bedrock Mantle

Ce guide reconstitue le parcours allant des matières premières à un système fonctionnel pour l’utilisation de OpenAI Codex CLI avec LiteLLM AI Gateway et Amazon Bedrock Mantle. L’accent est mis sur des étapes opérationnelles, des vérifications explicites, ainsi que du code que vous pouvez intégrer directement dans un dépôt sans devoir deviner son intention. Pour une vue d’ensemble, définissez les entrées, le responsable de chaque étape et les critères d’arrêt avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu, sans avoir à deviner l’état caché. Documentez à la fois le parcours normal et les scénarios de récupération. Les tentatives répétées, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’une mise en forme ultérieure.

Soutien AWS pour OpenAI

Pour le support AWS pour OpenAI, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables à des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un pipeline embrouillé. Fixez les versions des dépendances et enregistrez le digest de l’image ayant exécuté la démonstration. La reproductibilité vaut mieux que les connaissances internes au groupe.

Accéder à d’autres modèles OpenAI

Pour accéder à d’autres modèles OpenAI, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Nommez les artefacts, définissez des vérifications de succès et refusez toute exécution partielle silencieuse. Fixez les versions des dépendances et enregistrez le digest de l’image ayant exécuté la démonstration. La reproductibilité prime sur les connaissances empiriques.

Installer Codex CLI

Pour installer Codex CLI, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût des jetons ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés. Fixez les versions des dépendances et enregistrez le digest de l’image ayant exécuté la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe restreint. Pour installer Codex CLI, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez ensemble le parcours normal et les procédures de récupération. Les tentatives de répétition, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations apportées ultérieurement.

curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --version # currently codex-cli 0.142.5

Vérifier que LiteLLM est en cours d’exécution

Pour vérifier que LiteLLM est en cours d’exécution, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables à des scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Ajoutez un test de fumée qui met à l’épreuve le chemin critique dans le CI en utilisant des fixtures, et non des API payantes en temps réel, chaque fois que le budget le permet.

export LITELLM_DEMO_CLIENT_KEY="sk-your-litellm-virtual-key"
curl -fsS "http://localhost:4000/models" \
  -H "Authorization: Bearer $LITELLM_DEMO_CLIENT_KEY" \
| jq '[.data[]
  | select(.id | contains("openai"))
  | {id, max_input_tokens, max_output_tokens}]'

Fenêtres de contexte plus petites

Pour des fenêtres de contexte plus restreintes, définissez les entrées, le responsable de l’étape et les critères de sortie avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Donnez des noms aux artefacts, définites des vérifications de succès et refusez les terminations partielles silencieuses. Ajoutez un test de fumée qui met en œuvre le chemin critique dans l’CI à l’aide de fichiers de configuration, et non d’API payantes en ligne, chaque fois que le budget le permet.

Utilisation de Bedrock Mantle versus LiteLLM

Pour l’utilisation de Bedrock Mantle par rapport à LiteLLM, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés. Ajoutez un test de fumée qui met en œuvre le parcours critique dans les processus CI à l’aide de fichiers de configuration, et non d’API payantes en ligne, dès que le budget le permet. Pour l’utilisation de Bedrock Mantle par rapport à LiteLLM, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez conjointement le parcours optimal et les procédures de récupération. Les tentatives de réexécution, les contrôles humains et la gestion des messages non traités font partie intégrante du produit, et non d’améliorations apportées ultérieurement.

model_provider = "amazon-bedrock"
model = "openai.gpt-5.5"
export AWS_BEARER_TOKEN_BEDROCK="<your-bedrock-api-key>"
export AWS_REGION="us-east-2"

Créer un profil Codex LiteLLM

Pour créer un profil Codex LiteLLM, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Rédigez un petit manuel d’utilisation : comment rotationner les clés, comment vider la file d’attente, comment annuler la dernière ingestion.

CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
mkdir -p "$CODEX_HOME"

cat > "$CODEX_HOME/litellm.config.toml" <<EOF
model = "bedrock-mantle-openai-gpt-5-4"
model_provider = "litellm"
model_catalog_json = "$CODEX_HOME/model-catalogs/litellm.json"

[model_providers.litellm]
name = "LiteLLM"
base_url = "http://localhost:4000"
env_key = "LITELLM_DEMO_CLIENT_KEY"
wire_api = "responses"
EOF
wire_api = "responses"

Ajouter des métadonnées de modèle pour les alias LiteLLM

Pour ajouter des métadonnées de modèle aux alias LiteLLM, définissez les entrées, le responsable de l’étape et les critères de fin avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Nommez les artefacts, définissez des vérifications de succès et refusez toute complétion partielle silencieuse. Rédigez un petit manuel d’utilisation : comment rotationner les clés, comment vider la file d’attente, comment annuler la dernière ingestion.

CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
mkdir -p "$CODEX_HOME/model-catalogs"
jq '{
  models: [
    (.models[]
      | select(.slug == "gpt-5.4")
      | .slug = "bedrock-mantle-openai-gpt-5-4"
      | .display_name = "LiteLLM Bedrock GPT-5.4"
      | .description = "LiteLLM alias for GPT-5.4 through Bedrock Mantle."
      | .upgrade = null
      | .availability_nux = null
      | .max_context_window = .context_window),
    (.models[]
      | select(.slug == "gpt-5.5")
      | .slug = "bedrock-mantle-openai-gpt-5-5"
      | .display_name = "LiteLLM Bedrock GPT-5.5"
      | .description = "LiteLLM alias for GPT-5.5 through Bedrock Mantle."
      | .upgrade = null
      | .availability_nux = null)
  ]
}' "$CODEX_HOME/models_cache.json" > "$CODEX_HOME/model-catalogs/litellm.json"

Optionnel : mais vous voulez GPT-5.4 mini

Pour optionnel : mais si vous souhaitez utiliser GPT-5.4 mini, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût en tokens ou en requêtes à côté des résultats fonctionnels. Une visibilité précoce du coût évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés. Rédigez un petit manuel d’utilisation : comment rotationner les clés, comment vider la file d’attente, comment revenir en arrière après une dernière ingestion. Pour optionnel : mais si vous souhaitez utiliser GPT-5.4 mini, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Documentez à la fois le parcours normal et les procédures de récupération. Les tentatives de répétition, les contrôles humains et la gestion des messages échoués font partie intégrante du produit, et non d’améliorations ultérieures.

CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
mkdir -p "$CODEX_HOME/model-catalogs"
jq '{
  models: [
    (.models[]
      | select(.slug == "gpt-5.4")
      | .slug = "bedrock-mantle-openai-gpt-5-4"
      | .display_name = "LiteLLM Bedrock GPT-5.4"
      | .description = "LiteLLM alias for GPT-5.4 through Bedrock Mantle."
      | .upgrade = null
      | .availability_nux = null
      | .max_context_window = .context_window),
    (.models[]
      | select(.slug == "gpt-5.5")
      | .slug = "bedrock-mantle-openai-gpt-5-5"
      | .display_name = "LiteLLM Bedrock GPT-5.5"
      | .description = "LiteLLM alias for GPT-5.5 through Bedrock Mantle."
      | .upgrade = null
      | .availability_nux = null
      | .max_context_window = .context_window),
    (.models[]
      | select(.slug == "gpt-5.4-mini")
      | .slug = "openai-gpt-5-4-mini"
      | .display_name = "LiteLLM OpenAI GPT-5.4 Mini"
      | .description = "LiteLLM alias for GPT-5.4 mini through OpenAI."
      | .upgrade = null
      | .availability_nux = null
      | .max_context_window = .context_window)
  ]
}' "$CODEX_HOME/models_cache.json" > "$CODEX_HOME/model-catalogs/litellm.json"

Démarrer Codex via LiteLLM

Pour démarrer Codex via LiteLLM, il faut définir les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Préférez des unités petites et testables aux scripts complexes. Lorsqu’une étape échoue, l’échec doit indiquer une seule responsabilité plutôt qu’un processus embrouillé. Fixez les versions des dépendances et enregistrez le digest de l’image utilisée pour exécuter la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe.

codex --profile litellm
codex --profile litellm -m bedrock-mantle-openai-gpt-5-5

Pourquoi cela fonctionne

Pour comprendre pourquoi cela fonctionne, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Considérez cette étape comme un contrat entre les entrées et les sorties validées. Donnez des noms aux artefacts, définites des vérifications de succès et refusez les terminaisons partielles silencieuses. Fixez les versions des dépendances et enregistrez le digest de l’image ayant exécuté la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe.

codex --profile litellm

Références

À titre de référence, définissez les entrées, le responsable de l’étape et les critères d’arrêt avant de modifier le code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché. Enregistrez les temps d’exécution ainsi que le coût des jetons ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés. Fixez les versions des dépendances et enregistrez le digest de l’image ayant exécuté la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe.

Liste de contrôle opérationnelle

Pour la liste de contrôle opérationnelle, définissez les entrées, le responsable de chaque étape ainsi que les critères d’achèvement avant de modifier du code. Les opérateurs doivent pouvoir relancer l’étape à partir d’un point de contrôle connu sans deviner l’état caché.

Gardez la configuration en dehors du code de l’application. Les fichiers d’environnement, les bases de données secrètes et les indicateurs fonctionnels doivent être regroupés en un seul endroit que les opérateurs peuvent auditer sans avoir à lire l’ensemble du système.

Ajoutez un test de base qui exécute le chemin critique dans l’environnement CI en utilisant des fichiers de configuration, et non des API payantes en ligne, chaque fois que le budget le permet.

Enregistrez les temps d’exécution ainsi que le coût des tokens ou des requêtes à côté des résultats fonctionnels. Une visibilité précoce des coûts évite les factures inattendues lorsque le processus passe d’un environnement de démonstration à des environnements partagés.

Fixez les versions des dépendances et enregistrez le digest de l’image ayant été utilisée pour la démonstration. La reproductibilité vaut mieux que les connaissances propres à un groupe.

Considérez cette étape comme un contrat entre les entrées et les sorties validées. Donnez des noms aux artefacts, définites des vérifications de succès, et refusez toute mise en œuvre partielle silencieuse.

Au préalable de promouvoir l’ensemble, figez les versions, conservez une transcription exemplaire pour le chemin critique, et confirmez les étapes de rollback. Les environnements partagés nécessitent des limites de débit, des vérifications d’attribution, ainsi qu’un responsable clair pour la rotation des secrets. Préférez une fiabilité solide à des démonstrations brillantes mais ponctuelles.