Гибридный поиск с использованием RRF улучшает систему памяти ИИ по сравнению с чистым векторным поиском.

✍️ OpenClawRadar📅 Опубликовано: 15 апреля 2026 г.🔗 Source
Гибридный поиск с использованием RRF улучшает систему памяти ИИ по сравнению с чистым векторным поиском.
Ad

Разработана система памяти с открытым исходным кодом для ИИ-ассистентов, использующая PostgreSQL с pgvector в локальной, самостоятельно размещаемой конфигурации. Система хранит информацию для запоминания ИИ-ассистентами между сессиями и делает её доступной для поиска.

Почему чистого векторного поиска было недостаточно

Разработчик начал с чистого векторного поиска: преобразование запросов в эмбеддинги, использование косинусного сходства и возврат топ-k результатов. Хотя это работало для расплывчатых вопросов, оно постоянно давало сбой на точных совпадениях. Например, поиск "RRF merging" возвращал фрагменты о "combining ranked lists" месячной давности вместо документа, который буквально содержит "RRF merging".

Решение гибридного поиска

Решение включало добавление второго компонента поиска: полнотекстовый поиск с использованием tsvector PostgreSQL с индексом GIN. Это сопоставление по ключевым словам улавливает то, что пропускает векторный поиск. Однако это создало два ранжированных списка, которые нужно было объединить.

Reciprocal Rank Fusion (RRF)

Reciprocal Rank Fusion оказался решением для объединения двух ранжированных списков. Формула проста: оценка = 1 / (k + ранг), где k=60 (стандартное значение). Результаты, появляющиеся в обоих списках, получают сумму обеих оценок. Этот подход не требует настройки весов и нормализации оценок между косинусным сходством и ts_rank — он использует только позиции рангов.

Ad

Техника обогащения запросов

Перед поиском система пропускает запросы через токенизатор WordPiece модели эмбеддингов для извлечения ключевых терминов (многосоставные токены, которые, вероятно, являются техническими или предметными терминами). Это генерирует до 3 вариантов запроса, преобразует их все в эмбеддинги и выполняет поиск параллельно. Это позволяет находить результаты, которые могли быть пропущены при одной формулировке.

Технологический стек

  • PostgreSQL 16 + pgvector (индекс HNSW для векторов, индекс GIN для полнотекстового поиска)
  • all-MiniLM-L6-v2 для эмбеддингов (384 измерения, работает на CPU)
  • Python с асинхронным psycopg 3
  • 3 адаптера для загрузки данных: markdown, обычный текст и JSON диалогов Claude

Вся система работает локально без вызовов API для эмбеддингов и без зависимостей от облачных сервисов. Код недавно выпущен, и разработчик написал подробный пост в блоге о полном подходе.

📖 Read the full source: r/LocalLLaMA

Ad

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

Нулевая задержка: Постоянный слой памяти для ИИ-агентов через MCP
Инструменты

Нулевая задержка: Постоянный слой памяти для ИИ-агентов через MCP

0Latency — это MCP-сервер, который добавляет постоянную память для Claude и других ИИ-агентов, сохраняя воспоминания между сессиями, чтобы предотвратить потерю контекста. Он работает нативно с Claude Desktop, Claude Code, claude.ai, GPT, Gemini, Cursor и любыми MCP-совместимыми агентами.

OpenClawRadar
Canopy: Терминальная панель управления для работы с несколькими кодовыми агентами Claude
Инструменты

Canopy: Терминальная панель управления для работы с несколькими кодовыми агентами Claude

Canopy — это инструмент с открытым исходным кодом для терминала, который предоставляет единую панель управления для отслеживания нескольких ИИ-агентов программирования, работающих в разных рабочих деревьях git. Он показывает состояния агентов (работает, бездействует, ожидает ввода, завершён, ошибка) и позволяет переходить в сессии или отправлять ввод без полного переключения.

OpenClawRadar
Создание геологических часов с помощью Claude Code: единый HTML + Three.js
Инструменты

Создание геологических часов с помощью Claude Code: единый HTML + Three.js

Продуктовый дизайнер создал eona.earth — геологические часы, отображающие 4,5 миллиарда лет Земли за 12 часов, используя Claude Code, Three.js и пользовательские шейдеры WebGL, всё в одном HTML-файле без этапа сборки.

OpenClawRadar
tmux-IDE: Терминальная мультиагентная среда разработки для Claude
Инструменты

tmux-IDE: Терминальная мультиагентная среда разработки для Claude

tmux-IDE — это открытый, декларативный терминальный IDE, ориентированный на агентную инженерию, который создаёт мультиагентные макеты для кодирующих агентов Claude. Он позволяет разработчикам загружаться в свою IDE через SSH, давать промты Claude и закрывать свой компьютер, пока Claude продолжает работать в tmux-сессиях.

OpenClawRadar