La recherche hybride avec RRF améliore le système de mémoire de l'IA par rapport à la recherche vectorielle pure.

Un système de mémoire open-source pour assistants IA a été développé, utilisant PostgreSQL avec pgvector dans une configuration locale et auto-hébergée. Le système stocke des informations pour que les assistants IA puissent s'en souvenir entre les sessions et les rend consultables.
Pourquoi la recherche vectorielle pure ne suffisait pas
Le développeur a commencé avec une recherche vectorielle pure : intégration des requêtes, utilisation de la similarité cosinus et renvoi des k meilleurs résultats. Bien que cela fonctionnait pour des questions vagues, cela échouait systématiquement sur les correspondances exactes. Par exemple, rechercher "RRF merging" renvoyait des extraits sur "combining ranked lists" datant de plusieurs mois au lieu du document qui dit littéralement "RRF merging".
Solution de recherche hybride
La solution a impliqué l'ajout d'un deuxième bras de recherche : la recherche en texte intégral utilisant tsvector de PostgreSQL avec un index GIN. Cette correspondance par mots-clés capture ce que la recherche vectorielle manque. Cependant, cela a créé deux listes classées qui devaient être fusionnées.
Fusion de Rangs Réciproque (RRF)
La Fusion de Rangs Réciproque s'est avérée être la solution pour fusionner les deux listes classées. La formule est simple : score = 1 / (k + rang), où k=60 (la valeur standard). Les résultats qui apparaissent dans les deux listes obtiennent les deux scores additionnés. Cette approche ne nécessite aucun réglage de poids et aucune normalisation de score entre la similarité cosinus et ts_rank—elle utilise uniquement les positions de rang.
Technique d'enrichissement des requêtes
Avant la recherche, le système passe les requêtes dans le tokenizer WordPiece du modèle d'intégration pour extraire les termes clés (jetons multi-sous-mots qui sont probablement techniques ou spécifiques au domaine). Cela génère jusqu'à 3 variations de requête, intègre toutes et recherche en parallèle. Cela capture les résultats qu'une formulation pourrait manquer.
Stack technique
- PostgreSQL 16 + pgvector (index HNSW pour les vecteurs, index GIN pour le texte intégral)
- all-MiniLM-L6-v2 pour les intégrations (384 dimensions, fonctionne sur CPU)
- Python avec psycopg 3 asynchrone
- 3 adaptateurs d'ingestion : markdown, texte brut et JSON de conversation Claude
L'ensemble du système fonctionne localement sans appels API pour les intégrations et sans dépendances cloud. Le code a été récemment livré, et le développeur a écrit un article de blog détaillé sur l'approche complète.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Pali v0.1 : Infrastructure de mémoire open source pour LLM avec des benchmarks reproductibles
Pali est une infrastructure de mémoire open source pour les LLM, construite en Go sous forme d'un binaire unique avec des API multi-locataires, une récupération hybride et des extensions plug-and-play. La version v0.1 inclut une suite de benchmarks avec des résultats reproductibles montrant les métriques de performance pour différentes configurations.

200+ spécifications de conception d'applications en Markdown – Glissez dans Claude ou Cursor pour des clones UI exacts
Une bibliothèque organisée de plus de 200 applications populaires sous forme de spécifications de conception Markdown structurées, avec codes hexadécimaux exacts, échelle typographique, espacements, chaque état d'écran et graphe de navigation. Importez-la dans Claude, Cursor ou tout agent d'IA pour générer des clones SwiftUI, Jetpack Compose ou Expo UI sans deviner les couleurs ou les espacements.

ClawCall : Compétence OpenClaw pour les appels téléphoniques IA avec mode pont
ClawCall est une compétence OpenClaw qui permet aux agents IA de passer de véritables appels téléphoniques, de naviguer dans les menus, de patienter en attente et de mener des conversations. Elle inclut un mode pont qui vous met en ligne lorsqu'un humain décroche.

Utiliser un serveur MCP pour optimiser les applications React Native avec Claude Code
Un serveur MCP diffuse en direct des données d'exécution d'une application React Native vers Claude Code, identifiant des problèmes de performance comme le battement du store Zustand et des re-rendus inutiles.