Sign inSign up

mdkrushr/vera-ai

By mdkrushr

•Updated 7 months ago

Persistent Memory Proxy for Ollama - Gives your AI conversations lasting memory

Image
1

2.1K

mdkrushr/vera-ai repository overview

⁠Vera-AI - Persistent Memory Proxy for Ollama

Vera (Latin): True — True AI Memory


⁠What is Vera-AI?

Vera-AI is a transparent proxy for Ollama that adds persistent memory using Qdrant vector storage. It sits between your AI client and Ollama, automatically augmenting conversations with relevant context from previous sessions.

Every conversation is remembered.


⁠How It Works

Client → Vera-AI:11434 → Ollama:11434 → Response
              ↓
         Qdrant:6333
              ↓
         Memory Storage
  1. Request comes from client to Vera-AI
  2. Query semantic memory from Qdrant
  3. Forward augmented request to Ollama
  4. Store conversation turn in Qdrant
  5. Return response to client

⁠Quick Start

# Pull from Docker Hub
docker pull mdkrushr/vera-ai:latest

# Run with Ollama and Qdrant
docker run -d \
  --name VeraAI \
  --restart unless-stopped \
  --network host \
  -e APP_UID=$(id -u) \
  -e APP_GID=$(id -g) \
  -e TZ=America/Chicago \
  -v ./config/config.toml:/app/config/config.toml:ro \
  -v ./prompts:/app/prompts:rw \
  -v ./logs:/app/logs:rw \
  mdkrushr/vera-ai:latest

⁠Prerequisites

ServiceDescription
OllamaLLM inference server (curl https://ollama.ai/install.sh | sh)
QdrantVector database (docker run -d -p 6333:6333 qdrant/qdrant)
DockerContainer runtime
⁠Install Ollama
curl https://ollama.ai/install.sh | sh
ollama pull snowflake-arctic-embed2  # Embedding model
ollama pull llama3.1                   # Chat model

⁠Features

FeatureDescription
🧠 Persistent MemoryConversations stored in Qdrant
📅 Daily CurationAutomatic memory cleanup
🔍 4-Layer ContextSystem + semantic + recent + current
👤 Configurable UID/GIDMatch container user to host
🌍 Timezone SupportScheduler runs in your timezone

⁠Configuration

⁠Environment Variables
VariableDefaultDescription
APP_UID999Container user ID
APP_GID999Container group ID
TZUTCContainer timezone
VERA_DEBUGfalseEnable debug logging
⁠config.toml
[general]
ollama_host = "http://127.0.0.1:11434"
qdrant_host = "http://127.0.0.1:6333"
qdrant_collection = "memories"
embedding_model = "snowflake-arctic-embed2"
debug = false

[layers]
semantic_token_budget = 25000
context_token_budget = 22000
semantic_search_turns = 2
semantic_score_threshold = 0.6

[curator]
run_time = "02:00"
full_run_time = "03:00"
full_run_day = 1
curator_model = "llama3.1"

⁠API Endpoints

EndpointMethodDescription
/GETHealth check
/api/chatPOSTChat completion (with memory)
/api/tagsGETList models
/curator/runPOSTTrigger curator manually

⁠Verify Installation

# Health check
curl http://localhost:11434/
# Expected: {"status":"ok","ollama":"reachable"}

# Test chat
curl -X POST http://localhost:11434/api/chat \
  -H "Content-Type: application/json" \
  -d '{"model":"llama3.1","messages":[{"role":"user","content":"hello"}],"stream":false}'

⁠Source Code

GitHub: https://github.com/speedyfoxai/vera-ai⁠


⁠License

MIT License - Brought to you by SpeedyFoxAi

Tag summary

Content type

Image

Digest

sha256:ae30b62a1…

Size

90.6 MB

Last updated

7 months ago

docker pull mdkrushr/vera-ai