Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

智能知识库系统

基于 RAG(检索增强生成)的本地知识库,支持文档导入、语义检索与 AI 问答

特性

  • 📄 多格式文档加载:PDF、Markdown、TXT、JSON、HTML
  • ✂️ 智能文本分块:按语义边界切分,支持重叠
  • 🔍 语义检索:基于向量相似度的精准搜索
  • 🤖 AI 问答:RAG 模式,基于知识库生成回答
  • 💾 本地存储:JSON 向量库,无需数据库
  • 🔌 多模型支持:OpenAI 兼容 API,支持 MiMo/GPT/Claude 等
  • 🏠 离线模式:无 API Key 时使用本地 TF-IDF 向量化

安装

git clone https://github.com/jiangshangwan/mimo-kb.git
cd mimo-kb

无需 npm install,零外部依赖。

快速开始

1. 添加文档

# 添加单个文件
node index.js add README.md

# 添加整个目录
node index.js add ./docs/

# 添加 PDF
node index.js add report.pdf

2. 查询知识库

# 语义搜索 + AI 问答(需要配置 API Key)
node index.js query "如何使用这个项目?"

# 仅检索模式(不需要 API Key)
node index.js query "安装方法" --no-answer

# 返回更多结果
node index.js query "架构设计" --top-k 10

3. 管理知识库

# 查看统计
node index.js stats

# 列出文档
node index.js list

# 删除文档
node index.js delete <document-id>

配置

创建 config.json

{
  "embedding": {
    "provider": "openai",
    "apiKey": "your-api-key",
    "baseUrl": "https://api.openai.com/v1",
    "model": "text-embedding-3-small"
  },
  "chat": {
    "provider": "openai",
    "apiKey": "your-api-key",
    "baseUrl": "https://api.openai.com/v1",
    "model": "gpt-4o-mini"
  },
  "chunking": {
    "chunkSize": 500,
    "overlap": 50
  },
  "store": {
    "path": "./data",
    "similarityThreshold": 0.3,
    "topK": 5
  }
}

使用 MiMo API

{
  "embedding": {
    "provider": "openai",
    "apiKey": "your-mimo-api-key",
    "baseUrl": "https://api.mimo.xiaomi.com/v1",
    "model": "mimo-embedding"
  },
  "chat": {
    "provider": "openai",
    "apiKey": "your-mimo-api-key",
    "baseUrl": "https://api.mimo.xiaomi.com/v1",
    "model": "mimo-v2"
  }
}

离线模式

不配置 API Key 时自动使用本地 TF-IDF 向量化,无需网络连接。

架构

mimo-kb/
├── index.js              # CLI 入口
├── lib/
│   ├── config.js         # 配置管理
│   ├── loader.js         # 文档加载(PDF/MD/TXT/JSON/HTML)
│   ├── chunker.js        # 智能文本分块
│   ├── embedding.js      # 向量化(API + 本地 TF-IDF)
│   ├── vectorstore.js    # JSON 向量存储 + 相似度检索
│   └── rag.js            # RAG 管道(检索增强生成)
├── config.example.json   # 示例配置
└── README.md

数据流

文档 → Loader → Chunker → Embedding → VectorStore
                                        ↓
用户查询 → Embedding → 相似度检索 → Top-K 结果 → RAG → AI 回答

环境要求

  • Node.js >= 18.0.0
  • 无外部依赖

License

MIT

License

MIT

License

MIT

About

基于 RAG(检索增强生成)的本地知识库,支持文档导入、语义检索与 AI 问答

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages