Memora Knowledge Base

Memora:自托管个人 AI 知识库,支持交互式知识图谱可视化,用于管理、检索与查询个人知识。

已扫描
适合谁
知识管理者、学术研究人员
不适合谁
需要云端共享的团队协作用户、无技术基础且无法部署本地服务的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @zzlzzlzzl15/memora-knowledge-base

Skill 说明

命令、参数、文件名以原文为准

Memora - 个人AI知识库

Memora 是一个自托管的个人AI知识库系统,提供从知识捕获到智能问答的一体化体验。基于向量检索、混合搜索和LLM驱动的智能组织,帮助您高效管理、检索和利用个人知识资产。

版本历史

v2.1.0(当前版本)

  • 🕸️ 知识图谱完整构建:实体提取现在处理所有文本块(移除10块限制)
  • 🗑️ 文档删除一致性:软删除与清除操作同步清理Neo4j图数据
  • 🔧 实体ID修复:解决因缺少entity_id导致图查询中节点丢失的问题
  • 性能优化:查询时移除MySQL一致性检查,改为在删除时处理
  • 📦 目录重构:为适配ClawHub,将技能目录重命名为memora-knowledge-base

v2.0.4

  • 📝 完整产品文档:包含完整产品概述的详细README
  • 🎨 知识图谱v2.0:预览+全屏模态架构
  • 🖱️ 增强交互体验:支持缩放、平移、拖拽、悬停查看详情
  • 🎯 居中布局:力导向算法实现以原点为中心的定位
  • 🔄 智能缓存:预览数据缓存,模态框使用更大数据集
  • 双视图模式:文档关系图 + 实体关系图

v2.0.0

  • 初始版本,支持知识图谱可视化
  • 力导向布局,具备交互控制功能
  • Obsidian风格视觉设计

核心功能

🔐 隐私与本地部署

  • 完全私密:数据本地存储,不上传第三方
  • 离线可用:无需互联网连接即可使用
  • 单用户模式:无需认证,开箱即用

智能语义检索

  • 混合搜索:密集向量 + BM42稀疏向量双引擎检索
  • 相关性重排序:可选重排序模型进行二次排序
  • 降级机制:自动切换至备用策略
  • 语义理解:基于向量相似度,非关键词匹配

📄 多格式文档处理

  • 支持格式:PDF、Word (.docx/.doc)、纯文本 (.txt)、Markdown (.md)
  • 智能分块:LangChain递归字符分割器,支持中英文
  • 向量存储:密集向量与稀疏向量存储于Qdrant
  • 元数据管理:支持标签和自定义元数据分类

AI驱动的问答

  • 两种交互模式

- 知识查询:基于检索结果生成精准回答

- 知识组织:由LLM自动整理并总结知识内容

  • 流式输出:实时生成内容
  • 会话管理:支持多轮对话与历史记录
  • 来源标注:回答中包含源文档链接

🕸️ 知识图谱可视化

  • 力导向布局:自动节点定位,形成自然网络结构
  • 双视图显示:文档关系图 + 实体关系图
  • 交互操作

- 鼠标滚轮缩放(以光标为中心)

- 拖动空白区域平移画布

- 拖动节点重新定位

- 悬停查看详细信息

  • Obsidian风格设计:黑色节点、白色背景、细微连接线

🌐 网页抓取与集成

  • 内置爬虫:使用httpx + BeautifulSoup,无外部依赖
  • OpenClaw集成:作为AI Agent技能,零依赖客户端
  • RESTful API:便于与其他系统集成

快速开始

通过 clawhub 安装

openclaw skills install memora-knowledge-graph@2.0.4

手动安装

# 克隆仓库
git clone https://github.com/zzlzzlzzl15/Memora.git
cd Memora/personal_knowledge_base

# 运行安装脚本
./install.sh

Docker Compose 部署(推荐)

# 克隆仓库
git clone https://github.com/zzlzzlzzl15/Memora.git
cd Memora/personal_knowledge_base

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填写API密钥

# 启动服务
docker-compose up -d

# 访问应用
# 在浏览器打开 http://localhost:8080

配置说明

设置 KB_API_BASE 环境变量,指向您的Memora后端:

export KB_API_BASE=http://127.0.0.1:8080

或创建 .env 文件:

KB_API_BASE=http://127.0.0.1:8080

必需环境变量

变量描述示例
KB_API_BASEMemora后端地址http://127.0.0.1:8080
DEEPSEEK_API_KEYDeepSeek API密钥(用于LLM)sk-xxx
DASHSCOPE_API_KEYDashScope API密钥(用于嵌入)sk-xxx

可选环境变量

变量描述默认值
USE_RERANK启用重排序功能false
RERANK_API_KEYQwen3-Rerank API密钥-
RETRIEVAL_TOP_K初始检索候选数量20
QDRANT_DENSE_DEFAULT_THRESHOLD密集向量相似度阈值0.7

使用示例

上传文档

  1. 点击左侧边栏的 “上传文档” 按钮
  2. 选择文件(支持PDF、DOCX、TXT、MD)
  3. 填写标题和标签(可选)
  4. 点击 “上传” —— 系统将自动解析、分块并向量化

提问

  1. 在右侧聊天界面输入问题
  2. 选择交互模式:

- 知识查询:基于检索结果获取精确答案

- 知识组织:让AI自动整理并总结相关内容

  1. 查看带来源标注的回答

浏览知识图谱

  1. 点击顶部导航栏的 “知识图谱” 按钮
  2. 查看两个预览卡片:

- 文档关系图:展示文档之间的关联

- 实体关系图:展示提取出的实体及其关系

  1. 点击任意卡片进入全屏模态框进行交互探索:

- 滚动缩放

- 拖动平移

- 拖动节点调整位置

- 悬停查看详情

文档管理

  • 查看列表:在左侧边栏查看所有文档
  • 搜索:使用快速搜索功能
  • 回收站:查看并管理已删除文档(30天内可恢复)
  • 永久删除:彻底移除文档及向量数据

技术架构

┌─────────────────────────────────────────┐
│           Web 浏览器                    │
│     (前端UI - HTML/CSS/JS)         │
└──────────────┬──────────────────────────┘
               │ HTTP / WebSocket
┌──────────────▼──────────────────────────┐
│         Memora 后端                   │
│       (FastAPI / Python)                │
──────────┬──────────────┬───────────────┤
│ 文档处理 │  检索引擎    │ AI服务        │
├──────────┼──────────────┼───────────────┤
│• PDF     │• 密集向量    │• 嵌入模型     │
│  解析    │  搜索        │  (DashScope/  │
│• DOCX    │• 稀疏向量    │  本地ST)      │
│  解析    │  (BM42)      │• LLM 聊天     │
│• 文本    │• 混合搜索    │  (DeepSeek/  │
│  分块    │• 降级逻辑    │  OpenAI兼容)  │
│• 元数据  │              │• 重排序       │
│• 上传API │              │  (Qwen3)      │
│          │              │• 流式响应     │
└────┬─────┴──────┬───────┴───────┬───────┘
     │            │               │
┌────▼────┐ ┌────▼──────┐ ┌──────▼──────┐
│ MySQL   │ │  Qdrant   │ │ 外部API      │
│(元数据)  │ │(向量数据库)│ │             │
│         │ │           │ │             │
│• 文档   │ │• 密集向量  │ │• DashScope   │
│• 用户   │ │  存储     │ │• DeepSeek    │
│• 会话   │ │• 稀疏向量  │ │• OpenAI兼容  │
│• 历史   │ │  (BM42)   │ │             │
└─────────┘ └───────────┘ └─────────────┘

技术栈

组件技术说明
后端框架FastAPI (Python 3.11+)高性能异步Web框架
向量数据库Qdrant支持密集+稀疏向量的混合检索
关系型数据库MySQL 8.0存储文档元数据、用户、会话
嵌入模型DashScope text-embedding-v4 / Sentence-Transformers云端API或本地模型
LLM服务DeepSeek / OpenAI兼容支持流式输出、多轮对话
重排序模型Qwen3-Rerank(可选)提升检索相关性
文档解析PyPDF2, docx2txt, LangChain多格式处理
网页抓取httpx + BeautifulSoup内置爬虫,无依赖
容器化Docker + Docker Compose一键部署

故障排查

问题:预览卡片未显示

解决方案:检查浏览器控制台错误。确保在DOM加载完成后调用 initKnowledgeGraph()

问题:节点未居中

解决方案:强制刷新页面(Cmd+Shift+R)。如仍无效,清除浏览器缓存

问题:模态框无法拖拽/缩放

解决方案:确认全屏可视化器已调用 setInteractive(true)。检查控制台日志

问题:服务无法启动

解决方案

# 查看日志
docker-compose logs -f app

# 清理并重启
docker-compose down -v
docker-compose up -d

问题:文档上传失败

解决方案

  • 检查文件格式(仅支持PDF、DOCX、TXT、MD)
  • 检查文件大小(默认限制:10MB)
  • 查看应用日志:docker-compose logs -f app

问题:无检索结果

解决方案

  • 确认文档已上传并完成向量化
  • 尝试更换查询词
  • 降低 QDRANT_DENSE_DEFAULT_THRESHOLD

问题:LLM调用失败

解决方案

# 检查API密钥配置
cat .env | grep API_KEY

# 测试API连通性
curl -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  https://api.deepseek.com/v1/chat/completions \
  -d '{"model":"deepseek-chat","messages":[{"role":"user","content":"test"}]}'

性能优化建议

  1. 限制节点数量:预览使用较小数量(50-80个节点)
  2. 数据缓存:复用已获取数据,避免重复加载
  3. 防抖窗口调整:为窗口调整事件添加防抖处理
  4. 减少迭代次数:降低 initForceLayout() 中的迭代次数以加快加载(默认150)
  5. 优化渲染:在快速鼠标移动期间跳过渲染

浏览器兼容性

  • ✅ Chrome 90+
  • ✅ Firefox 88+
  • ✅ Safari 14+
  • ✅ Edge 90+

要求:

  • Canvas 2D API
  • CSS backdrop-filter
  • ES6+ JavaScript特性

贡献指南

欢迎贡献!请按以下步骤操作:

  1. Fork 仓库
  2. 创建功能分支(git checkout -b feature/awesome-feature
  3. 修改代码
  4. 提交更改(git commit -m 'Add awesome feature'
  5. 推送到分支(git push origin feature/awesome-feature
  6. 提交合并请求

支持渠道

如有问题或疑问:

  • GitHub Issues:https://github.com/zzlzzlzzl15/Memora/issues
  • 邮件:support@memora.dev
  • 文档:https://github.com/zzlzzlzzl15/Memora/blob/main/personal_knowledge_base/README.md

致谢

  • 灵感来自 [Obsidian](https://obsidian.md/) 图谱视图
  • 专为 [Memora](https://github.com/zzlzzlzzl15/Memora) 个人知识库打造
  • 使用类似 D3.js 力导向模拟的布局算法
  • 参考 [RAG-Anything](https://github.com/RAG-Anything/RAG-Anything) 的多模态RAG架构

由 zzlzzlzzl15 ❤️ 制作

*Memora — 您的个人AI知识库*

Z
@zzlzzlzzl15

已收录 1 个 Skill

相关推荐