Вопрос с собеседования · AI и LLM

Как устроен запрос к чат-API модели — роли сообщений, причина остановки, расход токенов?

JuniorКак устроены LLM
Ещё спрашивают так:
  • Что такое system, user и assistant в API?
  • Что означает finish_reason?
Коротко

Запрос — список сообщений с ролями: system (правила и роль модели), user (запросы), assistant (прошлые ответы модели). Модель не хранит диалог: приложение каждый раз отправляет историю целиком. Ответ содержит текст, причину остановки (закончила сама, упёрлась в лимит токенов, вызвала инструмент, сработал фильтр) и расход токенов входа и выхода.

  • Остановка по лимиту — ответ обрезан, его нельзя показывать как полный
  • Расход токенов логируют: из него считается стоимость
  • Ключ API хранится только на сервере, клиентское приложение ходит через ваш бэкенд

А ещё У разных провайдеров поля называются по-разному, но смысл одинаковый

Подробно

Пример (схематично):

{"model": "…", "max_tokens": 500,
 "messages": [
   {"role": "system", "content": "Ты помощник магазина. Отвечай кратко."},
   {"role": "user", "content": "Где мой заказ 123?"}]}

Причины остановки:

  • модель закончила ответ — нормальный случай;
  • достигнут max_tokens — ответ обрезан, нужно увеличить лимит или продолжить;
  • вызов инструмента — нужно выполнить его и вернуть результат;
  • фильтр безопасности — показать понятное сообщение.

Ключ. Ключ в коде браузера или мобильного приложения увидит любой пользователь и потратит ваш бюджет. Запросы идут через сервер, где хранится ключ, проверяется пользователь и лимиты.

Что хотят услышать

  • Роли сообщений и передача истории.
  • Обработка причины остановки, особенно обрезки.
  • Учёт токенов.
  • Ключ только на сервере.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Модель хранит историю диалога, достаточно отправлять только новое сообщение
  • ✗Модель хранит историю диалога на стороне провайдера, поэтому достаточно отправлять новое сообщение и идентификатор беседы
  • ✗Ключ API удобнее хранить в мобильном приложении, чтобы не нагружать сервер
  • ✓Историю с ролями шлют каждый раз; stop reason показывает обрезку, usage — стоимость

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования