Files
TrulyMEM-TrueHumanMEM-local/scripts/start_neo4j_docker.sh

85 lines
2.4 KiB
Bash

#!/bin/bash
# Neo4j Docker 一键启动脚本
set -e
echo "========================================"
echo "Neo4j Docker 启动脚本"
echo "========================================"
# 检查 Docker
if ! command -v docker &> /dev/null; then
echo "Error: Docker 未安装"
exit 1
fi
# 检查并停止现有容器
if docker ps -a | grep -q graph-memory-neo4j; then
echo "[Info] 停止现有容器..."
docker stop graph-memory-neo4j 2>/dev/null || true
docker rm graph-memory-neo4j 2>/dev/null || true
fi
# 启动 Neo4j
echo "[Info] 启动 Neo4j 容器..."
docker run -d \
--name graph-memory-neo4j \
-p 7474:7474 \
-p 7687:7687 \
-e NEO4J_AUTH=neo4j/neo4j \
-e NEO4J_PLUGINS='["apoc"]' \
neo4j:5
echo "[Info] 等待 Neo4j 启动..."
sleep 15
# 配置 Python 虚拟环境
echo "[Info] 配置 Python 虚拟环境..."
PROJECT_DIR="$HOME/graph-memory"
mkdir -p "$PROJECT_DIR"
cd "$PROJECT_DIR"
python3 -m venv venv 2>/dev/null || python3 -m virtualenv venv
source venv/bin/activate
pip install --upgrade pip
pip install neo4j openai
# Neo4j 连接配置
NEO4J_URI="${NEO4J_URI:-bolt://localhost:7687}"
NEO4J_USER="${NEO4J_USER:-neo4j}"
NEO4J_PASSWORD="${NEO4J_PASSWORD:-neo4j}"
if [ -n "$NEO4J_URI" ] && [ "$NEO4J_URI" != "bolt://localhost:7687" ]; then
echo " 使用远程 Neo4j: $NEO4J_URI"
else
# 本地 Docker
RUNNING=$(docker ps --filter "name=neo4j" --format "{{.Names}}" 2>/dev/null | head -1)
if [ -n "$RUNNING" ]; then
NEO4J_AUTH=$(docker inspect "$RUNNING" --format '{{.Config.Env}}' 2>/dev/null | tr ' ' '\n' | grep NEO4J_AUTH | cut -d'=' -f2)
NEO4J_PASSWORD=$(echo "$NEO4J_AUTH" | cut -d'/' -f2)
fi
NEO4J_URI="bolt://localhost:7687"
fi
cat > .env << EOF
DEEPSEEK_API_KEY=your-api-key-here
NEO4J_URI=${NEO4J_URI}
NEO4J_USER=${NEO4J_USER}
NEO4J_PASSWORD=${NEO4J_PASSWORD}
EOF
echo ""
echo "========================================"
echo "启动完成!"
echo "========================================"
echo "HTTP: http://localhost:7474"
echo "Bolt: bolt://localhost:7687"
echo "用户: neo4j / ${NEO4J_PASSWORD}"
echo ""
echo "远程 Neo4j 配置示例:"
echo " NEO4J_URI=bolt://192.168.1.100:7687 \\"
echo " NEO4J_PASSWORD=your_password \\"
echo " python /home/program/graph_enable_ability/graph_memory_demo.py"
echo ""
echo "启动对话:"
echo " cd $PROJECT_DIR && source venv/bin/activate"
echo " python /home/program/graph_enable_ability/graph_memory_demo.py"