Пользователь нажимает «Обновить» в функции сводки AI в девятый раз за минуту. Каждый щелчок — это новый звонок поставщику услуг, новое приглашение с полным документом и новая позиция в вашем счете. Функция работает. Неудача - это...
Пользователь нажимает «Обновить» в функции сводки AI в девятый раз за минуту. Каждый щелчок — это новый звонок поставщику услуг, новое приглашение с полным документом и новая позиция в вашем счете. Функция работает. Ошибка не в модели, приглашении или пользовательском интерфейсе — она находится на границе маршрута, первом уровне, где вы могли сказать «нет», но не сделали этого.
В этом посте рассматривается срез измерения, который я теперь добавляю до того, как какая-либо функция ИИ получит реальный бюджет: конверт токена для каждого запроса, ежедневное ограничение для каждого пользователя и детерминированный путь перехода на более раннюю версию при достижении ограничения. Это намеренно скучная инфраструктура, и она спасла меня от того самого класса сюрпризов, который появляется на этом сайте каждые несколько месяцев.
Почему граница маршрута, а не клиент провайдера
Когда я впервые подключил измерение к клиенту провайдера (оболочке SDK), это не удалось по двум причинам:
Повторные попытки внутри SDK были невидимы для моего счетчика. Тайм-аут и повторная попытка оплачиваются дважды, но записываются один раз.
Потоковая передача ответов прекратилась после того, как моя бухгалтерия заработала, поэтому многие поколения проносились мимо конверта, прежде чем кто-либо это заметил.
Перемещение решения на границу маршрута исправило и то, и другое, поскольку на этом уровне вы контролируете весь жизненный цикл запроса.