Введение в AI-агентов и продакшн-подход

Что такое AI-агент и чем он отличается от чат-бота

Содержание курса

0 / 1 баллов

Сколько токенов съедает прогон агента

В разобранной трассе прогон занял пять итераций, и на каждой в модель уходил весь накопленный диалог целиком. Отсюда и вывод про растущую стоимость — но пока это слова. Посчитаем.

Навык прикладной: именно так прикидывают, во что обойдётся агент, когда в диалоге накапливаются результаты инструментов, а прогон идёт не пять шагов, а пятьдесят.

Задание

Реализуйте функцию total_prompt_tokens(trace). Аргумент — список пар (роль, размер) в том порядке, в каком сообщения появлялись в диалоге. Роль — одна из трёх строк: "user", "ai", "tool". Размер — длина сообщения в токенах.

Модель вызывается перед каждым сообщением с ролью "ai": сообщение с этой ролью и есть её ответ. В момент вызова в модель уходит всё, что накопилось в диалоге до этого сообщения. Верните суммарное число токенов, отправленных в модель за весь прогон.

Пример

trace = [("user", 10), ("ai", 5), ("tool", 3), ("ai", 7)]
total_prompt_tokens(trace)  # 28

Первый вызов модели видит только запрос пользователя — это 10 токенов. Второй видит запрос, ответ модели и результат инструмента: 10 + 5 + 3 = 18. Итого 28.

Примечание

Ответ модели и результаты инструментов в свой же вызов не попадают — они появляются в диалоге после него. Пустая трасса и трасса без единой роли "ai" дают 0.

Разрешена только стандартная библиотека Python 3.12. Решение должно обходить список один раз — не считайте сумму заново на каждом вызове модели.

О данных в ответах

Используйте учебные данные. Не вставляйте пароли, токены, ключи доступа, паспортные и банковские данные, а также персональные данные других людей. Политика обработки данных.

Проверяется тестами (1)
  • Пример из условия
    assert total_prompt_tokens([("user", 10), ("ai", 5), ("tool", 3), ("ai", 7)]) == 28, \
        "пример из условия: 10 + (10 + 5 + 3) = 28"
РешениеPython · Python 3.12 (basic)
Как проверяется решение

Проверяются функции и их результаты. Собственный запуск выполняет ваш код без авторских тестов. Интерактивный запуск не влияет на оценку. Лимит сессии — 5 минут, процессорного времени — 10 секунд.

Отправьте решение, чтобы увидеть результаты тестов.

Начать заново?

Помощник начнёт новый диалог по этой задаче. Текущая переписка останется в истории до конца срока хранения.

О переписке

Можно приложить до трёх фото PNG, JPEG или WebP по 5 МБ.

Переписка и фото хранятся 90 дней после последнего принятого сообщения. Преподаватель получит доступ к диалогу, когда вы попросите его помочь.

Проверка решения остаётся отдельным действием.