3.2 KiB
3.2 KiB
🧠 neomem
neomem is a local-first vector memory engine derived from the open-source Mem0 project.
It provides persistent, structured storage and semantic retrieval for AI companions like Lyra — with zero cloud dependencies.
🚀 Overview
- Origin: Forked from Mem0 OSS (Apache 2.0)
- Purpose: Replace Mem0 as Lyra’s canonical on-prem memory backend
- Core stack:
- FastAPI (API layer)
- PostgreSQL + pgvector (structured + vector data)
- Neo4j (entity graph)
- Language: Python 3.11+
- License: Apache 2.0 (original Mem0) + local modifications © 2025 ServersDown Labs
⚙️ Features
| Layer | Function | Notes |
|---|---|---|
| FastAPI | /memories, /search endpoints |
Drop-in compatible with Mem0 |
| Postgres (pgvector) | Memory payload + embeddings | JSON payload schema |
| Neo4j | Entity graph relationships | auto-linked per memory |
| Local Embedding | via Ollama or OpenAI | configurable in .env |
| Fully Offline Mode | ✅ | No external SDK or telemetry |
| Dockerized | ✅ | docker-compose.yml included |
📦 Requirements
- Docker + Docker Compose
- Python 3.11 (if running bare-metal)
- PostgreSQL 15+ with
pgvectorextension - Neo4j 5.x
- Optional: Ollama for local embeddings
Dependencies (requirements.txt):
fastapi==0.115.8
uvicorn==0.34.0
pydantic==2.10.4
python-dotenv==1.0.1
psycopg>=3.2.8
ollama
🧩 Setup
-
Clone & build
git clone https://github.com/serversdown/neomem.git cd neomem docker compose -f docker-compose.neomem.yml up -d --build -
Verify startup
curl http://localhost:7077/docsExpected output:
✅ Connected to Neo4j on attempt 1 INFO: Uvicorn running on http://0.0.0.0:7077
🔌 API Endpoints
Add Memory
POST /memories
{
"messages": [
{"role": "user", "content": "I like coffee in the morning"}
],
"user_id": "brian"
}
Search Memory
POST /search
{
"query": "coffee",
"user_id": "brian"
}
🗄️ Data Flow
Request → FastAPI → Embedding (Ollama/OpenAI)
↓
Postgres (payload store)
↓
Neo4j (graph links)
↓
Search / Recall
🧱 Integration with Lyra
- Lyra Relay connects to
neomem-api:8000(Docker) orlocalhost:7077(local). - Identical endpoints to Mem0 mean no code changes in Lyra Core.
- Designed for persistent, private operation on your own hardware.
🧯 Shutdown
docker compose -f docker-compose.neomem.yml down
Then power off the VM or Proxmox guest safely.
🧾 License
neomem is a derivative work based on the Mem0 OSS project (Apache 2.0).
It retains the original Apache 2.0 license and adds local modifications.
© 2025 ServersDown Labs / Terra-Mechanics.
All modifications released under Apache 2.0.
📅 Version
neomem v0.1.0 — 2025-10-07
Initial fork from Mem0 OSS with full independence and local-first architecture.