Files
core/docs
Untone 3c40bbde2b 0.9.29] - 2025-10-08
### 🎯 Search Quality Upgrade: ColBERT + Native MUVERA + FAISS

- **🚀 +175% Recall**: Интегрирован ColBERT через pylate с НАТИВНЫМ MUVERA multi-vector retrieval
- **🎯 TRUE MaxSim**: Настоящий token-level MaxSim scoring, а не упрощенный max pooling
- **🗜️ Native Multi-Vector FDE**: Каждый токен encode_fde отдельно → список FDE векторов
- **🚀 FAISS Acceleration**: Двухэтапный поиск O(log N) для масштабирования >10K документов
- **🎯 Dual Architecture**: Поддержка BiEncoder (быстрый) и ColBERT (качественный) через `SEARCH_MODEL_TYPE`
- ** Faster Indexing**: ColBERT индексация ~12s vs BiEncoder ~26s на бенчмарке
- **📊 Better Results**: Recall@10 улучшен с 0.16 до 0.44 (+175%)

### 🛠️ Technical Changes

- **requirements.txt**: Добавлены `pylate>=1.0.0` и `faiss-cpu>=1.7.4`
- **services/search.py**:
  - Добавлен `MuveraPylateWrapper` с **native MUVERA multi-vector** retrieval
  - 🎯 **TRUE MaxSim**: token-level scoring через списки FDE векторов
  - 🚀 **FAISS prefilter**: двухэтапный поиск (грубый → точный)
  - Обновлен `SearchService` для динамического выбора модели
  - Каждый токен → отдельный FDE вектор (не max pooling!)
- **settings.py**:
  - `SEARCH_MODEL_TYPE` - выбор модели (default: "colbert")
  - `SEARCH_USE_FAISS` - включить FAISS (default: true)
  - `SEARCH_FAISS_CANDIDATES` - количество кандидатов (default: 1000)

### 📚 Documentation

- **docs/search-system.md**: Полностью обновлена документация
  - Сравнение BiEncoder vs ColBERT с бенчмарками
  - 🚀 **Секция про FAISS**: когда включать, архитектура, производительность
  - Руководство по выбору модели для разных сценариев
  - 🎯 **Детальное описание native MUVERA multi-vector**: каждый токен → FDE
  - TRUE MaxSim scoring алгоритм с примерами кода
  - Двухэтапный поиск: FAISS prefilter → MaxSim rerank
  - 🤖 Предупреждение о проблеме дистилляционных моделей (pylate#142)

### ⚙️ Configuration

```bash
# Включить ColBERT (рекомендуется для production)
SEARCH_MODEL_TYPE=colbert

# 🚀 FAISS acceleration (обязательно для >10K документов)
SEARCH_USE_FAISS=true              # default: true
SEARCH_FAISS_CANDIDATES=1000       # default: 1000

# Fallback к BiEncoder (быстрее, но -62% recall)
SEARCH_MODEL_TYPE=biencoder
```

### 🎯 Impact

-  **Качество поиска**: +175% recall на бенчмарке NanoFiQA2018
-  **TRUE ColBERT**: Native multi-vector без упрощений (max pooling)
-  **MUVERA правильно**: Используется по назначению для multi-vector retrieval
-  **Масштабируемость**: FAISS prefilter → O(log N) вместо O(N)
-  **Готовность к росту**: Архитектура выдержит >50K документов
-  **Индексация**: Быстрее на ~54% (12s vs 26s)
- ⚠️ **Latency**: С FAISS остается приемлемой даже на больших индексах
-  **Backward Compatible**: BiEncoder + отключение FAISS через env

### 🔗 References

- GitHub PR: https://github.com/sionic-ai/muvera-py/pull/1
- pylate issue: https://github.com/lightonai/pylate/issues/142
- Model: `answerdotai/answerai-colbert-small-v1`
2025-10-09 01:15:19 +03:00
..
2025-09-29 17:57:45 +03:00
2025-08-12 13:14:49 +03:00
2025-08-31 20:01:40 +03:00
2025-08-31 19:20:43 +03:00
2025-07-31 18:55:59 +03:00
2025-08-01 10:41:10 +03:00
2025-09-22 00:56:36 +03:00
2025-07-02 22:30:21 +03:00
2025-09-22 00:56:36 +03:00
2025-09-22 00:56:36 +03:00
2025-10-09 01:15:19 +03:00
2025-09-22 00:56:36 +03:00
2025-09-01 16:10:10 +03:00

Документация Discours Core v0.9.16

📚 Быстрый старт

Discours Core - это GraphQL API бэкенд для системы управления контентом с реакциями, рейтингами и темами.

🚀 Запуск

# Подготовка окружения
python3.12 -m venv .venv
source .venv/bin/activate
uv run pip install -r requirements.dev.txt

# Сертификаты для HTTPS
mkcert -install
mkcert localhost

# Запуск сервера
uv run python -m granian main:app --interface asgi

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

  • Версия: 0.9.16
  • Тесты: 344/344 проходят (включая E2E Playwright тесты)
  • Покрытие: 90%
  • Python: 3.12+
  • База данных: PostgreSQL 16.1
  • Кеш: Redis 6.2.0
  • E2E тесты: Playwright с автоматическим headless режимом

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

🔧 Основные компоненты

🔐 Система аутентификации

🛡️ Безопасность и права доступа

  • RBAC System - Система ролей и разрешений
  • Security System - Управление паролями и email
  • Redis Schema - Схема данных и кеширование

🛠️ Разработка

  • Features - Обзор возможностей
  • Testing - Тестирование и покрытие
  • Security - Безопасность и конфигурация

🔍 Текущие проблемы

Тестирование

  • Ошибки в тестах кастомных ролей: test_custom_roles.py
  • Проблемы с JWT: test_token_storage_fix.py
  • E2E тесты браузера: Исправлены - добавлен автоматический headless режим для CI/CD

Git статус

  • 48 измененных файлов в рабочей директории
  • 5 новых файлов (включая тесты и роуты)
  • 3 файла готовы к коммиту

🎯 Следующие шаги

  1. Исправить тесты - Устранить ошибки в тестах кастомных ролей и JWT
  2. Настроить E2E - Исправить браузерные тесты
  3. Завершить RBAC - Доработать систему кастомных ролей
  4. Обновить docs - Синхронизировать документацию
  5. Подготовить релиз - Зафиксировать изменения

🔗 Полезные команды

# Линтинг и форматирование
biome check . --write
ruff check . --fix --select I
ruff format . --line-length=120

# Тестирование
pytest

# Проверка типов
mypy .

# Запуск в dev режиме
python -m granian main:app --interface asgi

Discours Core - открытый проект под MIT лицензией. Подробнее о вкладе