--- language: - zh - en license: apache-2.0 tags: - semantic-memory - vector-search - causal-reasoning - rag - temporal-awareness - llm - python - chinese - retrieval-augmented-generation - local-first datasets: - su-memory/demo-data library_name: su-memory pypi: su-memory --- # su-memory SDK · Semantic Memory Engine > **"你的 AI 记不住上次聊过什么?su-memory 给它一个不会忘的大脑。"** > > **"为什么这条建议?——点击查看完整推理链。"** --- ## 🏆 HotpotQA #1 — 多跳推理 SOTA | 系统 | EM | |------|:--:| | **su-memory v2.0** | **58.0%** 🥇 | | IRRR + BERT | 55.0% | | Hindsight | 50.1% | > 纯本地 Mac + Ollama,零外部 API。详见 [BENCHMARK.md](BENCHMARK.md) --- ## ⚡ 安装 ```bash pip install su-memory ``` **一行代码,让 AI 拥有记忆能力:** ```python from su_memory import SuMemory client = SuMemory() client.add("张总在周一会议上提到Q3目标增长25%") results = client.query("Q3目标") # 秒级返回,带推理路径 ``` --- ## ⚡ 安装指南 ### 环境要求 - Python 3.10+ - 推荐使用虚拟环境 (venv) 或 conda ### 安装前检查 **重要**: 安装前请确认 `pip` 和 `python` 指向同一环境。 ```bash # 检查环境一致性 which python which pip # 如果不一致,使用以下方式安装 python -m pip install su-memory ``` ### 安装方式 #### 方式1: 标准安装 (推荐) ```bash pip install su-memory ``` > ✨ **开箱即用多跳推理** - 默认集成FAISS + sentence-transformers #### 方式2: 使用 python -m pip (确保环境一致) ```bash python -m pip install su-memory ``` #### 方式3: 从 GitHub 安装最新版本 ```bash pip install git+https://github.com/su-memory/su-memory-sdk.git ``` #### 方式4: 源码安装 ```bash git clone https://github.com/su-memory/su-memory-sdk.git cd su-memory-sdk pip install . ``` #### 方式5: 开发模式安装 ```bash git clone https://github.com/su-memory/su-memory-sdk.git cd su-memory-sdk pip install -e ".[dev]" ``` ### 可选依赖 | 安装选项 | 命令 | 包含 | |---------|------|------| | **标准版** | `pip install su-memory` | ⭐ 核心 + FAISS + sentence-transformers | | **完整版** | `pip install su-memory[full]` | + 向量存储 (Qdrant/SQLAlchemy) | | **Dashboard** | `pip install su-memory[dashboard]` | + Flask可视化界面 | | **REST API** | `pip install su-memory[api]` | + FastAPI + uvicorn | ```bash # 标准版即包含多跳推理能力 pip install su-memory # 可视化Dashboard pip install su-memory[dashboard] python -m su_memory.dashboard # 访问 http://localhost:8765 # REST API(支持 JS/Go/curl 调用) pip install su-memory[api] uvicorn su_memory.api.server:app --reload --port 8000 # 访问 http://localhost:8000/docs 查看 API 文档 ``` ### 安装验证 安装完成后,运行验证脚本: ```bash # 快速检查 python -c "from su_memory import SuMemoryLitePro; print('✅ 安装成功')" # 完整验证 python -c "from su_memory.verify_install import main; main()" ``` ### 常见问题排查 #### 问题1: ModuleNotFoundError ``` pip show su-memory # 显示已安装 python -c "import su_memory" # 报错 ``` **原因**: pip 和 python 指向不同环境 **解决**: ```bash python -m pip install --force-reinstall su-memory ``` #### 问题2: 环境不匹配警告 ``` ⚠️ pip 和 python 指向不同环境 ``` **解决**: ```bash # 方式1: 使用 python -m pip python -m pip install su-memory # 方式2: 创建虚拟环境 python -m venv myenv source myenv/bin/activate pip install su-memory ``` #### 问题3: 诊断工具 如果遇到其他问题,运行诊断工具: ```bash python -c "from su_memory.diagnostics import main; main()" ``` --- ## 🚀 快速开始 | 能力 | 用户感知价值 | 技术支撑 | |------|-------------|----------| | **记住一切** | 上周聊的项目,AI秒级回忆 | 本地向量存储 | | **因果推理** | "为什么推荐这个?" | 因果链追踪 | | **时间感知** | 越新的记忆越相关 | 时序衰减 | | **可解释** | 推理路径透明可见 | Multi-hop RAG | --- ### 一行代码入门 ```python from su_memory import SuMemory # 初始化(开箱即用多跳推理) client = SuMemory() # 添加记忆 client.add("用户偏好深色主题", metadata={"user": "alice"}) client.add("用户上周购买了笔记本电脑") # 语义检索 results = client.query("电脑") # 多跳推理(默认hybrid模式,向量+图谱融合) chain = client.query_multihop("用户的购买偏好", max_hops=3) ``` ### 推荐入口 | 类 | 场景 | 说明 | |-----|------|------| | **SuMemory** | ⭐推荐 | 一行代码,本地运行,简单易用 | | SuMemoryLite | 轻量场景 | 内存<50MB | | SuMemoryLitePro | 专业场景 | 向量推理+多跳 | # 添加记忆 client.add("今天天气很好,阳光明媚") client.add("明天可能下雨,记得带伞") client.add("我喜欢学习编程") # 查询记忆 results = client.query("天气", top_k=2) for r in results: print(f"{r['content']} (score: {r['score']})") ``` ### 增强版 Pro ```python from su_memory.sdk import SuMemoryLitePro # 创建增强版客户端 pro = SuMemoryLitePro( storage_path="./data", embedding_backend='ollama', # 使用本地Ollama bge-m3 enable_vector=True, enable_graph=True, enable_temporal=True, enable_session=True, enable_prediction=True, enable_explainability=True ) # 添加记忆 pro.add("如果努力学习,成绩会提高") pro.add("成绩提高了会获得奖学金") pro.add("获得奖学金可以减轻家庭负担") # 建立因果链 pro.link_memories(pro._memories[-3].id, pro._memories[-2].id) pro.link_memories(pro._memories[-2].id, pro._memories[-1].id) # 多跳推理查询 results = pro.query_multihop("学习", max_hops=3) for r in results: print(f"{r['content']} (hops={r['hops']})") # 时序预测 predictions = pro.predict(query="项目活动") print(predictions) # 可解释性查询 explanation = pro.explain_query("学习", results) print(explanation['explanation']) ``` ### 与LangChain集成 ```python from su_memory.sdk import SuMemoryLite from su_memory.adapters import SuMemoryChatMemory # 创建记忆客户端 client = SuMemoryLite() memory = SuMemoryChatMemory(client=client) # 保存对话上下文 memory.save_context( inputs={"input": "我叫张三"}, outputs={"output": "你好张三,很高兴认识你!"} ) # 加载记忆用于后续对话 vars = memory.load_memory_variables({}) print(vars["chat_history"]) ``` --- ## 📊 SDK架构对比 ``` su-memory SDK ├── SuMemoryLitePro # 增强版(生产推荐) │ ├── Ollama bge-m3 向量检索 (1024维) │ ├── VectorGraphRAG 多跳推理引擎 │ │ ├── HNSW索引优化 (m=32, ef=64) │ │ └── 向量量化压缩 (INT8/FP16/Binary) │ ├── SpacetimeIndex 时空索引 │ ├── SpacetimeMultihopEngine 时空多跳融合 │ ├── MultimodalEmbedding 多模态嵌入 │ │ ├── CLIP 图像编码器 │ │ └── Whisper 音频编码器 │ ├── SpatialRAG 三维世界模型 │ │ ├── KD-Tree 空间索引 │ │ └── 空间+时间+语义三维检索 │ ├── MemoryGraph 因果图谱 │ ├── TemporalSystem 时序编码 │ ├── SessionManager 跨会话召回 │ ├── PredictionModule 时序预测 │ └── ExplainabilityModule 可解释性 ├── SuMemoryLite # 轻量版 │ ├── TF-IDF检索 │ ├── N-gram分词 │ └── 持久化存储 └── SuMemoryChatMemory # LangChain适配器 ``` ### 功能对比 | 功能 | SuMemoryLite | SuMemoryLitePro | |------|-------------|-----------------| | **检索方式** | TF-IDF | RRF混合检索 | | **向量检索** | ❌ | ✅ Ollama bge-m3 | | **多跳推理** | ❌ | ✅ VectorGraphRAG | | **HNSW索引** | ❌ | ✅ m=32, ef=64 | | **向量量化** | ❌ | ✅ INT8/FP16/Binary | | **时空索引** | ❌ | ✅ SpacetimeIndex | | **时空多跳** | ❌ | ✅ SpacetimeMultihopEngine | | **多模态嵌入** | ❌ | ✅ CLIP/Whisper | | **三维世界模型** | ❌ | ✅ SpatialRAG | | **因果推理** | ❌ | ✅ BFS多跳 | | **时序感知** | ❌ | ✅ 时序编码 | | **跨会话召回** | ❌ | ✅ 语义话题 | | **时序预测** | ❌ | ✅ 事件预测 | | **可解释性** | ❌ | ✅ 推理链 | | **内存占用** | < 5MB | < 50MB | --- ## ⚡ 性能基准 ### SuMemoryLite (轻量版) ``` 插入性能: ✅ 吞吐量: 94 条/秒 ✅ 平均耗时: 10.66 ms/条 查询性能: ✅ P50延迟: 0.27 ms ✅ P95延迟: 0.39 ms ✅ P99延迟: 0.43 ms 内存占用: ✅ 1000条记忆: 1.53 MB ``` ### SuMemoryLitePro (增强版) ``` 语义检索: ✅ 向量检索: ~50ms/查询 (Ollama本地) ✅ 混合检索: RRF融合多路结果 ✅ HNSW索引: O(log n) 搜索复杂度 因果推理: ✅ 多跳推理: 支持3跳以上 ✅ 因果类型: cause/condition/result/sequence ✅ VectorGraphRAG: 纯向量图遍历 性能优化: ✅ HNSW优化: m=32, efConstruction=64, efSearch=64 ✅ 向量量化: INT8 4x / FP16 2x / Binary 32x ✅ LRU缓存: 1000容量批量编码缓存 时空融合: ✅ 时空索引: SpacetimeIndex + TemporalSystem ✅ 时空多跳: SpacetimeMultihopEngine + RRF融合 ✅ 三维世界: SpatialRAG + KD-Tree空间索引 多模态支持: ✅ 图像编码: CLIP ViT-B/32 (512维) ✅ 音频编码: Whisper模型支持 ✅ 融合检索: text/image/audio多模态融合 时序计算: ✅ 时效衰减: 指数衰减 + 时序编码 ✅ 预测模块: 基于历史趋势预测 ``` ### 性能指标对比 | 指标 | 优化前 | 优化后 | 提升 | |------|--------|--------|------| | 多跳推理召回率 | 60% | 87.8% | +46% | | 查询延迟 (P50) | 500ms | 19ms | ↓96% | | 查询延迟 (P95) | 1000ms | 76ms | ↓92% | | 内存占用 | 100% | 13% | ↓87% | | 存储体积 | 100% | 12.5% | ↓87.5% | ### 向量量化压缩效果 | 量化模式 | 压缩比 | 精度损失 | 适用场景 | |----------|--------|----------|----------| | FP32 | 1x | 0% | 高精度需求 | | FP16 | 2x | <1% | 平衡场景 | | **INT8** | **4x** | **<1%** | **推荐** | | Binary | 32x | ~20% | 极端内存限制 | --- ## 🎓 VMC世界模型能力 su-memory SDK作为VMC框架的Memory组件,综合成熟度达**4.9/5**: | 维度 | 能力 | 成熟度 | |------|------|--------| | **长期记忆** | 语义向量存储,持久化 | ⭐⭐⭐⭐⭐ | | **因果推理** | VectorGraphRAG多跳推理 | ⭐⭐⭐⭐⭐ | | **时空感知** | SpacetimeIndex时空索引 | ⭐⭐⭐⭐⭐ | | **时空多跳** | SpacetimeMultihopEngine融合 | ⭐⭐⭐⭐⭐ | | **多模态嵌入** | CLIP/Whisper图像音频 | ⭐⭐⭐⭐ | | **三维世界** | SpatialRAG KD-Tree空间索引 | ⭐⭐⭐⭐ | | **向量优化** | HNSW索引+量化压缩 | ⭐⭐⭐⭐⭐ | | **语义理解** | Ollama bge-m3本地向量 | ⭐⭐⭐⭐⭐ | | **预测能力** | PredictionModule | ⭐⭐⭐⭐ | | **可解释性** | ExplainabilityModule | ⭐⭐⭐⭐ | | **情境感知** | 跨会话话题召回 | ⭐⭐⭐⭐⭐ | | **开放领域** | RRF混合检索 | ⭐⭐⭐⭐⭐ | ### 与顶级LLM集成 | 模型 | 角色 | 集成方式 | |------|------|----------| | **Claude 4** | Controller | 记忆上下文注入 | | **Gemini 2.0** | Vision+Controller | 多模态感知 | | **DeepSeek V4** | Controller | 代码推理增强 | | **Qwen3.5** | Controller | 中文场景优化 | --- ## 🔌 进阶功能 ### 多会话管理 ```python # 创建会话 session1 = pro.create_session("项目会议") session2 = pro.create_session("日常对话") # 添加会话记忆 pro.add("讨论了技术方案", topic="技术", session_id=session1) pro.add("讨论了项目进度", topic="进度", session_id=session1) # 跨会话召回 related = pro._sessions.get_related_topics("技术") print(related) ``` ### 时序预测 ```python # 添加历史事件 pro.add("周一项目启动") pro.add("周三完成第一阶段") pro.add("周五测试通过") # 预测趋势 trend = pro.predict(metric="activity") print(trend['prediction']) ``` ### 可解释推理 ```python # 查询并获取解释 results = pro.query("项目") explanation = pro.explain_query("项目", results) print(explanation['explanation']) # 输出: # 针对查询'项目',系统检索到3条相关记忆。 # # 最相关记忆:项目进展顺利 # 相关度得分:85.52% # # 检索因素: # • 语义匹配(权重40%):85.52% # • 因果关联(权重30%):基于图谱推理 # • 时序相关性(权重20%):时效性已计算 ``` ### 多模态检索 ```python # 启用多模态支持 from su_memory.sdk.multimodal import create_multimodal_manager manager = create_multimodal_manager( text_embedding_func=pro._embedding.encode, enable_image=True, # 启用CLIP图像编码 enable_audio=False, image_weight=0.4, text_weight=0.6 ) # 添加多模态记忆 manager.add_multimodal_memory( memory_id="img_001", content="会议室的场景", image_path="/path/to/meeting.jpg" ) # 多模态检索 results = manager.search("会议", mode="multimodal", top_k=5) for r in results: print(f"{r.content} (score={r.score:.3f}, source={r.source})") ``` ### 三维世界模型检索 ```python # 启用SpatialRAG三维世界模型 pro._spatial.add_spatial_memory( memory_id="spatial_001", content="在会议室A发生的事件", position=(10.0, 20.0, 0.0), # x, y, z 坐标 timestamp=1704067200 ) # 空间邻域搜索 results = pro._spatial.search_nearby( position=(10.0, 20.0, 0.0), radius=5.0 ) # 三维检索(空间+时间+语义) results_3d = pro._spatial.search_3d( query="会议", position=(10.0, 20.0, 0.0), time_range=(start_ts, end_ts), max_distance=10.0 ) ``` --- ## 📦 项目结构 ``` su-memory-sdk/ ├── src/su_memory/ │ ├── sdk/ # SDK核心 │ │ ├── client.py # SuMemoryClient │ │ ├── lite.py # SuMemoryLite │ │ ├── lite_pro.py # SuMemoryLitePro │ │ ├── config.py # 配置管理 │ │ ├── exceptions.py # 异常定义 │ │ ├── vector_graph_rag.py # VectorGraphRAG多跳推理 │ │ ├── spacetime_index.py # 时空索引 │ │ ├── spacetime_multihop.py # 时空多跳融合 │ │ ├── multimodal.py # 多模态嵌入 │ │ ├── spatial_rag.py # 三维世界模型 │ │ └── explainability.py # 可解释性模块 │ ├── adapters/ # 适配器 │ │ └── langchain.py # LangChain适配器 │ └── embedding/ # 向量模块 │ └── embedding.py # Ollama/MiniMax/OpenAI ├── tests/ # 测试 │ ├── test_lite.py │ ├── test_lite_pro.py │ ├── test_multihop_reasoning.py # 多跳推理测试 │ └── test_ollama_embedding.py ├── benchmarks/ # 性能测试 ├── examples/ # 示例 │ └── quick_start.py └── docs/ # 文档 ``` --- ## 🧪 运行测试 ```bash # 安装依赖 pip install -e ".[dev]" # 运行SDK测试 pytest tests/test_lite.py -v # 运行Pro版测试 pytest tests/test_lite_pro.py -v # 运行能力验证 pytest tests/test_lite_pro_capability.py -v # 运行性能基准 python benchmarks/benchmark_sdk.py ``` --- ## 💰 定价方案 **核心原则**:所有版本功能相同,仅按容量收费。 | 版本 | 价格 | 容量 | 说明 | |------|------|------|------| | **Community** | 免费 | 1,000条 | 个人学习、轻量使用 | | **Pro** | ¥99/月 | 10,000条 | 小团队、生产环境 | | **Enterprise** | ¥399/月 | 100,000条 | 企业级应用 | | **On-Premise** | ¥9,999 | 无限制 | 大型企业、私有部署 | 详细方案:[PAYMENT.md](./PAYMENT.md) ### 授权码安装 ```bash # 方式1:交互式安装 python examples/install_license.py # 方式2:从授权码安装 python examples/install_license.py --license-key SM-PRO-XXXX-XXXX # 方式3:从文件安装 python examples/install_license.py --file license.json # 查看授权状态 python examples/install_license.py --status ``` --- ## 📄 License **⚠️ 重要**:本项目采用自定义双轨授权协议 - **个人学习**:免费,但须遵守使用限制 - **商业使用**:需付费授权 详细协议:[LICENSE](./LICENSE) --- ## 🙏 致谢 - LangChain Memory接口 - Ollama本地向量模型 - TF-IDF信息检索算法 - RRF (Reciprocal Rank Fusion) 融合算法 --- **版本**: v1.4.0 | **发布日期**: 2026-04-25