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
⚡ 安装
pip install su-memory
一行代码,让 AI 拥有记忆能力:
from su_memory import SuMemory
client = SuMemory()
client.add("张总在周一会议上提到Q3目标增长25%")
results = client.query("Q3目标") # 秒级返回,带推理路径
⚡ 安装指南
环境要求
- Python 3.10+
- 推荐使用虚拟环境 (venv) 或 conda
安装前检查
重要: 安装前请确认 pip 和 python 指向同一环境。
# 检查环境一致性
which python
which pip
# 如果不一致,使用以下方式安装
python -m pip install su-memory
安装方式
方式1: 标准安装 (推荐)
pip install su-memory
✨ 开箱即用多跳推理 - 默认集成FAISS + sentence-transformers
方式2: 使用 python -m pip (确保环境一致)
python -m pip install su-memory
方式3: 从 GitHub 安装最新版本
pip install git+https://github.com/su-memory/su-memory-sdk.git
方式4: 源码安装
git clone https://github.com/su-memory/su-memory-sdk.git
cd su-memory-sdk
pip install .
方式5: 开发模式安装
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 |
# 标准版即包含多跳推理能力
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 文档
安装验证
安装完成后,运行验证脚本:
# 快速检查
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 指向不同环境
解决:
python -m pip install --force-reinstall su-memory
问题2: 环境不匹配警告
⚠️ pip 和 python 指向不同环境
解决:
# 方式1: 使用 python -m pip
python -m pip install su-memory
# 方式2: 创建虚拟环境
python -m venv myenv
source myenv/bin/activate
pip install su-memory
问题3: 诊断工具
如果遇到其他问题,运行诊断工具:
python -c "from su_memory.diagnostics import main; main()"
🚀 快速开始
| 能力 | 用户感知价值 | 技术支撑 |
|---|---|---|
| 记住一切 | 上周聊的项目,AI秒级回忆 | 本地向量存储 |
| 因果推理 | "为什么推荐这个?" | 因果链追踪 |
| 时间感知 | 越新的记忆越相关 | 时序衰减 |
| 可解释 | 推理路径透明可见 | Multi-hop RAG |
一行代码入门
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集成
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 | 中文场景优化 |
🔌 进阶功能
多会话管理
# 创建会话
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)
时序预测
# 添加历史事件
pro.add("周一项目启动")
pro.add("周三完成第一阶段")
pro.add("周五测试通过")
# 预测趋势
trend = pro.predict(metric="activity")
print(trend['prediction'])
可解释推理
# 查询并获取解释
results = pro.query("项目")
explanation = pro.explain_query("项目", results)
print(explanation['explanation'])
# 输出:
# 针对查询'项目',系统检索到3条相关记忆。
#
# 最相关记忆:项目进展顺利
# 相关度得分:85.52%
#
# 检索因素:
# • 语义匹配(权重40%):85.52%
# • 因果关联(权重30%):基于图谱推理
# • 时序相关性(权重20%):时效性已计算
多模态检索
# 启用多模态支持
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})")
三维世界模型检索
# 启用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/ # 文档
🧪 运行测试
# 安装依赖
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
授权码安装
# 方式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
🙏 致谢
- LangChain Memory接口
- Ollama本地向量模型
- TF-IDF信息检索算法
- RRF (Reciprocal Rank Fusion) 融合算法
版本: v1.4.0 | 发布日期: 2026-04-25
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support