Спроектируйте чат-бот по документации продукта
Вопрос
Нужен чат-бот на сайте документации SaaS-продукта: разработчики спрашивают про API, SDK и ошибки. Документация в Markdown в git, 2000 страниц, выходит новая версия раз в месяц, старые версии поддерживаются. Спроектируйте систему.
Коротко
Что должно быть в решении
- 1Требования: версии продукта, ответы с примерами кода и ссылками на страницы, задержка, публичный доступ без авторизации
- 2Индексация из git по событию релиза: парсинг Markdown по заголовкам, блоки кода целиком, метаданные версии и URL
- 3Поиск: гибрид, потому что важны точные имена методов и коды ошибок; фильтр по выбранной версии; реранкер
- 4Генерация: ответ по контексту, ссылки на разделы, код только из документации, отказ при отсутствии ответа
- 5Защита публичного бота: лимиты по IP, защита от инъекций и злоупотреблений, ограничение длины
- 6Стоимость: кеш частых вопросов, выбор модели, ограничение контекста
- 7Обратная связь и качество: оценки ответов, вопросы без ответа как сигнал для писателей документации, оценочный набор
Что спросит интервьюер
- Как не смешивать ответы для разных версий?
- Как использовать вопросы без ответа?
- Как обработать вопрос с куском кода пользователя и стектрейсом?
Разбор
Ключевые решения: индексировать по структуре Markdown и не резать блоки кода, хранить версию и URL в метаданных и фильтровать по версии на поиске. Гибридный поиск обязателен из-за имён функций и кодов ошибок. Публичный доступ требует лимитов и защиты от использования бота как бесплатного LLM-прокси. Вопросы без ответа и низкие оценки превращаются в задачи для документации, это одна из главных ценностей такого бота.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.