From 84d210829dcfb451f8d726599aaa14f29633c7d1 Mon Sep 17 00:00:00 2001 From: huaqingxu Date: Fri, 6 Mar 2026 23:09:44 +0800 Subject: [PATCH] add --- .env | 4 +++- README.md | 12 ++++++++++++ docker-compose.yaml | 24 ++++++++++++++++++++++++ main.py | 12 +++++------- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/.env b/.env index 4a16c98..66f1ec4 100644 --- a/.env +++ b/.env @@ -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 diff --git a/README.md b/README.md index c79f040..ad130d6 100644 --- a/README.md +++ b/README.md @@ -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 + diff --git a/docker-compose.yaml b/docker-compose.yaml index 79ac23b..e4792ce 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -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: {} diff --git a/main.py b/main.py index e70500d..999a67b 100644 --- a/main.py +++ b/main.py @@ -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",