本指南将帮助您快速设置和启动智能记忆系统项目。
- 操作系统: macOS, Linux, Windows
- Python版本: 3.10+
- 包管理器: uv (推荐)
- MongoDB: 用于存储记忆数据
- Redis: 用于缓存和任务队列
- Elasticsearch: 用于全文搜索
- Milvus: 用于向量检索
uv 是一个快速的 Python 包管理器,推荐使用。
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# 验证安装
uv --version# 克隆项目到本地
git clone <项目地址>
cd memsys_opensource
# 查看项目结构
ls -la# 使用 uv 同步依赖(推荐)
# uv 会自动创建虚拟环境并安装所有依赖
uv sync
# 验证安装
uv run python --version# 复制环境变量模板
cp env.template .env
# 使用编辑器打开 .env 文件
vim .env # 或使用你喜欢的编辑器编辑 .env 文件,填入实际的配置值:
# Conversation MemCell Extractor / 对话记忆单元提取器
CONV_MEMCELL_LLM_PROVIDER=openai
CONV_MEMCELL_LLM_MODEL=google/gemini-2.5-flash
CONV_MEMCELL_LLM_BASE_URL=https://openrouter.ai/api/v1
CONV_MEMCELL_LLM_API_KEY=sk-or-v1-你的API密钥
CONV_MEMCELL_LLM_TEMPERATURE=0.3
CONV_MEMCELL_LLM_MAX_TOKENS=16384
# Episode Memory Extractor / 情景记忆提取器
EPISODE_MEMORY_LLM_PROVIDER=openai
EPISODE_MEMORY_LLM_MODEL=google/gemini-2.5-flash
EPISODE_MEMORY_LLM_BASE_URL=https://openrouter.ai/api/v1
EPISODE_MEMORY_LLM_API_KEY=sk-or-v1-你的API密钥
EPISODE_MEMORY_LLM_TEMPERATURE=0.3
EPISODE_MEMORY_LLM_MAX_TOKENS=16384# DeepInfra Embedding / 嵌入向量
DEEPINFRA_API_KEY=你的DeepInfra密钥
DEEPINFRA_BASE_URL=https://api.deepinfra.com/v1/openai
DEEPINFRA_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-4B
DEEPINFRA_TIMEOUT=30
DEEPINFRA_MAX_RETRIES=3
DEEPINFRA_BATCH_SIZE=10
DEEPINFRA_MAX_CONCURRENT=5
DEEPINFRA_ENCODING_FORMAT=float
DEEPINFRA_DIMENSIONS=1024
# DeepInfra Rerank / 重排序
DEEPINFRA_RERANK_BASE_URL=https://api.deepinfra.com/v1/inference
DEEPINFRA_RERANK_MODEL=Qwen/Qwen3-Reranker-4B
DEEPINFRA_RERANK_TIMEOUT=30
DEEPINFRA_RERANK_MAX_RETRIES=3
DEEPINFRA_RERANK_BATCH_SIZE=10
DEEPINFRA_RERANK_MAX_CONCURRENT=5# Redis配置
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB=8
REDIS_SSL=false
# MongoDB配置
MONGODB_HOST=your-mongodb-host
MONGODB_PORT=27017
MONGODB_USERNAME=your_username
MONGODB_PASSWORD=your_password
MONGODB_DATABASE=your_database_name
MONGODB_URI_PARAMS="socketTimeoutMS=15000&authSource=admin"
# Elasticsearch配置
ES_HOSTS=https://your-elasticsearch-host:9200
ES_USERNAME=elastic
ES_PASSWORD=your_password
ES_VERIFY_CERTS=true
SELF_ES_INDEX_NS=your-namespace
# Milvus向量数据库配置
MILVUS_HOST=your-milvus-host
MILVUS_PORT=19530
SELF_MILVUS_COLLECTION_NS=your_namespaceLOG_LEVEL=DEBUG
ENV=dev
PYTHONASYNCIODEBUG=1- 访问 OpenRouter
- 注册账号并创建 API 密钥
- 将密钥填入
.env文件的CONV_MEMCELL_LLM_API_KEY和EPISODE_MEMORY_LLM_API_KEY
- 访问 DeepInfra
- 注册账号并创建 API 密钥
- 将密钥填入
.env文件的DEEPINFRA_API_KEY
启动主应用服务,提供 REST API 接口:
# 基本启动(使用默认端口 1995)
uv run python src/run.py
# 指定日志级别启动
LOG_LEVEL=DEBUG uv run python src/run.py
# 指定端口启动
uv run python src/run.py --port 8080
# 指定主机和端口
uv run python src/run.py --host 0.0.0.0 --port 8080
# 使用自定义环境文件
uv run python src/run.py --env-file .env.production--host: 服务器监听地址(默认: 0.0.0.0)--port: 服务器端口(默认: 1995)--env-file: 环境变量文件路径(默认: .env)--mock: 启用 Mock 模式(用于测试和开发)
🚀 启动 Memory System v1.0.0
📝 记忆系统主应用
🌟 启动参数:
📡 Host: 0.0.0.0
🔌 Port: 1995
📄 Env File: .env
🎭 Mock Mode: False
🔧 LongJob Mode: Disabled
🚀 正在初始化依赖注入容器...
✅ 依赖注入设置完成
🔄 正在注册异步任务...
✅ 异步任务注册完成
INFO: Started server process [12345]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:1995 (Press CTRL+C to quit)
服务启动后,可以通过以下方式验证:
# 访问 API 文档
curl http://localhost:1995/docs
# 或在浏览器中打开
open http://localhost:1995/docs如果需要启动异步任务处理器(如 Kafka 消费者):
# 启动 Kafka 消费者
uv run python src/run.py --longjob kafka_consumer
# 关停任务(在另一个终端)
pkill -9 -f 'src/run.py'bootstrap.py 是一个通用的脚本运行器,它会自动处理:
- Python 路径设置
- 环境变量加载
- 依赖注入容器初始化
- 应用上下文管理
使用 Bootstrap 可以让你无认知负担地运行任何测试脚本。
# 基本语法
uv run python src/bootstrap.py [脚本路径] [脚本参数...]
# 运行测试脚本
uv run python src/bootstrap.py tests/test_convert_rest.py
# 运行带参数的脚本
uv run python src/bootstrap.py tests/my_test.py --verbose
# 使用 Mock 模式运行
uv run python src/bootstrap.py tests/my_test.py --mock
# 使用自定义环境文件
uv run python src/bootstrap.py tests/my_test.py --env-file .env.test# 运行 LoCoMo 评估第一阶段
uv run python src/bootstrap.py evaluation/locomo_evaluation/stage1_memcells_extraction.py
# 运行其他评估阶段
uv run python src/bootstrap.py evaluation/locomo_evaluation/stage2_index_building.py
uv run python src/bootstrap.py evaluation/locomo_evaluation/stage3_memory_retrivel.py# 运行记忆提取演示
uv run python src/bootstrap.py demo/extract_memory.py
# 运行记忆对话演示
uv run python src/bootstrap.py demo/chat_with_memory.py# 运行测试模板(学习如何使用 DI 和 MongoDB)
uv run python src/bootstrap.py tests/bootstrap_test_template.py
# 运行自定义测试
uv run python src/bootstrap.py unit_test/my_unit_test.py| 选项 | 说明 | 示例 |
|---|---|---|
--env-file |
指定环境变量文件 | --env-file .env.test |
--mock |
启用 Mock 模式 | --mock |
- 自动设置环境:加载
.env文件,设置 Python 路径 - 初始化依赖注入:启动 DI 容器,注册所有组件
- 启动应用上下文:初始化数据库连接、缓存等
- 执行目标脚本:在完整的应用上下文中运行你的脚本
- 清理资源:脚本执行完毕后自动清理
在开发和测试时,可以启用 Mock 模式来模拟外部依赖:
# 方式1: 使用命令行参数
uv run python src/run.py --mock
# 方式2: 设置环境变量
export MOCK_MODE=true
uv run python src/run.py
# 方式3: 在 .env 文件中配置
# MOCK_MODE=true# 设置详细日志级别
export LOG_LEVEL=DEBUG
uv run python src/run.py
# 或直接在命令行指定
LOG_LEVEL=DEBUG uv run python src/run.py创建开发专用的环境配置:
# 创建开发环境配置
cp .env .env.dev
# 编辑开发配置
vim .env.dev在 .env.dev 中设置开发相关配置:
# 开发模式
ENV=dev
DEBUG=true
LOG_LEVEL=DEBUG
MOCK_MODE=true
# 本地服务
MONGODB_HOST=localhost
REDIS_HOST=localhost
ES_HOSTS=http://localhost:9200
MILVUS_HOST=localhost使用开发配置启动:
uv run python src/run.py --env-file .env.dev# 解决方案:清理缓存后重试
uv cache clean
uv sync
# 或使用 pip 作为备选
pip install -e .# 确保 uv 已安装
curl -LsSf https://astral.sh/uv/install.sh | sh
# 重新加载 shell 配置
source ~/.bashrc # 或 source ~/.zshrc# 确保 .env 文件存在
ls -la .env
# 如果不存在,复制模板
cp env.template .env# 检查 .env 文件格式
cat .env | grep -v "^#" | grep -v "^$"
# 确保没有多余的空格和引号# 检查 MongoDB 是否运行
# macOS
brew services list | grep mongodb
# Linux
systemctl status mongod
# 检查连接配置
echo $MONGODB_HOST
echo $MONGODB_PORT# 检查 Redis 是否运行
redis-cli ping
# 如果未运行,启动 Redis
# macOS
brew services start redis
# Linux
sudo systemctl start redis# 检查端口占用
lsof -i :1995
# 使用其他端口启动
uv run python src/run.py --port 8080# 确保在项目根目录执行
pwd
# 重新安装依赖
uv sync --reinstall# 确保使用正确的相对路径
ls -la evaluation/locomo_evaluation/stage1_memcells_extraction.py
# 或使用绝对路径
uv run python src/bootstrap.py /path/to/your/script.py# 查看详细错误信息
LOG_LEVEL=DEBUG uv run python src/bootstrap.py your_script.py
# 使用 Mock 模式测试
uv run python src/bootstrap.py your_script.py --mock现在你已经成功设置并启动了智能记忆系统!接下来可以:
- 阅读开发指南: 查看 development_guide.md 了解项目架构和最佳实践
- 探索 Bootstrap: 查看 bootstrap_usage.md 深入了解脚本运行器
- 查看 API 文档: 访问 http://localhost:1995/docs 了解可用的 API 接口
- 运行示例代码: 尝试运行
demo/目录下的示例脚本
如果遇到问题,可以通过以下方式获取帮助:
- 查看日志: 使用
LOG_LEVEL=DEBUG查看详细日志 - 检查配置: 确认
.env文件配置正确 - 查看文档: 阅读相关技术文档
- 提交 Issue: 在项目仓库中报告问题
祝你使用愉快! 🎉