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

✍️ OpenClawRadar📅 Опубликовано: 20 марта 2026 г.🔗 Source
Локальный семантический поиск для AI-диалогов с использованием fastembed и LanceDB
Ad

Разработчик реализовал локальную систему семантического поиска по истории диалогов с ИИ, обработав 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.
Ad

Метрики производительности

  • Всего обработано сообщений: 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

Ad

👀 Смотрите также

Storybloq: трекер проектов для Claude Code с Mac-приложением, CLI и MCP
Инструменты

Storybloq: трекер проектов для Claude Code с Mac-приложением, CLI и MCP

Storybloq — это бесплатный трекер проектов с открытым исходным кодом, который живёт в .story/ внутри вашего репозитория. Он включает приложение для Mac (App Store), CLI и MCP-сервер, предоставляющий задачи, тикеты и передачу сессий Claude Code.

OpenClawRadar
certctl: Платформа для управления жизненным циклом сертификатов с самостоятельным хостингом, предоставляющая 78 API-эндпоинтов для автоматизации с помощью AI-агентов.
Инструменты

certctl: Платформа для управления жизненным циклом сертификатов с самостоятельным хостингом, предоставляющая 78 API-эндпоинтов для автоматизации с помощью AI-агентов.

certctl — это самодостаточная платформа для управления жизненным циклом сертификатов, написанная на Go и TypeScript, которая предоставляет 78 REST API-эндпоинтов для управления сертификатами. Платформа не зависит от эмитента и целевой системы, а также планируется внедрение MCP-сервера для предоставления всего функционала в виде нативных инструментов MCP.

OpenClawRadar
Deblank: Инструмент для Удаления Форматирования Кода с Целью Сокращения Токенов для LLM
Инструменты

Deblank: Инструмент для Удаления Форматирования Кода с Целью Сокращения Токенов для LLM

Deblank — это инструмент с открытым исходным кодом, который удаляет форматирование кода (отступы, пробелы, переносы строк) перед отправкой в LLM, сокращая количество токенов примерно на 30% для Java/C++ и на 9% для Python с задержкой около 76 мс. Поддерживает Python, Java, C/C++, C#, JS/TS и Go.

OpenClawRadar
Statespace: Создавайте интерактивные веб-приложения для агентов OpenClaw с помощью Markdown
Инструменты

Statespace: Создавайте интерактивные веб-приложения для агентов OpenClaw с помощью Markdown

Statespace — это бесплатный, открытый фреймворк для создания и обмена веб-приложениями, совместимыми с ИИ, которыми агенты OpenClaw могут управлять и взаимодействовать с ними, используя чистый Markdown. Он позволяет определять инструменты, компоненты и инструкции в Markdown-файлах, к которым агенты получают доступ через HTTP.

OpenClawRadar