This commit is contained in:
huaqingxu
2026-03-06 23:09:44 +08:00
parent ba8e1865ed
commit 84d210829d
4 changed files with 44 additions and 8 deletions

4
.env
View File

@@ -3,7 +3,9 @@ CHROMA_DB_PATH=/app/data/chroma_db
CHROMA_COLLECTION_NAME=memories
# SQLite Configuration
SQLITE_DB_PATH=/app/data/graph_store.db
NEO4J_URI=bolt://neo4j:7687
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=mem0graph
# Ollama Configuration
# When using Docker Compose with Ollama service, use: http://ollama:11434

View File

@@ -103,3 +103,15 @@ Before running the server, ensure you have:
- `DELETE /memories` - Delete all memories for an identifier
- `POST /reset` - Reset all memories
- `GET /docs` - OpenAPI documentation
# 验证
测试 ollama
curl http://localhost:11434/api/embeddings \
-d '{
"model":"nomic-embed-text",
"prompt":"hello world"
}'
测试 mem0

View File

@@ -22,6 +22,7 @@ services:
- PYTHONUNBUFFERED=1 # Ensures Python output is sent straight to terminal
depends_on:
- ollama
- neo4j
# ollama:
# condition: service_healthy
@@ -43,6 +44,29 @@ services:
- "11434:11434"
# profiles: ["gpu"]
neo4j:
image: neo4j:5.26.4
networks:
- mem0_network
# healthcheck:
# test: wget http://localhost:7687 || exit 1
# interval: 1s
# timeout: 10s
# retries: 20
# start_period: 90s
ports:
- "8474:7474" # HTTP
- "8687:7687" # Bolt
volumes:
- ./data/neo4j_data:/data
environment:
- NEO4J_AUTH=neo4j/mem0graph
- NEO4J_PLUGINS=["apoc"] # Add this line to install APOC
- NEO4J_apoc_export_file_enabled=true
- NEO4J_apoc_import_file_enabled=true
- NEO4J_apoc_import_file_use__neo4j__config=true
volumes:
ollama_data: {}

12
main.py
View File

@@ -18,8 +18,9 @@ load_dotenv()
CHROMA_DB_PATH = os.environ.get("CHROMA_DB_PATH", "/app/chroma_db")
CHROMA_COLLECTION_NAME = os.environ.get("CHROMA_COLLECTION_NAME", "memories")
# SQLite configuration for graph store
SQLITE_DB_PATH = os.environ.get("SQLITE_DB_PATH", "/app/graph_store.db")
NEO4J_URI = os.environ.get("NEO4J_URI", "bolt://neo4j:7687")
NEO4J_USERNAME = os.environ.get("NEO4J_USERNAME", "neo4j")
NEO4J_PASSWORD = os.environ.get("NEO4J_PASSWORD", "mem0graph")
# Ollama configuration
OLLAMA_HOST = os.environ.get("OLLAMA_HOST", "http://localhost:11434")
@@ -38,11 +39,8 @@ DEFAULT_CONFIG = {
},
},
"graph_store": {
"provider": "chromadb",
"config": {
"path": CHROMA_DB_PATH,
"collection_name": "graph",
},
"provider": "neo4j",
"config": {"url": NEO4J_URI, "username": NEO4J_USERNAME, "password": NEO4J_PASSWORD},
},
"llm": {
"provider": "ollama",