1from su_memory import SuMemory
2
3client = SuMemory()
4client.add("张总在周一会议上提到Q3目标增长25%")
5results = client.query("Q3目标") # 秒级返回,带推理路径
1# 检查环境一致性
2which python
3which pip
4
5# 如果不一致,使用以下方式安装
6python -m pip install su-memory
1git clone https://github.com/su-memory/su-memory-sdk.git
2cd su-memory-sdk
3pip install .
1git clone https://github.com/su-memory/su-memory-sdk.git
2cd su-memory-sdk
3pip install -e ".[dev]"
1# 标准版即包含多跳推理能力
2pip install su-memory
3
4# 可视化Dashboard
5pip install su-memory[dashboard]
6python -m su_memory.dashboard
7# 访问 http://localhost:8765
8
9# REST API(支持 JS/Go/curl 调用)
10pip install su-memory[api]
11uvicorn su_memory.api.server:app --reload --port 8000
12# 访问 http://localhost:8000/docs 查看 API 文档
1# 快速检查
2python -c "from su_memory import SuMemoryLitePro; print('✅ 安装成功')"
3
4# 完整验证
5python -c "from su_memory.verify_install import main; main()"
pip show su-memory # 显示已安装
python -c "import su_memory" # 报错
1# 方式1: 使用 python -m pip
2python -m pip install su-memory
3
4# 方式2: 创建虚拟环境
5python -m venv myenv
6source myenv/bin/activate
7pip install su-memory
1from su_memory import SuMemory
2
3# 初始化(开箱即用多跳推理)
4client = SuMemory()
5
6# 添加记忆
7client.add("用户偏好深色主题", metadata={"user": "alice"})
8client.add("用户上周购买了笔记本电脑")
9
10# 语义检索
11results = client.query("电脑")
12
13# 多跳推理(默认hybrid模式,向量+图谱融合)
14chain = client.query_multihop("用户的购买偏好", max_hops=3)
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'])
1from su_memory.sdk import SuMemoryLite
2from su_memory.adapters import SuMemoryChatMemory
3
4# 创建记忆客户端
5client = SuMemoryLite()
6memory = SuMemoryChatMemory(client=client)
7
8# 保存对话上下文
9memory.save_context(
10 inputs={"input": "我叫张三"},
11 outputs={"output": "你好张三,很高兴认识你!"}
12)
13
14# 加载记忆用于后续对话
15vars = memory.load_memory_variables({})
16print(vars["chat_history"])
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适配器
插入性能:
✅ 吞吐量: 94 条/秒
✅ 平均耗时: 10.66 ms/条
查询性能:
✅ P50延迟: 0.27 ms
✅ P95延迟: 0.39 ms
✅ P99延迟: 0.43 ms
内存占用:
✅ 1000条记忆: 1.53 MB
语义检索:
✅ 向量检索: ~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多模态融合
时序计算:
✅ 时效衰减: 指数衰减 + 时序编码
✅ 预测模块: 基于历史趋势预测
1# 创建会话
2session1 = pro.create_session("项目会议")
3session2 = pro.create_session("日常对话")
4
5# 添加会话记忆
6pro.add("讨论了技术方案", topic="技术", session_id=session1)
7pro.add("讨论了项目进度", topic="进度", session_id=session1)
8
9# 跨会话召回
10related = pro._sessions.get_related_topics("技术")
11print(related)
1# 添加历史事件
2pro.add("周一项目启动")
3pro.add("周三完成第一阶段")
4pro.add("周五测试通过")
5
6# 预测趋势
7trend = pro.predict(metric="activity")
8print(trend['prediction'])
1# 查询并获取解释
2results = pro.query("项目")
3explanation = pro.explain_query("项目", results)
4
5print(explanation['explanation'])
6# 输出:
7# 针对查询'项目',系统检索到3条相关记忆。
8#
9# 最相关记忆:项目进展顺利
10# 相关度得分:85.52%
11#
12# 检索因素:
13# • 语义匹配(权重40%):85.52%
14# • 因果关联(权重30%):基于图谱推理
15# • 时序相关性(权重20%):时效性已计算
1# 启用多模态支持
2from su_memory.sdk.multimodal import create_multimodal_manager
3
4manager = create_multimodal_manager(
5 text_embedding_func=pro._embedding.encode,
6 enable_image=True, # 启用CLIP图像编码
7 enable_audio=False,
8 image_weight=0.4,
9 text_weight=0.6
10)
11
12# 添加多模态记忆
13manager.add_multimodal_memory(
14 memory_id="img_001",
15 content="会议室的场景",
16 image_path="/path/to/meeting.jpg"
17)
18
19# 多模态检索
20results = manager.search("会议", mode="multimodal", top_k=5)
21for r in results:
22 print(f"{r.content} (score={r.score:.3f}, source={r.source})")
1# 启用SpatialRAG三维世界模型
2pro._spatial.add_spatial_memory(
3 memory_id="spatial_001",
4 content="在会议室A发生的事件",
5 position=(10.0, 20.0, 0.0), # x, y, z 坐标
6 timestamp=1704067200
7)
8
9# 空间邻域搜索
10results = pro._spatial.search_nearby(
11 position=(10.0, 20.0, 0.0),
12 radius=5.0
13)
14
15# 三维检索(空间+时间+语义)
16results_3d = pro._spatial.search_3d(
17 query="会议",
18 position=(10.0, 20.0, 0.0),
19 time_range=(start_ts, end_ts),
20 max_distance=10.0
21)
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/ # 文档
1# 安装依赖
2pip install -e ".[dev]"
3
4# 运行SDK测试
5pytest tests/test_lite.py -v
6
7# 运行Pro版测试
8pytest tests/test_lite_pro.py -v
9
10# 运行能力验证
11pytest tests/test_lite_pro_capability.py -v
12
13# 运行性能基准
14python benchmarks/benchmark_sdk.py
1# 方式1:交互式安装
2python examples/install_license.py
3
4# 方式2:从授权码安装
5python examples/install_license.py --license-key SM-PRO-XXXX-XXXX
6
7# 方式3:从文件安装
8python examples/install_license.py --file license.json
9
10# 查看授权状态
11python examples/install_license.py --status