Skip to content

feature(lookup): добавить Yandex fallback и ISBN hint flow - #3

Open
gman-dev-nov wants to merge 1 commit into
fix/ddg-alpina-fallbackfrom
feature/lookup-yandex-isbn-hint
Open

feature(lookup): добавить Yandex fallback и ISBN hint flow#3
gman-dev-nov wants to merge 1 commit into
fix/ddg-alpina-fallbackfrom
feature/lookup-yandex-isbn-hint

Conversation

@gman-dev-nov

Copy link
Copy Markdown
Owner

Что изменилось

Добавлен дополнительный путь поиска книги через Yandex с Playwright, а также интерактивный ISBN hint flow в Telegram.

Теперь если стандартная цепочка lookup не находит книгу по ISBN, бот:

  1. пробует дополнительный поиск через Yandex;
  2. если результата все равно нет, просит у пользователя короткую текстовую подсказку;
  3. повторяет поиск с учетом этой подсказки.

Зачем это нужно

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

Новый flow нужен как safety net:

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

Что получает пользователь

  • меньше тупиковых сценариев при добавлении книг;
  • выше шанс найти книгу по редким или плохо индексируемым ISBN;
  • более понятный и управляемый сценарий, когда автоматический поиск не справился с первой попытки.

Технически

  • добавлен Yandex provider;
  • добавлен общий _serp_parser.py для переиспользуемой логики разбора поисковой выдачи;
  • расширена lookup-цепочка;
  • в Telegram добавлен pending_isbn_hint flow;
  • обновлены e2e- и provider-тесты;
  • добавлена документация и настройки для опционального Playwright-пути.

Ограничения

  • Yandex fallback опционален и активируется только при YANDEX_ENABLED=1;
  • для него нужен установленный playwright и playwright install chromium;
  • если Playwright не включен, бот по-прежнему корректно работает, просто пропускает этот шаг.

Проверка

  • venv/bin/python -m pytest tests/test_home_library_providers.py tests/test_home_library_e2e.py -q

Добавил дополнительный путь поиска книги через Yandex и Playwright для ISBN, которые не находятся в основных источниках. Это закрывает сценарии, где обычный lookup возвращает пустой результат, хотя книга существует в открытых каталогах или поисковой выдаче.

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

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: ee2d85482b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

"""Обрабатывает подсказку по ISBN: валидирует ввод и делегирует в callbacks."""
message = _require_message(update)
user_data = _require_user_data(context)
user_data.pop(PENDING_ISBN_HINT_KEY, None)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve pending ISBN hint until input is successfully handled

pending_isbn_hint is removed before validating/processing the hint, so an empty message or a transient lookup failure drops the flow immediately. In these cases the bot tells the user to try again, but the next message is treated as a normal search because the pending state is already gone. This makes the new hint flow brittle and user-visible retries impossible without rescanning the barcode.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant