WeKnora内网部署指南:文档知识检索与协作的30分钟落地方案
2026/9/6 15:08:11 网站建设 项目流程

WeKnora内网部署指南:文档知识检索与协作的30分钟落地方案

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

周五下午5点,教研处要把一批课件共享给整个学院:最新版《高等数学教案》躺在某位老师的个人网盘里,学生问一句拉格朗日中值定理,翻出原文要15分钟。WeKnora是一个开源的LLM知识平台,把原始文档变成可检索的RAG知识库(RAG可以理解为"先翻书再回答"),并支持多用户权限隔离和带引用的智能问答。把它部署在校园内网上,不碰外网,数据全部留在自己的服务器。

部署前自查:15分钟确认服务器达标

按下面的顺序过一遍,每一项都满足即可直接开始:

  • 如果你的服务器是4核CPU/8GB内存起步,标准Docker部署就够用。文档解析组件docreader内置LibreOffice和无头浏览器,比较吃内存;若还要启用Milvus、Langfuse等可选组件,再相应加内存。
  • 如果只有一两个人使用,可以改用Lite单进程模式(SQLite + 内存队列,不需要Redis),适合离线与低资源环境。
  • 如果校园网有防火墙,找网络管理员为服务器开放两个入站端口:80(前端Web)和8080(后端API)。
  • 如果磁盘紧张,预留两个数据卷:Postgres数据卷和文档文件卷,容量按知识库规模估算。
docker --version && docker compose version git --version

两条命令都能输出版本号,环境检查就算通过。

核心搭建流程:三步把服务跑起来

获取代码(约1分钟)

仓库里的compose文件定义了完整的服务拓扑,不用自己写Dockerfile。

git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora

预期结果:目录下能看到docker-compose.yml.env.exampleconfig/等文件,即克隆成功。

适配配置(约10分钟)

先复制环境模板,.env.example 内每个变量都有注释,内网场景只需改几处:

cp .env.example .env
# .env FRONTEND_PORT=80 # 前端Web端口 APP_PORT=8080 # 后端API端口 STORAGE_TYPE=local # 文档存本地磁盘,不依赖云存储 MAX_FILE_SIZE_MB=50 # 单文件上传上限(MB),大课件建议调大

解析与检索行为由 config/config.yaml 控制,教学资料场景重点关注这两个字段:

knowledge_base: chunk_size: 512 # 分块字符数,越小检索粒度越细 image_processing: enable_multimodal: true # 用多模态模型解析文档内图片/公式

启动服务(10~20分钟,视镜像拉取速度)

compose 会按依赖顺序拉起 frontend、app、Postgres(含向量扩展)、Redis、docreader,首次启动自动执行数据库迁移,无需手动建表。

docker compose pull docker compose up -d docker compose ps

预期结果:5个核心服务均处于 running 状态;app 带健康检查,刚启动可能短暂显示 unhealthy,约60秒后复查。浏览器打开http://服务器IP进入初始化页,注册管理员账号并配置大模型(API 或本地 Ollama),这是部署后唯一必须人工完成的步骤。

跑通与验证:用3个动作确认它真的能干活

服务起来后,建议按下面3个动作验收,全部通过就可以交给使用者:

角色动作预期结果
授课教师新建"教学资料"知识库,上传《高等数学教案.pdf》文档列表可见解析进度,完成后状态变为可用
学生在聊天框提问"如何理解拉格朗日中值定理?"答案流式返回,引用标注内容出自哪份文档的哪个片段
管理员在空间成员管理里邀请同事,设为 Contributor 角色对方登录后只能看到本空间资源,四级角色矩阵为 Owner / Admin / Contributor / Viewer

文档列表页能看到每份文档的解析进度与状态,卡在处理中的文件可在这里排查重试。

性能上只需要盯两个数字:文档解析时长(知识库页面有逐阶段进度,大文件解析慢属正常)和检索响应时间(模型应答后通常数秒内返回,取决于你配置的模型服务)。

踩坑与进阶

上线初期最常遇到的是这三个问题,每个5分钟内能定位:

  • 大文件上传失败:上传有两道闸门——.env的上传上限(默认50MB)与 Nginx 限制。调大MAX_FILE_SIZE_MB,并把 frontend/nginx.conf 中client_max_body_size调得更大,再重启前端容器。
  • 检索结果为空:十有八九是文档还没解析完,或初始化后未配置模型。先看知识库页的文档状态,再看模型配置是否完整。
  • 服务起不来/页面502:执行docker compose logs app看日志尾部,最常见原因是.env里数据库凭证与 Postgres 容器不匹配。

后续值得开的两个方向:

  • 知识图谱:用--profile neo4j启动,从文档中抽取语义关系,跨文档检索会更准。
  • API 对接:签发权限范围的 API Key,把知识检索接进校园考试系统或 OA,权限模型详见 docs/RBAC说明.md。

WeKnora 采用 MIT 协议,模型厂商、向量库、对象存储等组件均可替换,内网部署不绑定任何特定云服务。更多参数说明以仓库内的官方文档站(website-docs 目录)为准,部署中遇到的具体问题可以直接到社区提 Issue 跟进。

【免费下载链接】WeKnoraOpen-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki.项目地址: https://gitcode.com/GitHub_Trending/we/WeKnora

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询