mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-09-20 17:08:18 +00:00
feat: 实现 OpenClaw 纯图数据库对话 Demo
- 基于 DeepSeek API Tool Calls 实现无传统上下文的多轮对话 - 实现全部 6 个 memory 工具: - memory_recall: 支持时间范围、多跳路径、会话过滤 - memory_commit: 批量三元组写入、时间标记 - memory_purge: 软删除 + superseded 纠错机制 - memory_introspect: 会话元数据、记忆热点、关系分布 - memory_archive: 归档旧关系 - memory_cleanup: 物理清理孤立节点 - Neo4j 真实数据库集成 - 添加各发行版一键启动脚本 (Ubuntu/CentOS/Docker)
This commit is contained in:
76
scripts/install_neo4j_centos.sh
Normal file
76
scripts/install_neo4j_centos.sh
Normal file
@ -0,0 +1,76 @@
|
||||
#!/bin/bash
|
||||
# Neo4j 一键安装脚本 - CentOS/RHEL/Fedora
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================"
|
||||
echo "Neo4j 一键安装脚本 - CentOS/RHEL/Fedora"
|
||||
echo "========================================"
|
||||
|
||||
if [ "$EUID" -eq 0 ]; then
|
||||
SUDO=""
|
||||
else
|
||||
SUDO="sudo"
|
||||
fi
|
||||
|
||||
# 1. 检查 Java
|
||||
echo "[1/5] 检查 Java 环境..."
|
||||
if command -v java &> /dev/null; then
|
||||
echo " 已安装: $(java -version 2>&1 | head -n 1)"
|
||||
else
|
||||
echo " 安装 OpenJDK 17..."
|
||||
$SUDO yum install -y java-17-openjdk-headless
|
||||
fi
|
||||
|
||||
# 2. 添加 Neo4j 源
|
||||
echo "[2/5] 添加 Neo4j 源..."
|
||||
$SUDO cat > /etc/yum.repos.d/neo4j.repo << 'EOF'
|
||||
[neo4j]
|
||||
name=Neo4j Repository
|
||||
baseurl=https://yum.neo4j.com/stable
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
gpgkey=https://debian.neo4j.com/neotechnology.gpg.key
|
||||
EOF
|
||||
|
||||
# 3. 安装
|
||||
echo "[3/5] 安装 Neo4j..."
|
||||
$SUDO yum install -y neo4j
|
||||
|
||||
# 4. 配置
|
||||
echo "[4/5] 配置 Neo4j..."
|
||||
$SUDO sed -i 's/#server.default_listen_address=0.0.0.0/server.default_listen_address=0.0.0.0/' /etc/neo4j/neo4j.conf
|
||||
|
||||
# 5. 启动
|
||||
echo "[5/5] 启动 Neo4j..."
|
||||
$SUDO systemctl enable neo4j
|
||||
$SUDO systemctl start neo4j
|
||||
sleep 3
|
||||
|
||||
# 6. 配置 Python 虚拟环境
|
||||
echo "[6/6] 配置 Python 虚拟环境..."
|
||||
PROJECT_DIR="$HOME/openclaw"
|
||||
mkdir -p "$PROJECT_DIR"
|
||||
cd "$PROJECT_DIR"
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install --upgrade pip
|
||||
pip install neo4j openai
|
||||
|
||||
cat > .env << 'EOF'
|
||||
DEEPSEEK_API_KEY=your-api-key-here
|
||||
NEO4J_URI=bolt://localhost:7687
|
||||
NEO4J_USER=neo4j
|
||||
NEO4J_PASSWORD=neo4j
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "安装完成!"
|
||||
echo "========================================"
|
||||
echo "控制台: http://localhost:7474"
|
||||
echo "连接: cypher-shell -u neo4j -p neo4j"
|
||||
echo ""
|
||||
echo "启动对话:"
|
||||
echo " cd $PROJECT_DIR && source venv/bin/activate"
|
||||
echo " python -m openclaw_neo4j_demo"
|
||||
148
scripts/install_neo4j_ubuntu.sh
Normal file
148
scripts/install_neo4j_ubuntu.sh
Normal file
@ -0,0 +1,148 @@
|
||||
#!/bin/bash
|
||||
# =============================================================================
|
||||
# Neo4j 一键安装配置脚本 - Ubuntu/Debian
|
||||
# =============================================================================
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================"
|
||||
echo "Neo4j 一键安装脚本 - Ubuntu/Debian"
|
||||
echo "========================================"
|
||||
|
||||
# 检测是否为 root
|
||||
if [ "$EUID" -eq 0 ]; then
|
||||
echo "[Info] Running as root"
|
||||
SUDO=""
|
||||
else
|
||||
echo "[Info] Running as user, will use sudo"
|
||||
SUDO="sudo"
|
||||
fi
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# 1. 检查 Java 环境
|
||||
# -------------------------------------------------------------------------
|
||||
echo "[1/6] 检查 Java 环境..."
|
||||
|
||||
if command -v java &> /dev/null; then
|
||||
java_version=$(java -version 2>&1 | head -n 1)
|
||||
echo " 已安装: $java_version"
|
||||
else
|
||||
echo " 未检测到 Java,安装 OpenJDK 17..."
|
||||
$SUDO apt update
|
||||
$SUDO apt install -y openjdk-17-jre-headless
|
||||
echo " Java 安装完成"
|
||||
fi
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# 2. 添加 Neo4j apt 源
|
||||
# -------------------------------------------------------------------------
|
||||
echo "[2/6] 添加 Neo4j apt 源..."
|
||||
|
||||
# 安装依赖
|
||||
$SUDO apt install -y curl gnupg
|
||||
|
||||
# 添加 GPG key
|
||||
curl -fsSL https://debian.neo4j.com/neotechnology.gpg.key | $SUDO gpg --dearmor -o /usr/share/keyrings/neo4j.gpg
|
||||
|
||||
# 添加 repository
|
||||
echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com stable latest" | $SUDO tee /etc/apt/sources.list.d/neo4j.list
|
||||
echo "deb [signed-by=/usr/share/keyrings/neo4j.gpg] https://debian.neo4j.com 5.0 latest" | $SUDO tee -a /etc/apt/sources.list.d/neo4j.list
|
||||
|
||||
$SUDO apt update
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# 3. 安装 Neo4j
|
||||
# -------------------------------------------------------------------------
|
||||
echo "[3/6] 安装 Neo4j Community Edition..."
|
||||
|
||||
# 安装 neo4j (会同时安装依赖)
|
||||
$SUDO apt install -y neo4j
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# 4. 配置 Neo4j
|
||||
# -------------------------------------------------------------------------
|
||||
echo "[4/6] 配置 Neo4j..."
|
||||
|
||||
# 允许远程访问
|
||||
$SUDO sed -i 's/#server.default_listen_address=0.0.0.0/server.default_listen_address=0.0.0.0/' /etc/neo4j/neo4j.conf
|
||||
|
||||
# 设置初始密码 (默认用户: neo4j)
|
||||
# 如果需要设置密码,取消下面注释并修改密码
|
||||
# echo "neo4j:你的密码" | $SUDO tee /etc/neo4j/neo4j-auth
|
||||
|
||||
# 关闭增强监控(开发环境)
|
||||
$SUDO sed -i 's/#dbms.security.procedures.unrestricted=.*/dbms.security.procedures.unrestricted=apoc.*/' /etc/neo4j/neo4j.conf
|
||||
|
||||
# 启用 APOC
|
||||
$SUDO sed -i 's/#dbms.security.procedures.unallowed=.*/dbms.security.procedures.unallowed=apoc.*/' /etc/neo4j/neo4j.conf
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# 5. 启动 Neo4j
|
||||
# -------------------------------------------------------------------------
|
||||
echo "[5/6] 启动 Neo4j 服务..."
|
||||
|
||||
$SUDO systemctl enable neo4j
|
||||
$SUDO systemctl start neo4j
|
||||
|
||||
# 等待启动
|
||||
sleep 5
|
||||
|
||||
# 检查状态
|
||||
if $SUDO systemctl is-active --quiet neo4j; then
|
||||
echo " Neo4j 已启动"
|
||||
else
|
||||
echo " 警告: Neo4j 启动可能失败,请检查: sudo systemctl status neo4j"
|
||||
fi
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# 6. 安装 Python 依赖
|
||||
# -------------------------------------------------------------------------
|
||||
echo "[6/6] 配置 Python 虚拟环境..."
|
||||
|
||||
# 创建项目目录和虚拟环境
|
||||
PROJECT_DIR="$HOME/openclaw"
|
||||
mkdir -p "$PROJECT_DIR"
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
# 创建虚拟环境(使用 virtualenv 以保证兼容性)
|
||||
if ! command -v virtualenv &> /dev/null; then
|
||||
$SUDO apt install -y python3-virtualenv
|
||||
fi
|
||||
python3 -m virtualenv venv
|
||||
source venv/bin/activate
|
||||
|
||||
# 安装依赖
|
||||
pip install --upgrade pip
|
||||
pip install neo4j openai
|
||||
|
||||
# 创建环境变量文件
|
||||
cat > .env << 'EOF'
|
||||
DEEPSEEK_API_KEY=your-api-key-here
|
||||
NEO4J_URI=bolt://localhost:7687
|
||||
NEO4J_USER=neo4j
|
||||
NEO4J_PASSWORD=neo4j
|
||||
EOF
|
||||
|
||||
echo " 虚拟环境已创建: $PROJECT_DIR/venv"
|
||||
echo " 激活: source $PROJECT_DIR/venv/bin/activate"
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# 完成
|
||||
# -------------------------------------------------------------------------
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "安装完成!"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
echo "Neo4j 控制台: http://localhost:7474"
|
||||
echo "默认用户: neo4j"
|
||||
echo "初始密码: neo4j (首次登录需修改)"
|
||||
echo ""
|
||||
echo "启动对话:"
|
||||
echo " cd $PROJECT_DIR"
|
||||
echo " source venv/bin/activate"
|
||||
echo " python ~/openclaw_demo.py"
|
||||
echo ""
|
||||
echo "或直接运行 Demo:"
|
||||
echo " source $PROJECT_DIR/venv/bin/activate"
|
||||
echo " python /home/program/graph_enable_ability/openclaw_neo4j_demo.py"
|
||||
63
scripts/start_neo4j_docker.sh
Normal file
63
scripts/start_neo4j_docker.sh
Normal file
@ -0,0 +1,63 @@
|
||||
#!/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 openclaw-neo4j; then
|
||||
echo "[Info] 停止现有容器..."
|
||||
docker stop openclaw-neo4j 2>/dev/null || true
|
||||
docker rm openclaw-neo4j 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# 启动 Neo4j
|
||||
echo "[Info] 启动 Neo4j 容器..."
|
||||
docker run -d \
|
||||
--name openclaw-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/openclaw"
|
||||
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
|
||||
|
||||
cat > .env << 'EOF'
|
||||
DEEPSEEK_API_KEY=your-api-key-here
|
||||
NEO4J_URI=bolt://localhost:7687
|
||||
NEO4J_USER=neo4j
|
||||
NEO4J_PASSWORD=neo4j
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo "启动完成!"
|
||||
echo "========================================"
|
||||
echo "HTTP: http://localhost:7474"
|
||||
echo "Bolt: bolt://localhost:7687"
|
||||
echo "用户: neo4j / neo4j"
|
||||
echo ""
|
||||
echo "启动对话:"
|
||||
echo " cd $PROJECT_DIR && source venv/bin/activate"
|
||||
echo " python /home/program/graph_enable_ability/openclaw_neo4j_demo.py"
|
||||
Reference in New Issue
Block a user