WeKnora 断网部署:内网机器跑通本地文档问答
【免费下载链接】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
内网服务器断网时
内网那台服务器连不了外网,但周五前必须把合同库跑起来,文档解析和问答都得在机器上完成。WeKnora 是个开源 LLM 知识平台:把原始文档变成可查询的 RAG、一个会推理的 agent 和自维护的 wiki。这篇带你把它在一台断网机器上完整跑起来。
它到底干什么
一套系统,从原始文档到问答答案:
- 解析 PDF、Word、Excel、网页等格式,切成可检索的 chunk
- 用本地模型做向量化,写入 Postgres(ParadeDB)混合检索
- 本地跑 LLM 推理,回答带来源 chunk 引用
- agent 模式调工具、执行技能,还能自己写 wiki 页面
- 通过 Web 界面、IM 渠道、MCP、CLI 暴露问答接口
跑起来之前:先备齐这些
硬件底线
| 配置 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| 最低配置 | 8 核 | 32 GB | 200 GB(SSD) |
| 推荐配置 | 16 核 | 64 GB | 500 GB(SSD) |
软件依赖
- Docker Engine 20.10+
- Docker Compose v2+
- Ollama(跑在宿主机)
从零到跑通
前提:镜像包和模型文件已提前备进内网(在有网机器docker save导出,拷过去docker load);能通内网源的话这步可以省。
1. 拉代码
把代码拷进服务器,进到项目根目录。
git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnorals能看到docker-compose.yml和.env.example就对了。
2. 改几行配置
配置模板的默认值基本就是为离线准备的,确认三行关键项即可。
cp .env.example .env # .env 里确认这三行(默认已是该值,被改过就改回来) # STORAGE_TYPE=local # OLLAMA_OPTIONAL=true # OLLAMA_BASE_URL=http://host.docker.internal:11434grep -E "STORAGE_TYPE|OLLAMA" .env查到的值是 local、true、host.docker.internal:11434 就对了。
3. 备好模型
在宿主机上把两个模型加载进 Ollama(模型文件提前拷入的话,解压到模型目录即可,跳过 pull)。
ollama pull bge-m3 # 嵌入模型 ollama pull qwen2.5:7b # 对话模型ollama list里两个模型名都出现,就对了。
4. 点火
用仓库自带的启动脚本拉起全部容器,--no-pull让它用本地镜像、不往网上拉。
./scripts/start_all.sh --no-pull脚本先尝试启动 Ollama(已有服务就复用),再经 compose 起 frontend、app、docreader、postgres、redis 等容器,首次要等迁移跑完,几分钟属正常。
5. 确认全绿
两条命令,一个看容器,一个探后端。
docker compose ps curl -sf http://localhost:8080/health容器全 Up(healthy),curl无报错,浏览器开 http://localhost 能看到登录页,就对了。
第一次用起来
部署通过后,按最短路径把它用起来:
- 打开 http://localhost,注册账号,初始化向导里选 Ollama 当模型服务,填前面拉的两个模型
- 新建知识库,拖入第一个文档
- 等解析完成,文档列表里能看到 chunk 数和状态
- 在问答框问"这份合同的关键点是什么",核对回答是否引用了来源 chunk
卡住了 / 想更快
卡住了
| 现象 | 一条命令或一个动作 |
|---|---|
| 起不来、报不清 | ./scripts/start_all.sh -c跑一遍环境诊断 |
| app 容器反复重启 | docker compose logs app看最后一条报错 |
| 找不到模型 / 回答乱 | ollama list核对模型名与配置一致 |
| 文档卡在解析中 | docker compose logs docreader |
想更快
- 换 4-bit 量化模型,内存占用省一大截
- 给机器挂 GPU,推理走 CUDA
- 调小 chunk 数,向量化完成得更快
- 改
.env里的CONCURRENCY_POOL_SIZE控制解析并发
下一步
- 可以接上企业微信、飞书等 IM 渠道,直接在群里提问
- 可以开启 Langfuse,看每次问答的 token 消耗
- 可以用仓库里的 mcp-server 把问答能力暴露给别的工具
- 可以定期备份 contenteditable="false">【免费下载链接】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),仅供参考