← all repositories
continuum-llms/chatgpt-memory

ChatGPT with a Redis-backed long-term memory, now archived

An early attempt to give ChatGPT persistent, searchable memory across sessions using vector embeddings and Redis.

530 stars Python Chat AssistantsRAG · Search
chatgpt-memory
Velocity · 7d
+0.4
★ / day
Trend
steady
star history

What it does

Wraps the OpenAI API in a Python layer that stores conversation history in Redis as vector embeddings. When you start a new chat, it retrieves the most relevant past exchanges by semantic similarity and injects them into the prompt. A FastAPI server and Streamlit UI are included if you don’t want to use the terminal.

The interesting bit

The project treats memory as a retrieval problem, not a storage problem. It uses OpenAI’s embedding API to turn messages into vectors, then queries Redis for the top-k most similar past turns. This was a pragmatic hack around ChatGPT’s fixed context window—before OpenAI shipped their own retrieval plugin.

Key highlights

  • Modular design: swap in your own datastore or embedding client if Redis/OpenAI aren’t your stack
  • MemoryManager handles the vector search plumbing so the chat client stays simple
  • Includes a working Streamlit UI (borrowed from MemoryBot) and FastAPI backend
  • Development has discontinued; the README explicitly points to OpenAI’s official retrieval plugin instead

Caveats

  • The project is archived; no further commits or maintenance
  • “Infinite memory” is aspirational—the README doesn’t specify deduplication, memory decay, or cost controls for embedding storage
  • Requires wiring together four separate client classes manually; the “simple usage” example is 40+ lines of boilerplate

Verdict

Worth a quick read if you’re building your own RAG-style memory layer and want to see a minimal Python implementation. Skip it if you need something production-ready; OpenAI’s plugin or any modern framework (LangChain, etc.) has superseded this.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.