Back to Overview

Фиксики

team08
RED Service down Connection failed Timeout or DNS error

Today (9:00 MSK — 9:00 MSK)

0
Commits
0
PRs Merged
0
PRs Opened
0
Issues Opened
0
Issues Closed

All Time

97
Commits
14
PRs Merged
14
PRs Opened
0
Issues Opened
0
Issues Closed
$24.05
API Usage

Product Testing

Last tested: 2026-02-06 04:42
PDF DOCX
6.4
Overall
6
ux
7
functionality
6
performance
ux (6/10)
Интерфейс достаточно понятный и минималистичный. Назначение продукта ясно с первого взгляда благодаря заголовку и подзаголовку. Однако есть существенные UX-проблемы: 1) Кнопка 'Войти' не работает через обычный клик - требуется специальный dispatchEvent, что может вызвать проблемы у пользователей; 2) Отсутствуют сообщения об ошибках при неправильных данных входа; 3) Кнопка 'Выйти' не работает; 4) В мобильной версии кнопка гамбургер-меню не открывает боковую панель; 5) При клике на диалог в истории не загружается содержимое беседы.
functionality (7/10)
Основная функциональность работает: регистрация пользователей успешна, ИИ-чат отвечает на вопросы по пожарной безопасности, ответы содержат ссылки на нормативные документы с процентом релевантности, история диалогов сохраняется. Гибридный поиск (вектор + граф) - интересная техническая деталь. Однако есть проблемы: форма входа не работает корректно, кнопка выхода не функционирует, кнопки 'Новый диалог' и 'Удалить диалог' не работают, клик по истории диалогов не загружает содержимое.
performance (6/10)
Начальная загрузка сайта завершилась ошибкой 502 Bad Gateway (потребовалось несколько попыток). После успешной загрузки страницы работают быстро. Ответы от ИИ приходят за 5-10 секунд, что приемлемо для такого типа сервиса. Нет видимых ошибок в консоли браузера после загрузки.

Findings (20)

high bug 502 Bad Gateway при первой загрузке сайта
high bug Кнопка 'Войти' не отправляет форму при обычном клике
high bug Кнопка 'Выйти' не выполняет выход из системы
high bug Кнопка 'Удалить диалог' не удаляет диалог
high bug Кнопка 'Новый диалог' не создаёт новый чат

Commits & Code Churn

31 Jan — 6 Feb 2026

PR Activity

31 Jan — 6 Feb 2026

Languages

README

Expert Standards Assistant

ИИ-ассистент для ответов на сложные вопросы по стандартам с использованием Graph RAG


Описание проекта

Цели

Создать ИИ-ассистента, который даёт точные и обоснованные ответы на многоуровневые запросы по нормативным документам: связи между стандартами, влияние изменений параметров, учёт версионности и логические цепочки рассуждений.

Контекст

Проблема При работе со стандартами и нормативами инженеры сталкиваются со сложными запросами, требующими анализа связей между документами, учёта версий и понимания контекста. Обычный поиск и векторный RAG не могут дать точные ответы на такие вопросы, что приводит к потере времени и ошибкам в интерпретации.
У кого проявляется Инженеры, технические руководители, специалисты по compliance в регулируемых отраслях (строительство, фармацевтика, энергетика, IT), где критично точное соблюдение стандартов.
Решение ИИ-ассистент на основе Graph RAG, который понимает связи между документами, учитывает их версии и историю изменений, а также может отвечать на сложные вопросы с пояснением логической цепочки.

Пример целевого пользователя (по профилю заказчика): инженер-проектировщик по пожарной безопасности в крупном застройщике — проверяет соответствие разделов ПД нормам (ФЗ-123, СП 4.13130, СП 1.13130 и др.), увязывает требования между документами, готовит материалы к экспертизе.


Технологии

Категория Технология
Язык (backend) Python 3.12+
Язык (frontend) TypeScript 5.x
API Framework FastAPI
UI Framework (legacy) Gradio 4.x
UI Framework (new) Vite 6.x + React 19 + Tailwind CSS 4 + shadcn/ui
База данных PostgreSQL 14+ (pgvector)
Графовая БД Neo4j 5.x
Векторный поиск LangChain, OpenRouter embeddings API (text-embedding-3-small)
LLM OpenRouter (настраиваемая модель)
Парсинг документов pypdf, python-docx
Аутентификация Passlib (bcrypt)
Тестирование pytest, pytest-asyncio
Трассировка LangSmith (langsmith SDK)
Линтинг Ruff

Структура проекта

src/
├── app.py               # Точка входа (FastAPI + Gradio + SPA)
├── config.py            # Конфигурация
├── logging_config.py    # Loguru настройка, request context
├── prompts.py           # Централизованные LLM-промпты
├── api/                 # REST API v2 (018-vite-frontend)
│   ├── router.py        # Главный роутер /api/v2
│   ├── deps.py          # Зависимости (auth, db, admin)
│   ├── auth.py          # Аутентификация (login, register, me, logout)
│   ├── chat.py          # Чат-эндпоинт (RAG pipeline)
│   ├── sessions.py      # Управление диалогами
│   └── admin.py         # Админ-эндпоинты (users, docs, settings, neo4j)
├── models/              # Dataclass модели
│   ├── user.py
│   ├── session.py
│   ├── neo4j.py         # Neo4jConnectionStatus, GraphStatistics
│   ├── document.py      # Document, Chunk, ProcessingStatus
│   ├── rag.py           # RAGResponse, SearchResult, RouteDecision
│   ├── graph.py         # GraphNode, GraphPath, GraphSearchResult
│   ├── embedding.py     # Embedding модели
│   └── evaluation.py    # Модели для QA Evaluation
├── cli/                 # CLI модули
│   ├── config.py        # CLIConfig, ConfigurationError
│   └── qa_evaluator.py  # QA Evaluation логика
├── services/            # Бизнес-логика
│   ├── auth_service.py
│   ├── user_service.py
│   ├── session_service.py
│   ├── settings_service.py
│   ├── neo4j_service.py         # Singleton для Neo4j (graceful degradation)
│   ├── document_service.py      # CRUD для документов
│   ├── parser_service.py        # Парсинг PDF, DOCX, MD
│   ├── embedding_service.py     # Генерация embeddings (OpenRouter API)
│   ├── embedding_providers/     # Embedding провайдер (OpenRouter)
│   ├── indexing_service.py      # Pipeline обработки документов
│   ├── router_service.py        # Маршрутизация запросов (vector/graph/hybrid)
│   ├── search_service.py        # Векторный поиск в pgvector
│   ├── graph_search_service.py  # Графовый поиск в Neo4j
│   ├── rrf_service.py           # Reciprocal Rank Fusion
│   ├── related_concepts_extractor.py  # Извлечение связанных понятий
│   ├── llm_service.py           # Обёртка для LLM (OpenRouter)
│   ├── rag_service.py           # RAG pipeline оркестратор
│   ├── tracing_service.py       # LangSmith трассировка
│   └── evaluation_service.py    # DeepEval метрики
├── data/                # Работа с БД
│   ├── database.py
│   └── migrations/      # SQL миграции
└── ui/                  # Gradio компоненты (legacy)
    ├── handlers.py      # Обработчики событий (RAG интеграция)
    ├── helpers.py       # Вспомогательные функции (sync wrappers)
    └── components/      # UI компоненты
        ├── auth.py
        ├── chat.py      # Чат с отображением источников
        └── admin.py     # Админ-панель (пользователи, настройки, Neo4j)

frontend/                # Vite + React SPA (018-vite-frontend)
├── src/
│   ├── api/             # API-клиенты (auth, chat, sessions, admin)
│   ├── components/      # React-компоненты + shadcn/ui
│   ├── contexts/        # AuthContext (глобальное состояние)
│   ├── hooks/           # useAuth, useSessions
│   └── pages/           # LoginPage, ChatPage, admin/*
├── vite.config.ts       # Vite конфигурация (base: /)
└── package.json         # Зависимости (React 19, Tailwind 4, shadcn/ui)

uploads/                 # Загруженные документы
specs/                   # Спецификации фич
tests/                   # Тесты

Установка и запуск

Требования

  • Python 3.12+
  • Docker & Docker Compose
  • uv (рекомендуется) или pip

Быстрый старт (Docker)

# Клонирование репозитория
git clone <repo-url>
cd fixiki

# Копирование конфигурации
cp .env.example .env
# Заполните переменные в .env

# Запуск всех сервисов
make run

# Проверка статуса
make health-all

Приложение будет доступно по адресу: http://localhost:3000

Локальная разработка

# Установка зависимостей
uv sync

# Запуск инфраструктуры (PostgreSQL + Neo4j)
make infra

# Запуск приложения
make dev

Команды

Команда Описание
make run Запуск всех контейнеров
make stop Остановка контейнеров
make dev Локальный запуск (требуется PostgreSQL)
make test Запуск тестов
make lint Линтинг и форматирование
make health Проверка здоровья приложения
make health-neo4j Проверка статуса Neo4j
make logs Просмотр логов

Статус разработки

Фича Название Статус
001 UI и авторизация ✅ Готово
003 Управление пользователями ✅ Готово
004 Интеграция с Neo4j ✅ Готово
005 Загрузка документов в векторную БД ✅ Готово
006 RAG Router (чат с ИИ) ✅ Готово
007 Graph RAG ✅ Готово
008 Admin Search Mode ✅ Готово
009 App Logging ✅ Готово
010 Graph Search Keywords ✅ Готово
011 Session Management UI ✅ Готово
012 OpenRouter Embeddings API ✅ Готово
014 LangSmith Tracing ✅ Готово
015 CLI QA Evaluation ✅ Готово
016 Prompt Management ✅ Готово
017 Remove Local Embeddings ✅ Готово
018 Vite Frontend (замена Gradio) ✅ Готово

Реализовано

  • [x] Базовая структура проекта
  • [x] UI на Gradio с авторизацией
  • [x] Система аутентификации (регистрация, вход, сессии)
  • [x] Админ-панель (управление пользователями, настройки)
  • [x] Интеграция с Neo4j (health-check, статистика графа)
  • [x] Graceful degradation при недоступности Neo4j
  • [x] Загрузка документов (PDF, DOCX, MD) через админ-панель
  • [x] Асинхронная обработка документов с FIFO очередью
  • [x] Векторное индексирование (pgvector + OpenRouter embeddings API)
  • [x] RAG pipeline с векторным поиском и генерацией ответов через LLM
  • [x] Отображение источников (документ, раздел) в ответах
  • [x] Роутер запросов (vector/graph) с graceful degradation
  • [x] Graph RAG с графовым поиском в Neo4j
  • [x] Интеллектуальная маршрутизация запросов (ключевые слова + LLM)
  • [x] Reciprocal Rank Fusion (RRF) для объединения результатов
  • [x] Извлечение и отображение связанных понятий
  • [x] Переключение режима поиска для админов (vector/graph/hybrid/auto)
  • [x] Структурированное логирование с loguru и request tracing
  • [x] Оптимизация графового поиска по ключевым словам
  • [x] Извлечение ключевых слов из запросов для улучшения поиска в Neo4j
  • [x] Улучшенный UI управления сессиями (фиксированная высота, удаление диалогов)
  • [x] Поддержка OpenRouter API для генерации эмбеддингов
  • [x] Трассировка RAG-запросов через LangSmith (иерархические spans, метаданные)
  • [x] CLI для автоматизированной проверки качества RAG (DeepEval метрики, Gradio API, JSON отчёты)
  • [x] Централизация всех LLM-промптов в единый модуль src/prompts.py
  • [x] Удаление локального провайдера эмбеддингов, упрощение архитектуры (только OpenRouter API)
  • [x] Новый фронтенд на Vite + React 19 + Tailwind CSS + shadcn/ui (замена Gradio)
  • [x] REST API v2 для фронтенда (auth, chat, sessions, admin)
  • [x] SPA доступно на /, Gradio legacy на /gradio

В работе

  • [ ] Интеграция с нормативной базой по пожарной безопасности
  • [ ] Community Detection (Louvain clustering)

Команда

Роль Участник Зона ответственности
Hustler Даниил Хромов Продукт, гипотезы, валидация с пользователями
Hacker Никита Овчинников Архитектура, Graph RAG, бэкенд
Hipster Владимир Писарев Дизайн интерфейса, UX

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

Разработка

  • CLAUDE.md — руководство по разработке, команды, стиль кода

Фичи

Фича Спецификация План Задачи
001 - UI и авторизация spec.md plan.md tasks.md
003 - Админ-панель spec.md plan.md tasks.md
004 - Neo4j интеграция spec.md plan.md tasks.md
005 - Загрузка документов spec.md plan.md tasks.md
006 - RAG Router spec.md plan.md tasks.md
007 - Graph RAG spec.md plan.md tasks.md
008 - Admin Search Mode spec.md plan.md tasks.md
009 - App Logging spec.md plan.md tasks.md
010 - Graph Search Keywords spec.md plan.md tasks.md
011 - Session Management UI spec.md plan.md tasks.md
012 - OpenRouter Embeddings spec.md plan.md tasks.md
014 - LangSmith Tracing spec.md plan.md tasks.md
015 - CLI QA Evaluation spec.md plan.md tasks.md
016 - Prompt Management spec.md plan.md tasks.md
017 - Remove Local Embeddings spec.md plan.md tasks.md
018 - Vite Frontend spec.md

Events History

Total: 125 events
M 018 vite frontend NiKoV-HET 02-06 04:23
PR 018 vite frontend NiKoV-HET 02-06 04:23
C fix eval team08 02-06 04:19
C change route team08 02-06 03:54
C fix conf team08 02-06 03:45
C remove confidence team08 02-06 03:26
C add spam filter team08 02-06 03:25
C fix citations team08 02-06 03:14
C add citations team08 02-06 02:36
C add scroll team08 02-06 02:30
C fix time team08 02-06 02:10
C update ux/ui team08 02-06 01:48
C update_docs team08 02-06 01:48
C fix chat team08 02-06 01:14
C fix chat team08 02-06 01:07
M 017 remove local embeddings NiKoV-HET 02-05 23:43
PR 017 remove local embeddings NiKoV-HET 02-05 23:42
M 016 prompt management NiKoV-HET 02-05 20:51
PR 016 prompt management NiKoV-HET 02-05 20:50
C add deepeval team08 02-05 20:41
Page 1 of 3