Локальный семантический поиск для AI-диалогов с использованием fastembed и LanceDB

Разработчик реализовал локальную систему семантического поиска по истории диалогов с ИИ, обработав 368 тысяч сообщений без зависимостей от облачных сервисов или API-ключей. Проект использует fastembed с моделью BAAI/bge-small-en-v1.5 для эмбеддингов на CPU и LanceDB в качестве векторного хранилища, работающего как одиночная директория без серверного процесса.
Технический стек
- Эмбеддинги: fastembed с моделью BAAI/bge-small-en-v1.5 (384 измерения)
- Векторное хранилище: LanceDB — одиночная директория, без серверного процесса, с поддержкой добавления
- Импорт данных: Загрузка из JSONL-транскриптов сессий (Claude Code, любой экспорт чатов)
- Производительность эмбеддинга: ~500 документов/сек на процессоре M4
Ключевые детали реализации
За 4 месяца итераций разработчик извлёк несколько практических уроков:
- Избирательный эмбеддинг: Ранние версии обрабатывали каждое сообщение, что снижало соотношение сигнал/шум. Текущая реализация эмбеддит только сообщения пользователей и содержательные ответы ассистента (пропуская ответы вроде «конечно, вот код»), сокращая количество векторов на 60% и улучшая качество поиска.
- Стратегия чанкинга: Переход от чанков фиксированного размера к чанкам по репликам в диалоге значительно повысил релевантность поиска. Выбор модели (пробовались nomic-embed-text, bge-large, all-MiniLM) показал меньшую разницу по сравнению с подходом к чанкингу.
- Преимущества LanceDB: Разработчик назвал LanceDB «невероятно недооценённым для персонального масштаба» — без сервера, Docker, просто директория с мгновенным добавлением новых векторов, заменившая переусложнённую настройку pgvector.
- Рабочий процесс переэмбеддинга: Модель bge-small-en-v1.5 с 384 измерениями достаточно быстра для переэмбеддинга каждый час через cron-задачу. Полная переиндексация 117 тысяч векторов занимает примерно 4 минуты на железе M2.
Метрики производительности
- Всего обработано сообщений: 407 тысяч
- Проиндексировано векторов: 87 тысяч
- Задержка поиска (p50): 12 мс на 117 тысячах векторов
- Время полной переиндексации: ~4 минуты (M2)
- Хранилище: ~180 МБ на диске
- Требуется API-ключей: 0
Проект имеет открытый исходный код под лицензией MIT и доступен по адресу github.com/mordechaipotash/brain-mcp. Установка выполняется через pipx install brain-mcp && brain-mcp setup.
📖 Read the full source: r/LocalLLaMA
👀 Смотрите также

RCFlow: оркестратор с открытым исходным кодом для Claude Code, Codex и OpenCode с управлением несколькими сессиями
RCFlow — это оркестратор для AI-агентов программирования (Claude Code, Codex, OpenCode) под лицензией AGPL v3, предоставляющий единый интерфейс для управления параллельными сессиями на разных машинах, с поддержкой worktree, планирования задач, отслеживания артефактов и телеметрии в реальном времени.

Garry Tan's gstack: Открытая фреймворк-платформа для ИИ-агентов на основе Claude Code
gstack от Гарри Тана — это фабрика программного обеспечения с открытым исходным кодом, которая превращает Claude Code в виртуальную инженерную команду с 13 специализированными слеш-командами для планирования, проектирования, разработки, ревью, контроля качества и управления выпуском.

Клод Сыщик: 56-шаговая рабочая процедура для расследований с помощью Claude AI
Claude Sleuth — это структурированный рабочий процесс для расследований в Claude AI, состоящий из 6 этапов и 56 задач. Он включает постоянное хранение состояния через Cloudflare D1 и стандартизированные соглашения о выводе данных, такие как временные метки ISO 8601, записи сущностей по схеме POLE и вероятностный язык ICD 203.

OpenClaw Skill Pack: Набор команд более 2,500 для настоящих автономных операций на Ubuntu
Новый пакет навыков для агентов OpenClaw AI представляет более 2500 навыков выполнения для операций DevOps, таких как управление Docker, настройка сетей, реагирование на уязвимости CVE и автоматизация систем в средах Ubuntu.