记忆

Memora Knowledge Base

试用

自托管的个人 AI 知识库,支持向量检索、混合召回与类 Obsidian 风格的知识图谱可视化。

它能做什么

Memora 是一个本地自托管的个人 AI 知识库,用于管理、检索和问答你自己的资料。支持 PDF、DOCX、TXT、Markdown 四种格式,使用 LangChain 递归切分器(中英文友好)处理后,把稠密向量与 BM42 稀疏向量存入 Qdrant。基于 FastAPI 的后端提供 REST API 和 Web 界面,核心能力包括混合检索、可选的 Qwen3-Rerank 重排序、流式 LLM 问答(DeepSeek 或 OpenAI 兼容接口,分「知识查询」与「知识整理」两种模式)、以及力导向布局的知识图谱(同时提供文档关系图与实体关系图两种视图)。推荐用 Docker Compose 一键部署,同时以 OpenClaw Agent Skill 形式发布,目前版本 v2.1.0。

什么时候用它

  • 把本地 PDF、Word、TXT、Markdown 整理成可检索的私有知识库
  • 针对已上传文档提问,获得带原文链接和来源标注的流式回答
  • 用内置的 httpx + BeautifulSoup 爬虫把网页内容纳入知识库
  • 在交互式图谱中浏览文档和实体之间的关联关系

技能文档

Memora - Personal AI Knowledge Base

Memora is a self-hosted personal AI knowledge base system that provides an integrated experience from knowledge capture to intelligent Q&A. Built on vector retrieval, hybrid search, and LLM-driven intelligent organization, it helps you efficiently manage, retrieve, and utilize your personal knowledge assets.

Version History

v2.1.0 (Current)

  • 🕸️ Knowledge Graph Full Build: Entity extraction now processes all text chunks (removed 10-chunk limit)
  • 🗑️ Document Deletion Consistency: Soft delete and purge now sync cleanup Neo4j graph data
  • 🔧 Entity ID Fix: Resolved missing entity_id issue causing node loss in graph queries
  • Performance Optimization: Removed MySQL consistency check during queries, moved to deletion time
  • 📦 Directory Restructure: Renamed skill directory to memora-knowledge-base for ClawHub compatibility

v2.0.4

  • 📝 Complete Product Documentation: Comprehensive README with full product overview
  • 🎨 Knowledge Graph v2.0: Preview + Fullscreen Modal architecture
  • 🖱️ Enhanced Interactions: Zoom, pan, drag, hover details
  • 🎯 Centered Layout: Force-directed algorithm with origin-centered positioning
  • 🔄 Smart Caching: Preview data cached, modal uses larger dataset
  • Dual Views: Document graph + Entity graph

v2.0.0

  • Initial release with knowledge graph visualization
  • Force-directed layout with interactive controls
  • Obsidian-inspired visual design

Core Features

🔐 Privacy & Local Deployment

  • Fully Private: Data stored locally, no third-party uploads
  • Offline Ready: Works without internet connection
  • Single User Mode: No authentication required, ready to use out of the box

Intelligent Semantic Retrieval

  • Hybrid Search: Dense vectors + BM42 sparse vectors dual-engine retrieval
  • Relevance Reranking: Optional Rerank model for secondary sorting
  • Fallback Mechanism: Automatic fallback to backup strategies
  • Semantic Understanding: Vector similarity-based, not keyword matching

📄 Multi-Format Document Processing

  • Supported Formats: PDF, Word (.docx/.doc), Plain Text (.txt), Markdown (.md)
  • Smart Chunking: LangChain recursive character splitter with Chinese/English support
  • Vector Storage: Dense + sparse vectors stored in Qdrant
  • Metadata Management: Tags and custom metadata for organization

AI-Powered Q&A

  • Two Interaction Modes:
    • Knowledge Query: Precise Q&A based on retrieved results
    • Knowledge Organization: LLM automatically organizes and summarizes knowledge
  • Streaming Output: Real-time content generation
  • Session Management: Multi-turn conversations with history
  • Source Attribution: Answers include source document links

🕸️ Knowledge Graph Visualization

  • Force-Directed Layout: Automatic node positioning forming natural network structure
  • Dual View Display: Document relationship graph + Entity relationship graph
  • Interactive Operations:
    • Mouse wheel zoom (centered on cursor)
    • Drag blank area to pan canvas
    • Drag nodes to reposition
    • Hover to show details
  • Obsidian Style Design: Black nodes, white background, subtle connections

🌐 Web Scraping & Integration

  • Built-in Crawler: httpx + BeautifulSoup, no external dependencies
  • OpenClaw Integration: Available as AI Agent Skill with zero-dependency client
  • RESTful API: Easy integration with other systems

Quick Start

Installation via clawhub

openclaw skills install memora-knowledge-graph@2.0.4

Manual Installation

# Clone repository
git clone https://github.com/zzlzzlzzl15/Memora.git
cd Memora/personal_knowledge_base

# Run installation script
./install.sh
# Clone repository
git clone https://github.com/zzlzzlzzl15/Memora.git
cd Memora/personal_knowledge_base

# Configure environment variables
cp .env.example .env
# Edit .env with your API keys

# Start services
docker-compose up -d

# Access application
# Open http://localhost:8080 in browser

Configuration

Set the KB_API_BASE environment variable to point to your Memora backend:

export KB_API_BASE=http://127.0.0.1:8080

Or create a .env file:

KB_API_BASE=http://127.0.0.1:8080

Required Environment Variables

VariableDescriptionExample
KB_API_BASEMemora backend URLhttp://127.0.0.1:8080
DEEPSEEK_API_KEYDeepSeek API Key (for LLM)sk-xxx
DASHSCOPE_API_KEYDashScope API Key (for embeddings)sk-xxx

Optional Environment Variables

VariableDescriptionDefault
USE_RERANKEnable rerankingfalse
RERANK_API_KEYQwen3-Rerank API Key-
RETRIEVAL_TOP_KInitial retrieval candidates20
QDRANT_DENSE_DEFAULT_THRESHOLDDense vector similarity threshold0.7

Usage Examples

Upload Documents

  1. Click "Upload Document" button in left sidebar
  2. Select file (PDF, DOCX, TXT, MD supported)
  3. Fill in title and tags (optional)
  4. Click "Upload" - system automatically parses, chunks, and vectorizes

Ask Questions

  1. Enter question in right-side chat interface
  2. Choose interaction mode:
    • Knowledge Query: Get precise answers based on retrieval
    • Knowledge Organization: Let AI organize and summarize related knowledge
  3. View answer with cited source documents

Browse Knowledge Graph

  1. Click "Knowledge Graph" button in top navigation
  2. View two preview cards:
    • Document Relationship Graph: Shows connections between documents
    • Entity Relationship Graph: Shows extracted entities and relationships
  3. Click any card to enter fullscreen modal for interactive exploration:
    • Scroll to zoom
    • Drag to pan
    • Drag nodes to reposition
    • Hover for details

Manage Documents

  • View List: See all documents in left sidebar
  • Search: Use quick search function
  • Recycle Bin: View and manage deleted documents (recoverable within 30 days)
  • Permanent Delete: Permanently remove documents and vector data

Technical Architecture

┌─────────────────────────────────────────┐
│           Web Browser                    │
│     (Frontend UI - HTML/CSS/JS)         │
└──────────────┬──────────────────────────┘
               │ HTTP / WebSocket
┌──────────────▼──────────────────────────┐
│         Memora Backend                   │
│       (FastAPI / Python)                │
──────────┬──────────────┬───────────────┤
│ Document │  Retrieval   │ AI Services   │
│Processing│   Engine     │               │
├──────────┼──────────────┼───────────────┤
│• PDF     │• Dense Vector│• Embedding    │
│  Parser  │  Search      │  (DashScope/  │
│• DOCX    │• Sparse Vector│  Local ST)   │
│  Parse   │  (BM42)      │• LLM Chat     │
│• Text    │• Hybrid Search│  (DeepSeek/  │
│  Split   │• Fallback     │  OpenAI Comp)│
│• Metadata│  Logic       │• Rerank       │
│• Upload  │              │  (Qwen3)      │
│  API     │              │• Stream       │
│          │              │  Response     │
└────┬─────┴──────┬───────┴───────┬───────┘
     │            │               │
┌────▼────┐ ┌────▼──────┐ ┌──────▼──────┐
│ MySQL   │ │  Qdrant   │ │ External    │
│(Metadata)│ │(Vector DB)│ │ APIs        │
│         │ │           │ │             │
│• Docs   │ │• Dense    │ │• DashScope  │
│• Users  │ │  Vectors  │ │• DeepSeek   │
│• Sessions│ │• Sparse   │ │• OpenAI     │
│• History │ │  (BM42)   │ │ Compatible  │
└─────────┘ └───────────┘ └─────────────┘

Tech Stack

ComponentTechnologyDescription
Backend FrameworkFastAPI (Python 3.11+)High-performance async web framework
Vector DatabaseQdrantHybrid retrieval with dense + sparse vectors
Relational DatabaseMySQL 8.0Document metadata, users, sessions
Embedding ModelDashScope text-embedding-v4 / Sentence-TransformersCloud API or local models
LLM ServiceDeepSeek / OpenAI CompatibleStreaming output, multi-turn chat
Rerank ModelQwen3-Rerank (optional)Improves retrieval relevance
Document ParsingPyPDF2, docx2txt, LangChainMulti-format processing
Web Scrapinghttpx + BeautifulSoupBuilt-in crawler, no dependencies
ContainerizationDocker + Docker ComposeOne-click deployment

Troubleshooting

Issue: Preview cards not showing

Solution: Check browser console for errors. Ensure initKnowledgeGraph() is called after DOM ready.

Issue: Nodes not centered

Solution: Hard refresh page (Cmd+Shift+R). Clear browser cache if needed.

Issue: Cannot drag/zoom in modal

Solution: Verify setInteractive(true) is called for fullscreen visualizer. Check console logs.

Issue: Service won't start

Solution:

# Check logs
docker-compose logs -f app

# Clean and restart
docker-compose down -v
docker-compose up -d

Issue: Document upload fails

Solution:

  • Check file format (PDF, DOCX, TXT, MD only)
  • Check file size (default limit: 10MB)
  • Review application logs: docker-compose logs -f app

Issue: No retrieval results

Solution:

  • Confirm documents are uploaded and vectorized
  • Try different query terms
  • Lower QDRANT_DENSE_DEFAULT_THRESHOLD value

Issue: LLM call fails

Solution:

# Check API key configuration
cat .env | grep API_KEY

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

Performance Tips

  1. Limit Node Count: Use smaller limits for previews (50-80 nodes)
  2. Cache Data: Reuse fetched data instead of reloading
  3. Debounce Resize: Add debounce to window resize handler
  4. Reduce Iterations: Lower iterations in initForceLayout() for faster load (default: 150)
  5. Optimize Rendering: Skip rendering during rapid mouse movements

Browser Compatibility

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

Requires:

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

Contributing

Contributions welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Submit a pull request

Support

For issues and questions:

Acknowledgments

  • Inspired by Obsidian graph view
  • Built for Memora personal knowledge base
  • Uses force-directed layout algorithm similar to D3.js force simulation
  • References RAG-Anything for multimodal RAG architecture

Made with ❤️ by zzlzzlzzl15

Memora - Your Personal AI Knowledge Base

常见问题

支持哪些文件格式?有大小限制吗?
支持 PDF、DOCX、TXT、Markdown,默认单文件上传上限 10MB。
断网能不能用?
可以。数据全部本地存储,系统本身支持离线运行;只有调用 DashScope、DeepSeek 等云端 Embedding/LLM 接口时才需要联网。
检索结果怎么排序?
在 Qdrant 中用稠密向量 + BM42 稀疏向量做混合检索,初始候选数默认为 20;可选用 Qwen3-Rerank 模型对 Top-K 结果二次排序。

相关技能

在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。

作者 Iván555 次安装18 星标

按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。

作者 iswalle763 次安装66 星标

以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。

作者 johnpatternai21 次安装8 星标

把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。

作者 nssa.io1.0k 次安装47 星标

诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。

作者 Iván854 次安装69 星标

从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。

作者 fly0pants4.3k 次安装296 星标

zzlzzlzzl15 的更多技能

浏览全部技能

Memora — Personal AI Knowledge Base with interactive knowledge graph visualization. A self-hosted system for managing, retrieving, and querying your personal...

作者 zzlzzlzzl15