Гибридный поиск с использованием 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

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

Claude Code Studio: Открытое настольное приложение для управления несколькими сессиями кодирования Claude
Инструменты

Claude Code Studio: Открытое настольное приложение для управления несколькими сессиями кодирования Claude

Claude Code Studio v0.9.3 — это открытое настольное приложение с многопанельным интерфейсом для управления несколькими сессиями Claude Code CLI. Оно решает типичные проблемы рабочего процесса, такие как переключение между вкладками терминала, сохранение сессий и повторение инструкций.

OpenClawRadar
ThumbGate реализует паттерн управления агентами на естественном языке от Цинхуа для обеспечения безопасности ИИ.
Инструменты

ThumbGate реализует паттерн управления агентами на естественном языке от Цинхуа для обеспечения безопасности ИИ.

Инструмент с открытым исходным кодом ThumbGate реализует шаблон Natural-Language Agent Harness из статьи NLAH университета Цинхуа, сопоставляя четыре компонента: контракты с правилами предотвращения на основе негативных отзывов, шлюзы проверки с хуками PreToolUse, устойчивое состояние с базой данных уроков SQLite+FTS5 и адаптеры с адаптерами сервера MCP для нескольких ИИ-агентов программирования.

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

Создание полноценного продакшен-приложения с Claude: что действительно сработало, а что нет

Старший бэкенд-разработчик с нулевым опытом Flutter за 2,5 месяца выпустил полноценное приложение (iOS + Android), используя Claude как основной инструмент. Подробно описывает рабочий процесс, неудачи и почему тесты стали гарантом качества.

OpenClawRadar
LLMock: HTTP-сервер для мокинга, обеспечивающий детерминированное тестирование LLM между процессами
Инструменты

LLMock: HTTP-сервер для мокинга, обеспечивающий детерминированное тестирование LLM между процессами

LLMock — это реальный HTTP-сервер, который мокает API OpenAI, Claude и Gemini, позволяя разработчикам запускать детерминированные тесты в нескольких процессах без обращения к реальным API. Он поддерживает SSE-стриминг, вызовы инструментов, предикатную маршрутизацию и журналирование запросов без зависимостей.

OpenClawRadar