🤖 Интеграция с AI: 10 требований, которые надо учесть аналитику 🤖
При интеграции с AI-сервисом недостаточно описать эндпоинт, JSON и возможные ошибки.
Модель может отвечать по-разному, возвращать результат частями, запрашивать вызовы внутренних сервисов и расходовать непредсказуемое количество токенов.
Собрала 10 особенностей, которые важно учесть аналитику в требованиях.
1️⃣ Недетерминированность
AI не возвращает один и тот же ответ на один и тот же запрос.
Нужно явно описывать как система ведёт себя при разных ответах.
2️⃣ Стриминг вместо одного ответа
Ответ может приходить потоком сообщений через SSE.
Потребуются требования к отображению частичного результата, отмене генерации, обрыву соединения и повторному подключению.
3️⃣ Ограниченный контекст (context window)
Модель не хранит весь диалог в «памяти». Она видит только тот контекст, который система передала в текущем запросе.
Нужно определить, где хранится история, какие сообщения отправляются модели и что делать при превышении контекстного окна.
4️⃣ AI сам инициирует вызовы вашего API (Tool Calling)
Не только ваша система вызывает API AI.
AI тоже вызывает ваш API через tools (инструменты), которые вы ему даёте.
Для каждого tool нужно описать:
▫️ название инструмента
▫️ назначение
▫️ входные параметры
▫️ обязательные поля
▫️ ограничения
▫️ возможные ошибки
▫️ какой сервис реально вызывается на backend
▫️ что возвращается обратно в модель
5️⃣ Системный промпт
Это тоже требование.
Его нужно проектировать, документировать, согласовывать и версионировать.
Включает:
▫️ правила поведения AI
▫️ ограничения
▫️ формат ответа
▫️ примеры корректных ответов
▫️ запрещённые действия
▫️ что делать при нехватке данных
6️⃣ Граница «что видит ИИ»: требования к безопасности
Это одно из главных требований, особенно если система работает с:
+ персональными, медицинскими или финансовыми данными
+ коммерческой тайной
+ внутренними документами компании
Аналитик должен зафиксировать:
▫️ какие данные разрешено / запрещено передавать
▫️ нужно ли маскирование / обезличивание
▫️ хранится ли история диалога
▫️ кто имеет доступ к логам AI
7️⃣ Непредсказуемые входные данные
Пользователь может написать что угодно.
Нужны явные требования: как система реагирует на вопросы не по теме, оскорбления, попытки сломать или украсть системный промпт.
8️⃣ Rate limits и стоимость
В отличие от большинства внешних API, у LLM-провайдеров ограничения идут сразу по трём измерениям одновременно:
▫️ RPM — запросов в минуту
▫️ TPM — токенов в минуту
▫️ RPD — запросов в день
Срабатывает первый достигнутый лимит — не обязательно по токенам.
Поэтому в требованиях нужно зафиксировать:
▫️ поведение при HTTP-429
▫️ использование заголовка retry-after — через сколько секунд повторить запрос
▫️ нужен ли rate limiting на стороне нашего бэкенда
▫️ fallback — что делает система, если лимит исчерпан надолго
9️⃣ Логирование диалогов
Чтобы разобрать инцидент «почему AI дал такой ответ», нужно знать:
▫️ какой системный prompt был активен
▫️ какие данные попали в контекст модели
▫️ что написал пользователь
▫️ какие tool calls запросила модель
▫️ какие внутренние сервисы были вызваны
▫️ что модель вернула на каждом шаге
▫️ какой финальный ответ получил пользователь
Без этого разбор инцидентов превращается в гадание.
Дополнительно фиксируем:
▫️ как долго хранятся логи и кто имеет доступ
▫️ нужно ли маскировать ПДн в логах
▫️ логи хранятся на стороне провайдера или только у нас
В медицине это ещё и регуляторный вопрос: история переписки пациента с AI может приравниваться к медицинской документации со всеми вытекающими требованиями к хранению и доступу.
🔟 Agentic loop — цепочка tool calls
AI может запросить несколько инструментов подряд, а результат одного вызова использовать для следующего.
Нужно предусмотреть максимальное количество шагов, общий таймаут, бюджет токенов, разрешённые инструменты, идемпотентность и правила остановки при ошибках.
Сохраняйте, пригодится на задачах с AI-интеграциями 🤝
#ИнтеграцииGA #AI_for_analysts
📱 Tg | 💙 ВК | 💬 Max
Post #3679
1.64K

- ❤ 9
- 🔥 1