在本地磁盘以分类纯 Markdown 文件保存需要长期留存的事实,与智能体内置记忆并存。
记忆
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
Docker Compose Deployment (Recommended)
# 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
| Variable | Description | Example |
|---|---|---|
KB_API_BASE | Memora backend URL | http://127.0.0.1:8080 |
DEEPSEEK_API_KEY | DeepSeek API Key (for LLM) | sk-xxx |
DASHSCOPE_API_KEY | DashScope API Key (for embeddings) | sk-xxx |
Optional Environment Variables
| Variable | Description | Default |
|---|---|---|
USE_RERANK | Enable reranking | false |
RERANK_API_KEY | Qwen3-Rerank API Key | - |
RETRIEVAL_TOP_K | Initial retrieval candidates | 20 |
QDRANT_DENSE_DEFAULT_THRESHOLD | Dense vector similarity threshold | 0.7 |
Usage Examples
Upload Documents
- Click "Upload Document" button in left sidebar
- Select file (PDF, DOCX, TXT, MD supported)
- Fill in title and tags (optional)
- Click "Upload" - system automatically parses, chunks, and vectorizes
Ask Questions
- Enter question in right-side chat interface
- Choose interaction mode:
- Knowledge Query: Get precise answers based on retrieval
- Knowledge Organization: Let AI organize and summarize related knowledge
- View answer with cited source documents
Browse Knowledge Graph
- Click "Knowledge Graph" button in top navigation
- View two preview cards:
- Document Relationship Graph: Shows connections between documents
- Entity Relationship Graph: Shows extracted entities and relationships
- 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
| Component | Technology | Description |
|---|---|---|
| Backend Framework | FastAPI (Python 3.11+) | High-performance async web framework |
| Vector Database | Qdrant | Hybrid retrieval with dense + sparse vectors |
| Relational Database | MySQL 8.0 | Document metadata, users, sessions |
| Embedding Model | DashScope text-embedding-v4 / Sentence-Transformers | Cloud API or local models |
| LLM Service | DeepSeek / OpenAI Compatible | Streaming output, multi-turn chat |
| Rerank Model | Qwen3-Rerank (optional) | Improves retrieval relevance |
| Document Parsing | PyPDF2, docx2txt, LangChain | Multi-format processing |
| Web Scraping | httpx + BeautifulSoup | Built-in crawler, no dependencies |
| Containerization | Docker + Docker Compose | One-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_THRESHOLDvalue
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
- Limit Node Count: Use smaller limits for previews (50-80 nodes)
- Cache Data: Reuse fetched data instead of reloading
- Debounce Resize: Add debounce to window resize handler
- Reduce Iterations: Lower
iterationsininitForceLayout()for faster load (default: 150) - 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:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Submit a pull request
Support
For issues and questions:
- GitHub Issues: https://github.com/zzlzzlzzl15/Memora/issues
- Email: support@memora.dev
- Documentation: https://github.com/zzlzzlzzl15/Memora/blob/main/personal_knowledge_base/README.md
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 结果二次排序。
相关技能
按用户明确指令,在得到大脑(Get笔记)中保存、搜索并管理笔记与知识库。
以 AI 机器人身份加入视频会议,提供语音、虚拟形象与屏幕共享四种模式。
把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
诊断生产力系统反复失效的根因,给出最小干预——容量测算、瓶颈定位、可靠的本地记录。
从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
zzlzzlzzl15 的更多技能
浏览全部技能Memora — Personal AI Knowledge Base with interactive knowledge graph visualization. A self-hosted system for managing, retrieving, and querying your personal...