Codex CLI через LiteLLM Gateway на Bedrock Mantle
Надіслати кодекс Codex CLI через шлюз LiteLLM до Amazon Bedrock Mantle для доступу до моделей OpenAI з можливістю керування через шлюз, використання псевдонімів моделей та налаштування за замовчуванням.
Джерела: Using OpenAI Codex CLI with LiteLLM AI Gateway and Amazon Bedrock Mantle
Цей посібник описує процес створення системи від сировини до готового продукту для роботи з OpenAI Codex CLI разом із LiteLLM AI Gateway та Amazon Bedrock Mantle. Основна увага приділяється крокам виконання, чітким перевіркам та коду, який можна просто додати до репозиторію без необхідності здогадуватися щодо його призначення. Для отримання загального огляду необхідно визначити вхідні дані, виконавця кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не здогадуючись про прихований стан системи. Необхідно документувати як успішний, так і аварійний сценарії роботи. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації.
Підтримка AWS для OpenAI
Для підтримки AWS для OpenAI необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись здогадатися про прихований стан. Краще використовувати невеликі, перевірювані одиниці коду замість об’ємних скриптів. Коли крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану структуру процесу. Фіксуйте версії залежностей та записуйте хеш-значення образу, який використовувався під час демонстрації. Відтворюваність є кращою за індивідуальні знання.
Доступ до інших моделей OpenAI
Щоб отримати доступ до інших моделей OpenAI, необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цю стадію як контракт між вхідними даними та перевіреними результатами. Позначте результати роботи, визначте критерії успіху та не допускайте безповідомного часткового завершення. Фіксуйте версії залежностей та записуйте хеш-значення зображення, яке використовувалося під час демонстрації. Відтворюваність важливіша за індивідуальні знання.
Встановіть Codex CLI
Для встановлення Codex CLI необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Візуалізація витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні середовища. Фіксуйте версії залежностей та записуйте хеш-значення образу, який використовувався для демонстрації. Відтворюваність краща за індивідуальні знання спеціалістів. Для встановлення Codex CLI необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Одночасно документуйте оптимальний та резервний сценарії виконання. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації.
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --version # currently codex-cli 0.142.5
Підтвердження роботи LiteLLM
Щоб підтвердити роботу LiteLLM, необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Краще використовувати невеликі, перевірювані одиниці коду замість об’ємних скриптів. Коли крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на складну ієрархію процесів. Коли дозволяє бюджет, додавайте тест на базову функціональність, який перевіряє критичний шлях у процесі CI за допомогою фікстур, а не реальних платних API.
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}]'
Менші вікна контексту
Для менших просторів контексту необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість знову запустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цю стадію як контракт між вхідними даними та перевіреними результатами. Призначте назви елементів, визначте критерії успіху та не допускайте беззвучного часткового завершення. Коли дозволяє бюджет, додайте тест на базі фікстур у системі CI для перевірки критичного шляху виконання, а не за допомогою реальних платних API.
Використання Bedrock Mantle проти LiteLLM
При використанні Bedrock Mantle та LiteLLM необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Записуйте час виконання та витрати на токени чи запити поруч із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні. Якщо дозволяє бюджет, додайте тест на працездатність, який перевіряє критичний шлях у процесі CI за допомогою фікстур, а не реальних платних API. При використанні Bedrock Mantle та LiteLLM необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори мають мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Документуйте як успішний, так і відновлювальний шляхи роботи. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації.
model_provider = "amazon-bedrock"
model = "openai.gpt-5.5"
export AWS_BEARER_TOKEN_BEDROCK="<your-bedrock-api-key>"
export AWS_REGION="us-east-2"
Створіть профіль Codex LiteLLM
Щоб створити профіль Codex LiteLLM, необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись визначити прихований стан. Краще використовувати невеликі, перевірювані одиниці коду замість об’ємних скриптів. Коли крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану структуру обробки даних. Напишіть коротку інструкцію: як змінювати ключі, як спорожнювати чергу, як скасовувати останнє завантаження даних.
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"
Додайте метадані моделі для псевдонімів LiteLLM
Щоб додати метадані моделі для псевдонімів LiteLLM, необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цю стадію як контракт між вхідними даними та перевіреними результатами. Позначте результати роботи, визначте критерії успіху та не допускайте безповідомного часткового завершення. Напишіть короткий посібник: як змінювати ключі, як спорожнювати чергу, як скасовувати останнє завантаження.
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"
Необов’язково: але ви хочете GPT-5.4 mini
Для додаткової інформації: якщо ви хочете версію GPT-5.4 mini, необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Записуйте час виконання та витрати на токени або запити поруч із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища у спільні. Напишіть короткий посібник: як змінювати ключі, як спорожнювати чергу, як скасовувати останнє введення даних. Для додаткової інформації: якщо ви хочете версію GPT-5.4 mini, необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Документуйте як успішний, так і відновлювальний сценарії роботи. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації.
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"
Початок роботи з Codex через LiteLLM
Для роботи з Codex через LiteLLM необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан. Краще використовувати невеликі, перевірювані одиниці коду замість об’ємних скриптів. Коли крок зазнає невдачі, причина має вказувати на конкретну відповідальність, а не на заплутану структуру обробки даних. Фіксуйте версії залежностей та записуйте хеш-значення зображення, яке використовувалося під час демонстрації. Відтворюваність результатів важливіша за „колективні знання“.
codex --profile litellm
codex --profile litellm -m bedrock-mantle-openai-gpt-5-5
Чому це ефективно
Щоб зрозуміти, чому це працює, необхідно визначити вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість знову виконати крок з відомої точки контролю, не намагаючись вгадати прихований стан. Розглядайте цю стадію як контракт між вхідними даними та перевіреними результатами. Позначте елементи проекту, визначте критерії успіху та не допускайте мовчазного часткового завершення. Фіксуйте версії залежностей та записуйте хеш-значення зображення, яке використовувалося під час демонстрації. Відтворюваність важливіша за індивідуальні знання.
codex --profile litellm
Посилання
Для посилань визначте вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість знову запустити крок з відомої точки контролю, не здогадуючись про прихований стан. Запишіть час виконання та витрати на токени або запити поруч із функціональними результатами. Видимість витрат заздалегідь запобігає несподіваним рахункам, коли процес переходить від демо-середовища до спільних. Фіксуйте версії залежностей та записуйте дайджест зображення, яке використовувалося для демонстрації. Відтворюваність краща за індивідуальні знання спеціалістів. Для посилань визначте вхідні дані, власника кроку та критерії завершення перед зміною коду. Оператори повинні мати можливість знову запустити крок з відомої точки контролю, не здогадуючись про прихований стан. Одночасно задокументуйте оптимальний та резервний сценарії виконання. Повторні спроби, людський контроль та обробка некоректних повідомлень є частиною продукту, а не етапом подальшої оптимізації.
Чек-лист операцій
Для контрольного списку операцій необхідно визначити вхідні дані, відповідальну особу за кожен крок та критерії завершення перед зміною коду. Оператори повинні мати можливість перезапустити крок з відомої точки контролю, не намагаючись вгадати прихований стан.
Зберігайте конфігурацію окремо від коду додатку. Файли середовища, сховища конфіденційних даних та флаги функцій мають знаходитися в одному місці, яке оператори можуть перевірити, не читаючи весь код.
Коли це дозволяє бюджет, додавайте тест на базову працездатність, який перевіряє критичний шлях у процесі CI за допомогою фікстур, а не реальних платних API.
Записуйте час виконання та витрати на токени чи запити разом із функціональними результатами. Відображення витрат заздалегідь запобігає несподіваним рахункам під час переходу з демо-середовища до спільних середовищ.
Фіксуйте версії залежностей та записуйте хеш образу, який використовувався для демонстрації. Відтворюваність краща за індивідуальні знання спеціалістів.
Розглядайте цей етап як контракт між вхідними даними та перевіреними результатами. Дайте назви продуктам, визначте критерії успіху та не погоджуйтесь на мовчазне часткове виконання.
Перш ніж переходити до наступного етапу, заморозьте версії, створіть „золотий“ запис для критичного шляху виконання та підтвердьте кроки для скасування змін. У спільних середовищах необхідні обмеження на частоту запитів, перевірки прав доступу та чіткий власник для зміни секретів. Віддавайте перевагу надійності перед креативними одноразовими демонстраціями.