Техническое руководство
Версии prompt template по окружениям в AI API
Версии prompt template по окружениям позволяют команде проверять изменение сценария до production, а не редактировать текст прямо в маршруте приложения. Храните идентификатор шаблона, версию, автора одобрения и набор тестов отдельно от секретов и реальных пользовательских данных. RussiaAPI — независимый сторонний gateway: шаблонная дисциплина управляет вашим приложением и не гарантирует поведение, цену, модель или хранение данных во внешнем API.
Короткий ответ и граница сценария
Версии prompt template по окружениям позволяют команде проверять изменение сценария до production, а не редактировать текст прямо в маршруте приложения. Храните идентификатор шаблона, версию, автора одобрения и набор тестов отдельно от секретов и реальных пользовательских данных. RussiaAPI — независимый сторонний gateway: шаблонная дисциплина управляет вашим приложением и не гарантирует поведение, цену, модель или хранение данных во внешнем API.
Рабочая схема начинается с собственной server-side политики: аутентификация, допустимый сценарий, минимальные технические события и проверяемый путь отката. Не переносите ключ, конфигурацию внешнего поставщика или право на выбор маршрута в браузер. Текущие model ID, лимиты и контракт RussiaAPI подтверждают перед запуском на тестовом контуре.
Практический план
Разделите шаблон на имя сценария, неизменяемую версию и метаданные окружения. Например, support-summary@12 может пройти staging, но production использует только одобренную запись с отдельным release marker. Не меняйте содержимое версии задним числом: это ломает сравнение evals и расследование. Новый текст получает новую версию, ссылку на тестовый набор и короткое описание намеренного изменения.
Dev, staging и production должны отличаться данными и правами, а не только строкой в переменной окружения. В dev используйте синтетические fixtures; в staging — обезличенный набор, если это разрешено политикой; production получает реальный запрос только через защищённый server-side путь. Никогда не добавляйте в template API key, cookie, полный Authorization, персональные данные клиента или инструкцию выгрузить такие данные в ответ.
До одобрения запустите измеримый набор: ожидаемый формат, запрещённая операция, пустой вход, слишком длинный вход, конфликтующая инструкция и отказ инструмента. Валидируйте результат схемой или правилами своего приложения, а не только оценкой «ответ выглядит хорошо». Если модельный маршрут меняется одновременно с template, тестируйте комбинацию как отдельный релиз: иначе невозможно понять источник различия.
Rollout делайте через server-side mapping окружения и feature flag, а не через ручное изменение браузерного клиента. Backend выбирает разрешённую версию по tenant, роли и сценарию, записывает только ID версии и request_id, затем отправляет минимальный запрос. При ошибке или неясном результате переключайтесь на предыдущую одобренную версию. Откат не обещает успех модели, но возвращает известный контракт приложения.
Регулярно очищайте устаревшие шаблоны по политике хранения и сохраняйте audit trail изменения: автор, reviewer, дата, причина, тесты и одобренный rollout. Доступ на чтение и изменение разделяйте. Библиотека шаблонов не заменяет data governance: перед передачей входа всё равно нужны минимизация, контроль ролей и проверка договорных условий. Любой пример должен использовать синтетические данные и server-side secret management.
Server-side граница и секреты
Клиент передаёт только данные, которые нужны вашему приложению. Backend получает tenant и права из своей сессии, применяет allowlist входных полей и формирует минимальный вызов. Секрет RussiaAPI хранится только в окружении или защищённом secret store server-side процесса.
Не записывайте ключи, cookies, Authorization, полный текст prompt, полный ответ модели, файлы или временные ссылки в обычную телеметрию. Для поддержки обычно достаточно request_id, версии adapter, класса результата, времени и обезличенного tenant-псевдонима.
Тесты и безопасный rollout
Проверьте позитивный и негативный набор на synthetic test tenant: корректный сценарий, пустой вход, неизвестный параметр, отсутствие прав, timeout и отмену. Фиксируйте дату, версию правила и наблюдаемые ожидания. Тест подтверждает только поведение вашего сценария на момент проверки, а не постоянную характеристику сервиса.
Включайте изменение на ограниченном сегменте через server-side feature flag. До rollout определите метрики, порог остановки и предыдущий проверенный путь. При аномалии выключите новый маршрут, сохраните минимальную техническую трассу и разберите причину без расширения логов пользовательским содержимым.
Что проверить перед production
Сверьте актуальный каталог и документацию RussiaAPI, права tenant, формат ответа, ограничения вашей политики и договорные условия. Не переносите предположения из другого SDK или прошлой версии интеграции. Если поле или возможность не подтверждены, не описывайте их пользователю как гарантированную функцию.
Проверьте роли доступа, срок хранения telemetry, процедуру удаления тестовых данных и ответственного за одобрение изменения. Для данных, которые могут быть персональными, коммерческими или регулируемыми, используйте отдельную проверку внутренними специалистами. Эта инженерная страница не является юридическим заключением.
Server-side пример
Пример показывает локальную проверку в приложении. Ключи берутся только из окружения; перед запуском подтвердите маршрут, model ID и параметры в текущем каталоге RussiaAPI.
export function resolveTemplate({ environment, requestedVersion, approved }) {
const allowed = approved[environment] ?? new Set();
if (!allowed.has(requestedVersion)) throw new Error('template_not_approved');
return { template_version: requestedVersion, environment };
}
// Store template content and approvals separately from credentials and user data.Проверьте синтаксис, добавьте аутентификацию своего маршрута и негативные тесты. Не используйте содержимое запроса или заголовки для отладочного лога.
Проверьте сценарий в RussiaAPI
Создайте собственный тестовый ключ в консоли, сверьте текущий каталог моделей и выполните обезличенный server-side smoke test. Расширяйте нагрузку и доступ только после измеримой проверки.
FAQ
Почему нельзя редактировать одну и ту же версию шаблона?
Неизменяемая версия позволяет сравнить тесты, релизы и инциденты. Если текст меняется задним числом, невозможно честно установить, какой сценарий был проверен и что увидел пользователь.
Можно ли использовать production prompt в staging?
Только если он не несёт реальных данных и это разрешено вашей политикой. Для проверки безопаснее иметь синтетические или обезличенные fixtures и отдельные роли доступа к окружениям.
Нужно ли тестировать шаблон после смены модели?
Да. Шаблон и маршрут модели образуют один наблюдаемый сценарий. После смены любого из них выполните тот же набор проверок, сохраните версию и подготовьте обратимый rollout.