Lokale semantische Suche für KI-Gespräche mit fastembed und LanceDB

Ein Entwickler hat ein lokales semantisches Suchsystem für KI-Konversationsverläufe implementiert, das 368K Nachrichten ohne Cloud-Abhängigkeiten oder API-Schlüssel verarbeitet. Das Projekt verwendet fastembed mit dem BAAI/bge-small-en-v1.5-Modell für CPU-basierte Embeddings und LanceDB als Vektorspeicher, der als einzelnes Verzeichnis ohne Serverprozess arbeitet.
Technischer Stack
- Embeddings: fastembed mit BAAI/bge-small-en-v1.5-Modell (384 Dimensionen)
- Vektorspeicher: LanceDB - einzelnes Verzeichnis, kein Serverprozess, anhangsfreundlich
- Erfassung: Bezieht Daten aus JSONL-Session-Transkripten (Claude Code, beliebiger Chat-Export)
- Embedding-Leistung: ~500 Dokumente/Sekunde auf M4-CPU
Wichtige Implementierungsdetails
Der Entwickler hat während der 4-monatigen Iteration mehrere praktische Erkenntnisse gewonnen:
- Selektives Embedding: Frühere Versionen haben jede Nachricht eingebettet, was das Signal-Rausch-Verhältnis verringerte. Die aktuelle Implementierung bettet nur Benutzernachrichten und substanzielle Assistentennachrichten ein (überspringt Antworten wie "sicher, hier ist der Code"), wodurch die Vektoranzahl um 60% reduziert wird und die Suchqualität verbessert wird.
- Chunking-Strategie: Der Wechsel von festen Chunk-Größen zu Konversationswechsel-Chunks hat einen enormen Unterschied in der Abrufrelevanz gemacht. Die Modellauswahl (getestet wurden nomic-embed-text, bge-large, all-MiniLM) zeigte im Vergleich zum Chunking-Ansatz nur marginale Unterschiede.
- LanceDB-Vorteile: Der Entwickler fand LanceDB "dumm unterschätzt für persönliche Maßstäbe" - kein Server, kein Docker, nur ein Verzeichnis mit sofortigem Anhängen neuer Vektoren, das eine überkomplizierte pgvector-Einrichtung ersetzt.
- Re-Embedding-Workflow: Das bge-small-en-v1.5-Modell mit 384 Dimensionen ist schnell genug, um stündlich als Cron-Job neu eingebettet zu werden. Eine vollständige Neuindizierung von 117K Vektoren dauert auf M2-Hardware etwa 4 Minuten.
Leistungsmetriken
- Gesamte erfasste Nachrichten: 407K
- Indizierte Vektoren: 87K
- Suchlatenz (p50): 12ms über 117K Vektoren
- Vollständige Neuindizierungszeit: ~4 Minuten (M2)
- Speicher: ~180MB auf der Festplatte
- Benötigte API-Schlüssel: 0
Das Projekt ist unter der MIT-Lizenz quelloffen und verfügbar unter github.com/mordechaipotash/brain-mcp. Die Installation erfolgt über pipx install brain-mcp && brain-mcp setup.
📖 Read the full source: r/LocalLLaMA
👀 Siehe auch

AGI in md: 11 kognitive Komprimierungsstufen für Claude-Systemprompts
Ein GitHub-Repository dokumentiert 11 Stufen kognitiver Kompression, die in Claude-Systemprompts kodiert werden können, wobei Stufe 8 von der Analyse zur Konstruktion wechselt und Haikus Leistung von 0/3 auf 4/4 verbessert. Das Projekt umfasst 28 Prompts, 299 Rohausgaben und vollständige Experimentprotokolle über 19 Domänen hinweg.

Einseitige Chatbot-Oberfläche für lokal laufendes Gemma 4 26B A4B
Ein Entwickler hat einen Chatbot auf einer einzelnen HTML-Seite erstellt, der mit lokal laufendem Gemma 4 26B A4B verbunden ist und einen 32K-Kontextfenster mit 50-65 Token/Sekunde nutzt, aufgeteilt zwischen einer 7900 XT und einer 3060 Ti GPU. Die Oberfläche bietet vollständiges Streaming, Markdown-Rendering und Parametersteuerungen.

Anwendung der Claude-Code-Architektur auf lokale 9B-Modelle: Wichtige Erkenntnisse und Optimierungen
Ein Entwickler extrahierte Architekturmuster aus dem geleakten Quellcode von Claude Code und wandte 10 Optimierungen auf qwen3.5:9b an, das lokal auf einer RTX 5070 Ti läuft. Die wichtigste Erkenntnis war, dass qwen3.5:9b native strukturierte tool_calls hat, und die größte Einschränkung für 9B-Modelle ist die Selbstdisziplin, zu wissen, wann man mit dem Erkunden aufhören und mit der Ausgabeerzeugung beginnen soll.

Terrarium: Open-Source Sandbox für agentische Umgebungen mit Time-Machine-Rückspulfunktion
Eine vielseitige Sandbox-Lösung, um mehrere KI-Agenten sicher auf jedem VPS oder in der Cloud auszuführen. Bietet isolierte Welten, Reverse-Proxy-Verwaltung, GUIs und eine Zeitmaschine zum Zurückspulen des Container-Zustands.