[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94502":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":17,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":18,"rankGlobal":10,"rankLanguage":10,"license":19,"archived":20,"fork":20,"defaultBranch":21,"hasWiki":22,"hasPages":22,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":24,"readmeContent":25,"aiSummary":26,"trendingCount":16,"starSnapshotCount":16,"syncStatus":27,"lastSyncTime":28,"discoverSource":29},94502,"Mem-kb","2023782whl\u002FMem-kb","2023782whl","Self-Evolving Enterprise Knowledge Base","https:\u002F\u002F2023782whl.github.io\u002FMem-kb\u002F",null,"TypeScript",205,5,1,4,0,72,49.53,"MIT License",false,"main",true,[],"2026-08-24 04:01:22","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"frontend\u002Fsrc\u002Fassets\u002Ficons\u002Fproduct_logo.png\" width=\"92\" alt=\"MEM-KB logo\" \u002F>\n  \u003Ch1>MEM-KB\u003C\u002Fh1>\n  \u003Cp>\u003Cstrong>让企业知识可检索、可引用、可评测，并在持续使用中自动整理。\u003C\u002Fstrong>\u003C\u002Fp>\n  \u003Cp>Self-hosted knowledge workspace for sourced RAG, notes, graphs, evaluation, and continuous consolidation.\u003C\u002Fp>\n\n  \u003Cp>\n    \u003Ca href=\"LICENSE\">\u003Cimg alt=\"MIT License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-16a36a.svg\" \u002F>\u003C\u002Fa>\n    \u003Cimg alt=\"Node.js 22+\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FNode.js-22%2B-339933?logo=nodedotjs&logoColor=white\" \u002F>\n    \u003Cimg alt=\"TypeScript\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTypeScript-5.9-3178C6?logo=typescript&logoColor=white\" \u002F>\n    \u003Cimg alt=\"React\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FReact-19-61DAFB?logo=react&logoColor=111\" \u002F>\n    \u003Cimg alt=\"PostgreSQL\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPostgreSQL-17-4169E1?logo=postgresql&logoColor=white\" \u002F>\n  \u003C\u002Fp>\n\u003C\u002Fdiv>\n\n![MEM-KB 知识问答工作台](docs\u002Fassets\u002Fscreenshots\u002Foverview.png)\n\nMEM-KB 是一个面向团队和个人的开源知识工作台。它把文档、图片、笔记、历史对话和知识图谱组织在 Workspace 中，通过混合检索与可追溯引用提供问答，并用 RAG 评测和夜间巩固持续改善知识质量。\n\n## 为什么选择 MEM-KB\n\n- **答案有来源**：文档范围检索、混合召回、重排和引用链路，便于核验答案依据。\n- **知识不止是文件夹**：文档、图片、笔记、实体关系和对话沉淀在同一 Workspace。\n- **质量可以量化**：按知识库运行 RAG 评测，查看召回率、准确率、引用正确性、命中\u002F遗漏文档与失败原因。\n- **知识持续进化**：定时扫描历史对话，补充实体关系、修复错误引用并整理知识结构。\n- **适合自托管**：支持多租户、RBAC、PostgreSQL RLS、本地或 OSS 存储和 OpenAI-compatible 模型网关。\n\n## 功能概览\n\n| 模块 | 能力 |\n| --- | --- |\n| 知识问答 | 多 Workspace 检索、流式回答、引用、分支对话、联网与图片检索开关 |\n| 知识中心 | 文档\u002F图片资产、异步解析、Markdown、分类与商品目录、回收站、知识图谱 |\n| 笔记 | Workspace 笔记、富文本编辑、来源回链、问答内容沉淀 |\n| RAG 评测 | 召回率、答案准确率、引用正确性、查询明细、失败诊断 |\n| 夜间巩固 | 定时任务、知识库范围、实体关系补全、引用修复、运行结果与日志 |\n| 平台治理 | 成员与权限、模型配置、Trace、审计、健康检查、微信个人通道 |\n\n## 快速开始\n\n### 1. 环境要求\n\n- Node.js 22+\n- npm 10+\n- Bun 1.3.10+\n- Docker Desktop（推荐，用于 PostgreSQL + pgvector 和 Redis）\n\n### 2. 启动基础设施\n\n```bash\ngit clone \u003Cyour-repository-url>\ncd mem-kb\nnpm run infra:up\n```\n\n### 3. 配置并安装依赖\n\n```bash\ncp backend\u002Fapp\u002Fconfig\u002F.env.example backend\u002Fapp\u002Fconfig\u002F.env.local\ncp frontend\u002F.env.example frontend\u002F.env.local\nnpm run install:all\n```\n\n至少配置一个 OpenAI-compatible 模型。默认示例读取 `OPENAI_API_KEY`；使用其他网关时，同时修改 `MODEL_BASE_URL` 和 `MODEL_API_KEY_ENV`。\n\n```dotenv\nMODEL_BASE_URL=https:\u002F\u002Fapi.openai.com\u002Fv1\nMODEL_API_KEY_ENV=OPENAI_API_KEY\nOPENAI_API_KEY=your-api-key\n```\n\n### 4. 初始化并运行\n\n```bash\nnpm run db:setup\nnpm run dev\n```\n\n访问 [http:\u002F\u002F127.0.0.1:5178](http:\u002F\u002F127.0.0.1:5178)，开发环境初始账号：\n\n```text\n账号：admin 或 admin@mem-kb.local\n密码：admin123456\n```\n\n> 初始账号只用于本地开发。对外部署前请创建新管理员并更换 `AUTH_SECRET`、数据库密码和全部模型密钥。\n\n核心 API 与 Web 可独立运行；未配置 GBrain 时，长期知识引擎相关能力会降级，但基础知识库与问答界面仍可启动。\n\n## 系统架构\n\n```mermaid\nflowchart LR\n  UI[\"React Web\"] --> API[\"Fastify API \u002F BFF\"]\n  API --> PG[\"PostgreSQL + pgvector\"]\n  API --> REDIS[\"Redis \u002F BullMQ\"]\n  API --> STORAGE[\"Local storage \u002F OSS\"]\n  API --> MODELS[\"OpenAI-compatible models\"]\n  API --> GB[\"GBrain knowledge engine\"]\n  WORKER[\"Async worker\"] --> REDIS\n  WORKER --> PG\n  WORKER --> STORAGE\n  WORKER --> GB\n```\n\n## 项目结构\n\n```text\nmem-kb\u002F\n├── frontend\u002F                 # React 19 + Vite 前端\n│   ├── e2e\u002F                  # Playwright 端到端测试\n│   └── src\u002F\n├── backend\u002F\n│   ├── app\u002F                  # Fastify API、Worker、迁移与单元测试\n│   ├── gbrain\u002F               # 长期知识、关系与混合检索引擎\n│   └── storage\u002F              # 本地运行数据，不进入 Git\n├── deploy\u002Fpostgres\u002F          # PostgreSQL 初始化与生产部署资源\n├── docs\u002F                     # 产品、架构、接口与运维文档\n├── scripts\u002F                  # 本地开发与服务编排脚本\n├── compose.dev.yml           # 本地 PostgreSQL + Redis\n├── docker-compose.yml        # 生产容器编排示例\n└── .github\u002F                  # CI、Issue 与 PR 模板\n```\n\n## 常用命令\n\n| 命令 | 说明 |\n| --- | --- |\n| `npm run dev` | 同时启动 Web、API、Worker 和可选 GBrain |\n| `npm run dev:web` | 仅启动前端 |\n| `npm run dev:api` | 仅启动 API |\n| `npm run db:setup` | 创建数据库、执行迁移并写入开发数据 |\n| `npm run check` | 类型检查、单元测试和生产构建 |\n| `npm run test:e2e` | 运行 Playwright 布局与交互测试 |\n| `npm run audit` | 检查高危 npm 依赖漏洞 |\n| `npm run infra:down` | 停止本地 PostgreSQL 与 Redis |\n\n## 配置\n\n完整示例见 [`backend\u002Fapp\u002Fconfig\u002F.env.example`](backend\u002Fapp\u002Fconfig\u002F.env.example) 和 [`.env.production.example`](.env.production.example)。常用配置：\n\n| 变量 | 用途 |\n| --- | --- |\n| `AUTH_SECRET` | 会话签名密钥，生产环境至少 32 位 |\n| `MODEL_SECRET` | 租户模型密钥的服务端加密主密钥，生产环境至少 32 位 |\n| `CHANNEL_SECRET` | 微信上下文凭证的服务端加密主密钥，生产环境至少 32 位 |\n| `DATABASE_URL` | PostgreSQL 连接串；也可分别配置 host\u002Fuser\u002Fpassword |\n| `REDIS_HOST` \u002F `REDIS_PORT` | 队列与任务调度 |\n| `MODEL_BASE_URL` | OpenAI-compatible 模型网关 |\n| `MODEL_API_KEY_ENV` | 模型密钥所在的环境变量名 |\n| `GBRAIN_BASE_URL` \u002F `GBRAIN_TOKEN` | GBrain 服务地址与访问令牌 |\n| `STORAGE_DRIVER` | `local` 或 `oss` |\n\n生产部署、反向代理、备份与回滚流程见 [`docs\u002F10-deployment-and-operations.md`](docs\u002F10-deployment-and-operations.md)。\n\n## 文档\n\n- [产品范围](docs\u002F01-product-scope.md)\n- [页面与交互](docs\u002F02-page-design.md)\n- [技术架构](docs\u002F03-architecture.md)\n- [API 与数据契约](docs\u002F04-api-and-data-contract.md)\n- [混合召回与向量迁移](docs\u002F07-hybrid-retrieval-delivery.md)\n- [完整文档索引](docs\u002FREADME.md)\n\n## 安全\n\n请勿在 Issue 中提交漏洞、令牌或用户数据。报告安全问题前请阅读 [`SECURITY.md`](SECURITY.md)。`.env.local`、本地存储、运行令牌、日志和测试报告已默认排除在 Git 之外。\n\n## 参与贡献\n\n欢迎提交 Issue、设计建议和 Pull Request。开始前请阅读 [`CONTRIBUTING.md`](CONTRIBUTING.md) 与 [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md)。\n\n## Roadmap\n\n- 可导入的 RAG 基准数据集与评测对比\n- 夜间巩固策略插件与人工审核队列\n- 更多模型、对象存储和消息通道适配器\n- 面向大规模知识库的检索可观测性与成本分析\n\n## License\n\n本项目基于 [MIT License](LICENSE) 开源。\n","MEM-KB 是一个自托管的企业级知识工作台，支持基于来源的 RAG 问答、多模态知识管理（文档\u002F图片\u002F笔记\u002F图谱）、RAG 效果量化评测及夜间自动化知识巩固。其核心采用混合检索+重排+可追溯引用链路，结合 PostgreSQL（pgvector）向量存储、RBAC 权限控制与 OpenAI 兼容模型网关，实现知识的可验证、可演进与可持续治理。适用于中大型企业私有知识库建设、合规敏感场景下的智能问答系统搭建，以及需要长期迭代优化 RAG 质量的研发与运营团队。",2,"2026-08-10 02:30:09","CREATED_QUERY"]