Миграция с Chat Completions на Responses API
Руководство для production: Миграция с Chat Completions на Responses API. Включает детерминированный артефакт, границы отказа, контроль rollout и проверенные источники.
Руководство для production: Миграция с Chat Completions на Responses API. Включает детерминированный артефакт, границы отказа, контроль rollout и проверенные источники.
Сначала решение
Миграция с Chat Completions на Responses API — явный production-контракт, а не отдельное изменение. До переноса трафика задайте успех, конечный отказ и rollback; артефакт отделяет доказательства от предположений.
Начните с endpoint, детерминированно докажите request_body и сделайте rollback обязательным release-gate.
Повторно используемый артефакт
Строка считается пройденной, только если доказательство относится к тому же запросу, окну теста или версии конфигурации.
| Контрольная точка | Доказательство | Условие прохождения |
|---|---|---|
endpoint |
/v1/chat/completions->/v1/responses |
Значение точно сохраняется и сравнивается на wire-границе. |
request_body |
messages[]->input;response_format->text.format |
Значение точно сохраняется и сравнивается на wire-границе. |
tool_result |
tool_call_id->call_id;role:_tool->function_call_output |
Запись связывает логический запрос и конкретную попытку. |
zero_values |
temperature:_0,stream:_false,empty_arrays |
Значение точно сохраняется и сравнивается на wire-границе. |
state |
previous_response_id_and_repeated_top-level_instructions |
Owner, источник, дата и ограничение записаны. |
rollback |
old_endpoint_remains_selectable_during_bounded_rollout |
Предел явный, превышение закрывает операцию. |
Разобранный пример
Пример синтетический и детерминированный. Подставьте проверенные параметры своей нагрузки; не используйте секреты или данные клиентов.
# Chat Completions
curl -sS https://modelflare.dev/v1/chat/completions \
-H "Authorization: Bearer $MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"'"$MODEL_ID"'","messages":[{"role":"user","content":"Return OK"}],"stream":false}'
# Responses
curl -sS https://modelflare.dev/v1/responses \
-H "Authorization: Bearer $MODELFLARE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"'"$MODEL_ID"'","input":"Return OK","stream":false}'
Порядок внедрения
- Зафиксировать текущие запрос, ответ, конфигурацию и наблюдаемую базовую линию.
- Выполнить детерминированный положительный сценарий и сохранить полный результат.
- Выполнить парный отрицательный или предельный сценарий.
- Связать попытки одним логическим request ID и записать время, конечное состояние и usage без чувствительного содержимого.
- Раскатывать на ограниченную когорту с условиями остановки.
- Повторно прочитать долговечное состояние и публичное поведение; при нарушении инварианта выполнить rollback.
Режимы отказа
Эти ошибки обесценивают результат, даже если внешний HTTP выглядит успешным:
- Явный
0илиfalseтеряется при сериализации. - Предполагается скрытое состояние, которого маршрут не хранит.
- Читается одно удобное поле, а типизированные outputs, tools, отказы или частичные результаты теряются.
- Один текстовый ответ принимается за полное доказательство совместимости.
Граница Modelflare
Modelflare централизует OpenAI-совместимый routing, ключи, группы, usage и ошибки, но настроенный маршрут не доказывает опциональные возможности провайдера. Проверяйте модель и канал нативным протоколом, сохраняйте явные нули и считайте истиной billing только долговечный расчет.
Общая граница решения описана в родительском руководстве, текущая настройка — в документации.
Проверка перед публикацией
- Сначала ответить на главный вопрос.
- Назначить owner каждому полю, состоянию, метрике и формуле.
- Использовать только синтетические идентификаторы.
- Сохранить структуру, код, лимиты и предупреждения во всех языках.
- На T-1 перепроверить контракты, поддержку и цены; при изменении перенести дату.
- До срока исключить страницу из public API, маршрутов и sitemap.
Источники и дата проверки
Источники проверены 2026-08-07; они не доказывают непроверенный маршрут.