Featured image of post fmem - memória semântica para sistemas de baixos recursos

fmem - memória semântica para sistemas de baixos recursos

Memória semântica local-first para conversas com IA. Construído para Raspberry Pi. Indexação em nível de chunk, ranqueamento multi-fator, zero chamadas a APIs externas.

Visão Geral

O fmem é um sistema de memória local-first que torna as conversas com IA naturais e contínuas. Ele lembra o contexto preciso que você precisa. Não documentos inteiros ou palavras-chave isoladas, mas os chunks significativos que importam.

Inovação Central: O chunking híbrido divide documentos de forma inteligente. Usa chunks de 800 caracteres com splitting atômico consciente de tabelas e detecção de limites de cabeçalho—sem limites arbitrários de tokens.

Nota: Esta é uma abordagem entre muitas (LlamaIndex, Chroma, armazenamentos vetoriais simples). O fmem foi construído especificamente para Raspberry Pi — dependências mínimas, local-first, roda em hardware restrito.

Pré-requisitos

  • Python 3.9+
  • pip
  • ~22MB para pesos do modelo (baixado na primeira execução)

Principais Funcionalidades

Funcionalidade Descrição
Indexação em nível de chunk Recupera seções relevantes, não arquivos inteiros
Ranqueamento multi-fator Semântico (50%) + Recência (30%) + Localização (20%)
Zero APIs externas Todos os embeddings rodam localmente via FastEmbed. A primeira execução baixa um modelo de ~22MB.
Chunking consciente de tabelas Tabelas tratadas como unidades atômicas
Privacy-first Sua memória permanece na sua máquina

Como Funciona

1
2
3
4
5
User Message → Trigger Detection → fmem Search
                              Multi-Factor Scoring
                              Contextual Response

Ranqueamento Multi-Fator:

  • Semântico (50%): Similaridade vetorial FAISS
  • Recência (30%): Decaimento baseado em tempo na modificação do arquivo
  • Localização (20%): Importância do diretório (docs > notas > chats)

Desempenho

  • Indexação: ~1,5s por arquivo markdown de 7KB
  • Busca: Sub-100ms para consultas típicas
  • Memória: Tamanho do modelo ~22MB, cabe em sistemas embarcados

Início Rápido

1
2
pip install fmem
fmem status

Configuração mínima (~/.openclaw/memory/fmem.conf):

1
data_dir = ~/.openclaw/memory/

Casos de Uso

  • Assistentes pessoais de IA — Lembrar contexto entre sessões
  • Trabalho exploratório — Indexar notas diárias; o fmem recorda momentos específicos, como “aquela ideia de fluxo de auth da terça-feira passada”
  • Gestão de conhecimento — Busca semântica sobre notas, decisões, documentos

Detalhes Técnicos

  • Embedding: all-minilm:22m via FastEmbed (local, sem API)
  • Tamanho do chunk: 800 caracteres (restrito pelo modelo para 512 tokens)
  • Index: FAISS para busca de similaridade rápida
  • Licença: MIT
Share
Criado com Hugo
Tema Stack desenvolvido por Jimmy