LLM в поиске книг
Последнюю неделю изучал, где лежит реальная практическая польза языковых моделей в текущих задачах. В данном случае попробовал LLM в телеграм-боте для поиска литературы.
Ограничение. Бутылочное горлышко в том, что запросы должны быть точными, и это ложится на плечи юзера. Если пользователь напишет «Таис Афинскя», бот не выдаст результат.
Проблема. Пользователь вводит название книги или автора с опечаткой, в другом порядке или с мусором, и не находит нужную книгу.
Цель. Увеличить качество поиска за счёт разбора запроса через LLM. Где модель извлекает автора и название из свободного текста и формирует структурированный запрос.
Условия: это дёшево и не должно тормозить поиск
Механика модели: - Решает, какие слова фамилия автора, а какие название. Пример: «блый клык лондон» она понимает: «лондон» - это автор, «белый клык» (из «блый клык») - это название. - Правит опечатки. - Выносит серию. «Песнь льда и пламени», «Сумерки» попадают в поле series, а не клеятся к названию. - Отбрасывает мусор. Лишние слова, вопросы, вводные не попадают ни в одно поле. - Понимает транслит и другой порядок слов. - Не путает название с автором. «Таис Афинская» без фамилии — это название романа, не автор; authors остаётся пустым.
На выходе структура: {authors, title, series, genre}.
Результат. Проверил на бенчмарке из 200 запросов: каждая книга искалась “чистой” и “грязной” формулировкой. На грязных запросах LLM даёт 74% точных попаданий против 17% у обычного перебора. Перебор в 80-ти случаях из 100 не находит книгу вообще. На чистых же запросах разрыв незначительный .
Затраты. С моделью gpt-4.1-nano у провайдера bothub 1 уникальный запрос обходится порядка 0.003 руб.
Видео, почему-то, Сетка загружать не дает. Поэтому делюсь с вами картинкой