Expand description
§AI00-Mem: 智能记忆系统
AI00-Mem是一个为个人AI助手设计的智能记忆系统,基于A-Mem和HippoRAG论文的研究成果。 该系统提供动态记忆组织、神经生物学启发的检索机制和持续学习能力。
§核心特性
- 动态记忆组织: 基于Zettelkasten方法的原子化记忆管理
- 智能检索: HippoRAG风格的个性化PageRank检索算法
- 记忆演化: 自适应的记忆重要性调整和连接更新
- 多模式存储: 向量数据库和图数据库的混合存储
- 持续学习: 基于用户反馈的个性化适应机制
§快速开始
use ai00_mem::prelude::*;
use ai00_mem::config::Config;
use tokio;
#[tokio::main]
async fn main() -> ai00_mem::Result<()> {
// 创建配置
let mut config = Config::default();
config.database.url = "sqlite::memory:".to_string();
// 创建数据库和记忆管理器
let db = std::sync::Arc::new(VectorGraphDB::new(config.clone()).await?);
let memory_manager = MemoryManager::new(db.clone(), config.clone()).await?;
// 创建记忆
let attributes = MemoryAttributes {
keywords: vec!["机器学习".to_string(), "AI".to_string()],
tags: vec!["学习".to_string()],
importance: 0.8,
..Default::default()
};
let content = "用户询问了关于机器学习的基础概念".to_string();
let embedding = memory_manager.generate_embedding(&content).await?;
let memory = Memory::new(content, MemoryType::Knowledge, embedding, attributes);
memory_manager.create_memory(&memory).await?;
// 检索记忆
let query = Query {
text: "机器学习".to_string(),
query_type: QueryType::Semantic,
filters: QueryFilters::default(),
limit: Some(5),
offset: None,
sort_by: None,
weights: QueryWeights::default(),
};
let context = Context::default();
let results = memory_manager.retrieve_memories(&query, &context).await?;
println!("找到 {} 条相关记忆", results.len());
Ok(())
}§模块结构
core: 核心数据结构和类型定义storage: 存储层实现,包括向量数据库和图数据库memory: 记忆管理模块,包括创建、链接和演化retrieval: 检索引擎,支持多种检索策略learning: 学习模块,实现持续学习和适应utils: 工具函数和辅助模块examples: 使用示例和演示代码
§配置
系统支持通过配置文件或环境变量进行配置:
[memory]
database_url = "sqlite:memory.db"
cache_size = 1000
[retrieval]
semantic_threshold = 0.7
max_results = 50
[learning]
learning_rate = 0.01
decay_rate = 0.001Re-exports§
pub use core::*;pub use database::*;pub use error::*;pub use learning::*;pub use memory::*;pub use retrieval::*;
Modules§
- config
- 配置管理模块
- core
- 核心数据结构和类型定义
- database
- 数据库模�?//! 本模块提供向量数据库和图数据库的统一接口,支持SQLite、PostgreSQL和MySQL�?//! 包含向量存储、图节点和边的管理、以及高效的查询功能�?
- error
- 错误处理模块
- learning
- 学习模块
- memory
- 记忆管理模块
- prelude
- 预导入模块,包含最常用的类型和函数
- retrieval
- 检索模块
- utils
- 工具模块
Constants§
- DESCRIPTION
- 库描述
- NAME
- 库名称
- VERSION
- 库版本信息
Functions§
- version_
info - 获取库的完整版本信息