左:Wiki 知识图谱 | 右:500 题大规模幻觉测试报告
OmniKB 是一个按场景划分的知识库问答系统。核心思路:
- 导入知识源 — 上传文档、粘贴文本、抓取 URL
- 创建场景 — 每个场景绑定自己的知识源,配置专属 system prompt、UI 模板、API 密钥
- 一键发布 — 自动生成公开问答页(
/s/your-slug),嵌入官网或作为 Agent 的专属知识库 - Wiki 建图 — LLM 自动分析源内容,生成结构化 Wiki 页面,构建知识图谱
不同场景可以绑定不同知识源,快速切换。同时可以作为 AI Agent 的专属知识库——每个 Agent 绑定自己的场景 API,互不干扰。
参考 Karpathy 的 LLM-Wiki 构想 和 nashsu/llm_wiki 的实现范式。
┌──────────────────────────┐
文件/URL/文本 ──► 提取文本 ──► Wiki Generator (LLM) │
│ 两步 Chain-of-Thought │
│ Step 1: 分析 → JSON plan
│ Step 2: 生成 → .md 页面
└──────────┬───────────────┘
│
┌────────────────────────┼────────────────────────┐
▼ ▼ ▼
wiki_pages (DB) index.md (目录) [[wikilink]] 图谱
entity/concept 全量页面索引 D3.js 可视化
/source/query 渐进式披露 双向边
│ │ │
└────────────────────────┼────────────────────────┘
│
┌────────▼────────┐
│ LLM Chat (1M) │
│ 先读 index.md │
│ 按需 read_wiki │
│ SSE 流式输出 │
└─────────────────┘
零嵌入 · 零分块 · 零向量库 — Wiki 页面即知识库。
| Wiki 自动生成 | 上传任意文档 → LLM 两步 Chain-of-Thought (分析→生成) → 实体/概念/来源/查询页面自动创建 |
| 知识图谱 | [[wikilink]] 双向链接,D3.js 力导向可视化,节点按连接度缩放,缩放显隐标签 |
| 1M 上下文对话 | 全量 wiki_index 渐进式披露 → read_wiki_page(id) 按需深入 → SSE token-by-token 流式 |
| 场景发布 | 选择知识源 → 配置模板/LLM/样式 → 生成独立问答页 → API Key 鉴权。一键嵌入官网/客服系统 |
| Agent 场景编辑 | 自然语言指令操控页面:改布局、换配色、加组件、重写 HTML/CSS/JS。支持重置还原 |
| 快速企业部署 | 单文件启动 python backend/main.py,无需外部服务。Web UI 配置 LLM,重启不丢。Docker 可选 |
| MCP 协议 | read_wiki_page + fetch_url_preview 工具暴露给 Claude/其他 AI Agent |
| AURA Design | 极简 Slate 色系,明暗双主题,spring 弹性过渡,响应式布局 |
| Cookie 鉴权 | ADMIN_PASSWORD 环境变量一键开启,Cookie 30 天持久,Web UI 热更新无需重启 |
git clone https://github.com/fivif/OmniKB
cd OmniKB
cp .env.example .env
# 编辑 .env,填入 LLM_PROVIDER / LLM_MODEL / LLM_BASE_URL
# API Key 可在 Web UI 设置面板填入,会自动回写 .env
# ADMIN_PASSWORD=xxx ← 设置管理面板密码(留空则不启用鉴权)
pip install -r backend/requirements.txt
python backend/main.py
# 打开 http://localhost:68861. 上传资料 → 知识库管理(支持多源批量导入)
2. Wiki 面板 → 批量生成 Wiki 页面
3. 场景管理 → 新建场景 → 绑定知识源 → 自定义公开 URL (/s/your-slug)
4. 配置 UI 模板 → system prompt → API 密钥
5. 发布 → 作为独立问答页 | 嵌入官网 | Agent 专属知识库
不同场景 = 不同知识域,互不干扰:
| 场景 | 知识源 | 用途 |
|---|---|---|
| 民法典助手 | 民法典各编条文 | 法律咨询 / 律师 Agent |
| 产品手册 | 产品文档、FAQ | 客服系统 / 用户自助 |
| 内部 Wiki | 公司制度、技术文档 | 员工助手 / 入职培训 |
| 竞品分析 | 竞品资料、评测 | 市场分析 Agent |
设置 ADMIN_PASSWORD 后,所有路径均需登录,仅 /login.html 和 /auth/* 免鉴权(否则无法登录)。
| 路径 | 鉴权要求 |
|---|---|
| 全部路径 | 需登录 |
/login.html /auth/* |
免鉴权(登录流程必须) |
- 开启鉴权:在
.env中设置ADMIN_PASSWORD=your_password,或在 Web UI 设置面板热更新 - 关闭鉴权:留空
ADMIN_PASSWORD,所有请求直接放行 - 登录态:Cookie
omnikb_auth,httponly,30 天有效期
| 层 | 技术 |
|---|---|
| 框架 | FastAPI — 异步 HTTP,SSE 流式 |
| LLM | DeepSeek-V4 / OpenAI-compatible — 1M 上下文 |
| 数据库 | SQLite (aiosqlite · WAL 模式) |
| Agent 引擎 | agent_core — 自研 Provider 无关 Agent 循环 |
| MCP | FastMCP — SSE + stdio 双模式 |
| 配置 | Pydantic Settings — 运行时自检,密钥脱敏 |
| 层 | 技术 |
|---|---|
| 框架 | Vanilla JS — 零框架依赖 |
| 图谱 | D3.js — 力导向 Wiki 链接图 |
| 渲染 | marked + highlight.js — Markdown + 代码高亮 |
| 主题 | AURA Design System — CSS 自定义属性,明暗切换 |
| 流式 | SSE — token-by-token 实时渲染 |
Built with love
- DeepSeek — 梁圣恩情还不完
- LINUX DO — 技术社区与测试支持
- Andrej Karpathy — LLM-Wiki 范式先驱
- nashsu/llm_wiki — 参考实现

