ThreadQA | Олег Пендрак


Гео и язык канала: Россия, Русский
Категория: Технологии


Жизнь и работа в IT | Блог инженера Tech Lead QA Automation с 5+ годами опыта работы в Сбер Здоровье, Ситидрайв, Ozon и VK
Связь со мной: @penolegrus

Связанные каналы

Гео и язык канала
Россия, Русский
Категория
Технологии
Статистика
Фильтр публикаций


🤖 ТЕСТИРУЕМ ИИ l ЧАСТЬ 2
Бот сказал, что услуги нет, а она была


Прилетает жалоба в поддержку: пользователь спрашивает у нашего бота записи «можно сделать МРТ колена в клинике на Ленинском?», а бот уверенно отвечает, что такой услуги в этой клинике нет

Услуга при этом есть, висит в прайсе, люди на неё записываются через сайт каждый день

Первая реакция у команды была предсказуемая:

модель тупит, давайте перепишем промпт


Я попросил не трогать промпт, пока не поймём, где именно сломалось, потому что у нашего бота, как у любого RAG, два этапа:

1️⃣ Поиск: достаём из базы знаний куски документов, похожие на вопрос

2️⃣ Генерация: модель читает эти куски и пишет ответ

Ломаются они по-разному, и чинятся тоже по-разному

Приём, который решает спор за 5 минут, очень простой: берёшь тот же вопрос и вручную подставляешь модели правильный кусок документа, где явно написано, что МРТ колена в этой клинике есть

Если с идеальным контекстом ответ стал правильным, значит модель нормальная, а виноват поиск, он просто не принёс нужный кусок


Если даже с правильным куском модель несёт чушь, значит проблема в генерации и уже можно идти в промпт

У нас ответ сразу стал правильным

Полезли смотреть поиск, и там всё оказалось банально:

в прайсе услуга называлась «Магнитно-резонансная томография коленного сустава», без слова «МРТ», а при нарезке документа название вообще отрезалось от названия клиники и строки с ценой


Поиск по запросу «МРТ колена» находил что угодно, только не это

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

Что из этого стоит забрать себе:

1️⃣ Поиск тестируйте отдельно от модели. Соберите 20–30 вопросов, для которых вы точно знаете, в каком документе ответ, и смотрите, попадает ли нужный кусок в топ-5 выдачи (это называется hit rate или recall@k)

2️⃣ Генерацию проверяйте на идеальном контексте, тогда проблемы поиска не будут маскировать проблемы модели

3️⃣ Логируйте, какие куски принёс поиск на каждый ответ, иначе потом разбирать жалобы придётся вслепую

Главная мысль тут такая: прежде чем чинить бота, найдите, какой этап сломался, иначе можно неделю переписывать промпт, который ни в чём не виноват

В следующей части расскажу, как мы пытались автоматически сравнивать ответы бота с эталоном и почему метрика поставила правильному ответу двойку, а неправильному почти пятёрку

Первая часть — https://t.me/threadqa_blog/188

На 50 👨‍💻 выпускаю третью часть


Продолжаю лайвстайл кулинарии👌

В этот раз попробовал впервые тар тар из телячьего огузка и альтернативный стейк-фланк с грибным соусом и бейби картофелем

Тартар оказался на любителя, так как максимально не привычно есть сырое мясо, плюсом вместо того чтобы нарезать кубиками мелкими, у меня получилось как получилось🙀

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

Вообще вайбик просто повторять за поваром, особо не понимая что и как надо делать, а потом дегустировать

P.S Набираем 30 реакций и выгладываю другой кукинг с луковым супом и стейком


🤖 ТЕСТИРУЕМ ИИ l ЧАСТЬ 1
Код никто не трогал, а бот сломался


У нас в СберЗдоровье есть чатбот, через который можно записаться к врачу или на анализы

И недавно с ним случилась история, которая отлично показывает, чем тестирование ИИ отличается от обычного

Пятница, вечер. Прилетает жалоба от пользователя:

бот записал его на сдачу крови на 15:00 и ни слова не сказал, что сдавать её нужно натощак. Человек приехал после обеда, анализ не приняли, день потерян


Идём разбираться, а там полная тишина: за неделю ни одного мёржа, все автотесты зелёные, по логам никаких ошибок, код никто не трогал, а бот ведёт себя по-другому

Копали полдня и в итоге нашли

За пару дней до этого продакт поправил системный промпт, добавил туда всего одну фразу «отвечай короче, пользователи не любят длинные сообщения»

Бот понял это буквально и начал выкидывать из ответов всё лишнее, а заодно и памятки о подготовке к анализам


Для меня это стало главным уроком. В обычном приложении поведение меняется, только когда меняется код

В LLM-приложении бот может поехать, даже если в репозитории ноль коммитов, достаточно, чтобы:

— кто-то поправил одну фразу в промпте
— провайдер тихо выкатил новую версию модели
— в базу знаний залили обновлённый прайс или список услуг
— поменяли temperature или другие параметры генерации


При этом обычные автотесты ничего не поймают, потому что проверяют код, а сломался не он

Что мы в итоге поменяли у себя:

1️⃣ Промпт теперь живёт в git, как код, со своим ревью и версиями, а не правится на лету в админке

2️⃣ Собрали набор из 50 реальных диалогов: запись к врачу, перенос, отмена, анализы с подготовкой, вопросы не по теме

3️⃣ Прогоняем этот набор на каждое изменение промпта, модели или базы знаний, а не только на мёрж кода

4️⃣ Любая жалоба из прода превращается в новый кейс в наборе, и тот диалог про анализ натощак теперь лежит там первым

Проверяем ответ не на точное совпадение строки, как в assertEquals, а по смыслу: есть ли в ответе дата, адрес клиники и памятка о подготовке

Одна и та же модель может сформулировать одно и то же десятью способами, поэтому сравнивать текст один в один бессмысленно


Главная мысль тут такая: в ИИ-продуктах промпт, модель и база знаний это такой же код, и тестировать их изменения нужно так же серьёзно, как любой мёрж в мастер

А в следующей части расскажу, как мы по одной жалобе за 5 минут понимаем, где проблема, в поиске или в самой модели, там есть один очень простой приём

Следующая часть — https://t.me/threadqa_blog/194

На 50 👨‍💻 выпускаю вторую часть


Скоро будут съемки нового видео про тестирование оценки ответов LLM с гостем

Задавайте вопросы под постом, постараемся ответить на них👌


Видео недоступно для предпросмотра
Смотреть в Telegram


За последнее время в канал зашло 600 новых человек🚀

Для вас я решил немного рассказать о себе и об этом блоге)

Меня зовут Олег, сейчас я занимаю должность инженера Tech Lead QA Automation в компании Сбер Здоровье

Простым языком: я отвечаю за качество продукта внутри команды, чтобы сервис работал надежно, без сбоев и зависаний, провожу собеседования, отбираю кандидатов и проверяю их работу

В общей сложности уже больше 5 лет я работаю в сфере IT. Начинал джуном-автоматизатором, в VK дорос до тимлида, потом стал техлидом в Ozon, поработал сеньором в Ситидрайве

Параллельно был наставником в Университете Иннополис и выступал на крупнейших IT-конференциях — Heisenbug, Ural Digital Weekend и Work Solutions. И весь этот опыт я тащу в видео, курсы и эфиры, чтобы людям не пришлось набивать те же шишки, что и мне

За 5 лет вокруг канала ThreadQA удалось создать целую экосистему:
▶ YouTube-канал — 11 000+ ребят, которые хотят расти в QA
🎓 Образовательная платформа с курсами по Java, Python и iOS автоматизации
🔔 450+ выпускников моих курсов
🌟 200+ личных консультаций по стеку, архитектуре тестов и карьере
💬 Ламповый чат сообщества, где ребята помогают друг другу

В этом канале вас ждет:
— полезный контент и подробные ответы на ваши вопросы
— гайды как найти работу в IT и все подводные камни
— разборы собеседований и вопросы, которые задают в крупных компаниях
— инсайты и ошибки, о которых не пишут в туториалах
— прямые эфиры с общением и разбором ваших вопросов
— лайф контент из моей жизни и работы

▶ YouTube канал: https://www.youtube.com/@threadqa

📌 Платформа с курсами и материалами: https://lms.threadqa.ru

🔥 Новый курс Java QA Automation 2026: https://t.me/threadqa_blog/109

💬 Чат сообщества (можно задать любой вопрос — отвечу я или ребята): @threadqa

✍️ 1 часть истории моего пути: https://t.me/c/3706754029/61

➕ Список полезных постов: https://t.me/c/3706754029/92

💌 Связь со мной: @penolegrus

Очень рад видеть вас здесь❤️


Новое видео уже на канале, поговорили про найм в 2026 году и какие проблемы сейчас есть на рынке

▶ Смотреть на YouTube
🟦 Смотреть в VK
📹 Смотреть на RuTube

Итак, присаживайтесь поудобнее, потому что два Олега встретились, чтобы проговорить интересную тему в найме для QA!

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

Пишите в комментариях, как у вас обстоят дела в поиске работы, или как вы подходили ранее к поиску работу в кризисное время для найма.

Всем добра, бобра и приятного просмотра!)

Подписывайтесь на тг канал гостя - @zhikona


Фотокарточки с конференции "СЕКОН" прилетели

Ну и пока вы будете смотреть на них, сегодня я поучавствовал в подкасте с одноим крутым рекрутером

Все подробности уже скоро, следите, потому что подскат получился очень насыщенным)


В ближайшее время запланировано 2 новых видоса на YouTube канале ▶

Темы: «Тестирование llm» и «Беседа с HR»

В каждом видео будет подкаст с экспертом, разберем актуальные вопросы и покажем несколько кейсов

В комментариях вы можете задать свои вопросы по этим или смежным темам, которые я также разберу в данных видео

Накидывайте👇


Из-за роста количества подписчиков, слетело оформление канала

Друзья, у кого есть Telegram-Premium, буду благодарен, если отдадите парочку голосов за канал⭐️

https://t.me/boost?c=3706754029



Показано 11 последних публикаций.