Files
wiki/tasks/snowbike-rag/DEV-TASK-UI.md
2026-04-12 21:55:33 +03:00

2.5 KiB
Raw Blame History

DEV-TASK: Веб-интерфейс для Snowbike RAG

Контекст

API для семантического поиска работает (Flask :5557). Нужен красивый веб-интерфейс.

Документация:

  • Бизнес-требования: tasks/snowbike-rag/docs/BRD-UI.md
  • Техническое задание: tasks/snowbike-rag/docs/TZ-UI.md
  • Существующий API: tasks/snowbike-rag/server.py

Задача

Реализовать одностраничное веб-приложение для поиска по базе знаний сноубайков.

Шаг 1: Создать index.html

  1. Создать templates/index.html — единственная страница
  2. Подключить CDN: Tailwind CSS, Marked.js, Google Fonts (Inter)
  3. Реализовать UI:
    • Заголовок: «🏔️ Snowbike Поиск»
    • Поле ввода (textarea) по центру
    • Кнопка отправки (🔍)
    • Блок результатов: ответ (Markdown → HTML) + источники (карточки)
    • Спиннер при загрузке
    • Тёмная тема (#0F172A фон)
  4. Адаптивность: мобилка, планшет, десктоп

Шаг 2: Обновить server.py

  1. Добавить роут /render_template('index.html')
  2. Оставить /search для обратной совместимости
  3. Добавить /api/search — алиас к /search

Шаг 3: Проверить

  1. Открыть http://localhost:5557/ — должна быть страница поиска
  2. Ввести запрос → ответ с источниками
  3. Проверить на мобильном (responsive)

Критерии приёмки

  • http://localhost:5557/ — страница поиска (не JSON, не 404)
  • Ввод «масло для Polaris» → ответ + источники
  • Тёмная тема, красивый шрифт Inter
  • Адаптивно на мобильном
  • Markdown рендерится в HTML
  • Источники — карточки с датой и топиком
  • Спиннер при загрузке
  • Существующие API-роуты работают

Важно

• Всё в tasks/snowbike-rag/ • HTML — один файл (inline CSS + JS) • Не ломать существующий API • Tailwind через CDN (без npm/сборки)