UNPKG

evolve-memory-system

Version:

一个集成了LlamaIndex RAG, LMCE和MCP工具的本地记忆系统,专为小说《进化》设计。

216 lines (166 loc) 6.1 kB
# Evolve Memory System - 新架构设计文档 ## 系统概述 Evolve Memory System 是一个专为小说创作设计的本地记忆系统,采用全新的架构设计,确保只有一个对外接口(LMCE API Server),而 RAG 作为内部组件提供支持。 ## 系统架构 ``` [Client/Qwen/MCP Client] | | MCP Protocol / REST API | [L M C E A P I S e r v e r] <- 唯一对外接口 | ------------- | | [RAG Module] [Memory Management] | | [Document DB] [Memory Cache] ``` ## 组件说明 ### 1. LMCE API Server (唯一对外接口) LMCE (Local Memory Compression Engine) API Server 是系统的唯一对外接口,提供以下功能: #### 核心功能: 1. **记忆管理**:添加、获取、搜索、删除记忆 2. **小说设定管理**:创建、读取、更新、删除小说的各种设定 3. **智能搜索**:结合记忆和文档进行智能搜索 4. **设定查询**:专门用于查询小说设定的接口 #### API 端点: ##### 健康检查 - `GET /health` - 系统健康检查 ##### 记忆管理 - `POST /memories` - 添加记忆 - `GET /memories/{memory_id}` - 获取记忆 - `GET /memories` - 搜索记忆 - `DELETE /memories/{memory_id}` - 删除记忆 - `DELETE /memories` - 清空所有记忆 ##### 小说设定管理 - `GET /settings` - 列出所有设定 - `GET /settings/{category}/{name}` - 获取特定设定 - `POST /settings` - 创建设定 - `PUT /settings/{category}/{name}` - 更新设定 - `DELETE /settings/{category}/{name}` - 删除设定 ##### 智能搜索 - `POST /search` - 智能搜索(结合记忆和文档) ##### 设定查询 - `GET /query-setting` - 查询小说设定 ### 2. RAG Module (内部组件) RAG (Retrieval-Augmented Generation) Module 是内部组件,不直接对外暴露: #### 核心功能: 1. **文档索引**:索引小说设定文档 2. **增量更新**:监控文件变化并实时更新索引 3. **文档查询**:基于向量搜索的文档查询 #### 主要特性: - **增量索引**:只在文件发生变化时更新相关部分 - **文件监控**:自动监控设定目录的变化 - **轻量级**:基于文件系统存储,无需外部数据库 ### 3. Memory Management (内部组件) Memory Management 是内部组件,负责: #### 核心功能: 1. **记忆存储**:存储创作过程中产生的临时记忆 2. **记忆压缩**:压缩相似的记忆条目 3. **记忆搜索**:基于关键词的记忆搜索 ## 数据流向 ### 客户端请求处理流程: 1. 客户端发送请求到 LMCE API Server 2. LMCE API Server 解析请求并分发到相应组件 3. 如果涉及文档查询,调用 RAG Module 4. 如果涉及记忆操作,调用 Memory Management 5. 合并结果并返回给客户端 ### 内部组件协作流程: 1. RAG Module 监控文件变化 2. 文件发生变化时,RAG Module 自动更新索引 3. LMCE API Server 请求查询时,调用 RAG Module 获取文档信息 4. Memory Management 存储和管理临时记忆 5. LMCE API Server 综合文档信息和记忆信息返回结果 ## 设计原则 ### 1. 单一入口原则 - 所有外部请求必须通过 LMCE API Server - RAG Module 和 Memory Management 不直接对外暴露 ### 2. 职责分离原则 - LMCE API Server:对外接口和请求协调 - RAG Module:文档索引和查询 - Memory Management:记忆存储和管理 ### 3. 增量处理原则 - 文件变化时进行增量更新而非全量重建 - 内存使用优化,避免不必要的资源消耗 ### 4. 实时响应原则 - 文件监控实时感知变化 - 索引更新及时反映最新状态 ## 使用示例 ### 1. 添加记忆 ```bash curl -X POST http://localhost:8000/memories \ -H "Content-Type: application/json" \ -d '{ "id": "mem_001", "content": "主角李明的能力是能够感知他人的情绪变化", "importance": 0.8, "tags": ["character", "ability"] }' ``` ### 2. 创建小说设定 ```bash curl -X POST http://localhost:8000/settings \ -H "Content-Type: application/json" \ -d '{ "category": "world", "name": "future_world", "content": "# 未来世界设定\n\n## 时间背景\n2050年,人工智能高度发达..." }' ``` ### 3. 智能搜索 ```bash curl -X POST http://localhost:8000/search \ -H "Content-Type: application/json" \ -d '{ "query": "主角的能力是什么?", "limit": 10 }' ``` ### 4. 查询设定 ```bash curl "http://localhost:8000/query-setting?question=未来世界的科技发展水平如何?" ``` ## 部署和维护 ### 启动服务 ```bash npx evolve-memory-system@1.0.9 start ``` ### 停止服务 ```bash npx evolve-memory-system@1.0.9 stop ``` ### 查看状态 ```bash npx evolve-memory-system@1.0.9 status ``` ### 重置索引 ```bash npx evolve-memory-system@1.0.9 init-rag --reset ``` ## 故障排除 ### 常见问题 1. **服务无法启动** - 检查端口是否被占用 - 查看日志文件 `/tmp/lmce.log` 2. **查询无结果** - 检查文档是否正确索引 - 重新初始化 RAG 索引 3. **文件监控失效** - 检查文件权限 - 重启服务以重新启动监控 ### 日志文件 - LMCE API Server 日志:`/tmp/lmce.log` - RAG 初始化日志:`/tmp/rag-llama-init.log` - MCP Server 日志:`/tmp/mcp.log` ## 未来发展 ### 即将实现的功能 1. **记忆持久化**:将内存中的记忆持久化到磁盘 2. **版本控制**:对设定文件进行版本控制 3. **协作功能**:支持多人协作创作 4. **导出功能**:支持将内容导出为不同格式 ### 性能优化 1. **索引优化**:优化向量索引以提高查询速度 2. **缓存机制**:引入缓存机制减少重复计算 3. **并发处理**:支持更高并发的请求处理 ## 总结 新的 Evolve Memory System 架构设计遵循单一入口原则,确保系统清晰、易于维护和扩展。LMCE API Server 作为唯一的对外接口,整合了 RAG 和 Memory Management 的功能,为创作者提供了一个强大而简洁的创作辅助工具。