夜雨聆风学习资料网

ARTICLE · 1053165

WeKnora 源码包到手,怎样做出第一条带出处的知识库回答

WeKnora 源码包到手,怎样做出第一条带出处的知识库回答

大家好,我是志在必得。

解压交付包、双击启动,浏览器里出现 WeKnora 登录页。到这里,很容易觉得“知识库已经装好了”。包内的实测截图却还有一条橙色提示:部分知识库尚未初始化,需要先配置模型信息才能添加文档。网页能打开,只说明服务入口通了;要让一份资料真的回答问题,还得走完模型配置、文档解析、索引和引用核对。

这篇就拿交付包里的《虚构企业报销制度》走一遍。你不需要先导入自己的合同或公司资料。跟着做完,至少能分清:电脑是否把服务跑起来了,模型是否接通了,资料是否可检索,以及回答的依据是否真的来自文件。

先认识 WeKnora:资料怎样变成可追问的知识

WeKnora(维娜拉)是腾讯开源的知识库系统。你可以把公司的制度、产品手册、项目文档等放进去,之后像聊天一样提问,并查看回答引用了资料的哪一段。它适合“答案散落在一堆文件里,还得反复翻找”的场景,例如新人查询报销规则、客服核对产品说明、团队检索项目资料。它不是自带你公司知识的通用聊天机器人:资料要自己导入,模型也要自己接入。

它的核心方法叫 RAG,中文是“检索增强生成”。可以把过程想成一次有依据的开卷答题:系统先把文件解析成文字和可检索的片段,建立索引;提问时先找相关片段,再交给大模型组织答案,最后把引用标出来。对读者最有用的不是记住缩写,而是知道出错该查哪里:文件没解析好,先看原文与分块;检索没找到,先看索引和所选知识库;答案说错了,除了模型,还得核对它引用的片段是否对题。

WeKnora 不只做一种“上传文件后聊天”。这份 0.8.0 源码还包含三条主要路线:日常查资料用 RAG 快速问答;需要分步检索和调用工具时,可配置 Agent 智能推理;希望把原始资料整理成相互链接的知识页面时,可以探索 Wiki 模式。它也支持多种文件格式、不同模型服务商和工作空间权限管理。比如有些团队会接远程模型,有些团队会用本机 Ollama;模型怎么选,会直接影响成本、速度和数据处理方式。

但“源码里有”不等于“这个交付包一启动就全部可用”。这套买家部署默认只拉起网页前端、应用后端、文档解析、PostgreSQL 和 Redis 五个核心服务;OCR、图谱、外部数据源、Agent 沙箱等进阶能力,可能需要额外模型、服务或配置。本篇先走最容易验收的路线:一份虚构文件进入普通文档知识库,最终得到一条能点回原文的回答。把这条链路跑通,再按自己的用途扩展,会更容易知道每一步究竟哪里出了问题。

第一关:先看清包里三样东西

这份交付包叫 091902_WeKnora源码客户交付包_v1.0,里面的 source 是 WeKnora 0.8.0 的固定源码快照;根目录编号文件是为 Windows 准备的部署入口;教程 和 示例资料 则负责说明与验收。源码提交固定为 1edcd54b43606d9079bb36650efe3f68707a79ea。买家拿到的是源码和一套部署工具,不是已经配置好账号、资料和模型的电脑。

还有一个容易弄混的地方:日常启动用的是交付配置锁定的官方 Docker 镜像,首次运行要联网下载。source 供阅读和二次开发,并非这次部署时临时在你电脑上编译出来的镜像。包里也没有大模型权重、API Key 或免费调用额度。网页启动后,问答仍需你自己配置对话模型与 Embedding 模型。

把 ZIP 完整解压到短路径,例如 H:\WeKnoraCustomer。不要在压缩软件预览窗口直接双击,也不要覆盖电脑上已有的 WeKnora。默认项目名是 weknora-customer,入口只监听本机 18088 端口,方便与另一套实例分开。目录放在 H 盘,不代表数据库一定也在 H 盘:Docker 命名卷可能仍占用 Docker 自己的磁盘映像空间,正式导入大量资料前要先确认数据盘位置。

第二关:让五个核心服务真正起来

先准备能运行 Linux 容器的 Docker。Windows 上已有 Docker Desktop,就打开并等它就绪;没有的话,按 Docker 官方 Windows 安装说明安装。包也支持已经配好 Docker Engine 与 Compose 插件的 WSL Ubuntu,但“有 WSL”不等于“有 Docker”。首次拉镜像可能需要数 GB 网络流量和磁盘空间;包内建议以 8 GB 可用内存、30 GB 磁盘作为小规模试用的起步规划,并非固定最低配置。

根目录的编号文件按下面顺序用,双击即可,不用自己拼一长串 Docker 命令:

先后
打开哪个文件
看到什么才算这一关通过
看说明
00_打开详细教程.cmd
浏览器打开包内详细教程;先核对环境和数据盘
核文件
09_校验交付文件.cmd
显示 PASS;不通过先重新解压,不要继续安装
建独立配置
01_初始化独立配置.cmddeployment
 中出现 .env;它保存本机随机密钥,不能发给别人
查运行环境
02_检查环境.cmd
Docker、Compose 和配置检查通过;失败先处理引擎
下载镜像
03_下载官方镜像.cmd
所需镜像拉取完成;断网失败可重试
启动服务
04_启动知识库.cmd
前端、后端、文档解析、PostgreSQL、Redis 五个服务就绪
打开页面
08_打开知识库.cmd
浏览器打开 http://localhost:18088 登录页

我在本机只读校验了这份交付目录,09 对应的校验工具返回 PASS: 3378 files verified。这证明交付文件与清单匹配,不证明你的 Docker、模型或问答已经通过。包内原有的验收记录则显示五个核心服务曾启动、注册登录和建空库成功,也验证过停止再启动后账号与空库仍在;记录的模型调用次数是 0。所以下一关不能省。

如果 04 超时,不要先删数据:点 05_查看状态.cmd 看哪个服务没起来,再点 07_查看日志.cmd 找报错。默认入口改过端口后,08 仍会打开旧的 18088;这时应手动访问你在 deployment/.env 中设置的新端口。电脑同时装了 Docker Desktop 和 WSL Docker 时,脚本自动模式会优先找到 Windows 的 docker 命令;两套引擎不要来回切,否则很像“资料突然没了”。包内详细教程提供了显式指定引擎的命令。

第三关:给它两种不同的模型

进入登录页后,先用自己的邮箱注册。这个包没有通用管理员密码。普通工作空间的 Owner 可以管理自己的空间,但不自动等于整个平台的系统管理员;需要平台管理员引导时,包内教程第 5 章有单独步骤,第一次试用不必先处理它。

然后进入“设置 → 模型”。至少准备两种能力:对话模型负责根据检索到的内容组织回答;Embedding 模型负责把资料片段和问题变成可匹配的向量。只填一个聊天模型,通常无法完成文档索引。反过来,Embedding 能连通,也不代表最终回答的对话模型已经可用。

用远程服务时,按你自己的服务商填写真实可用的模型名、API Key 和接口地址,分别测试两类模型再保存。不要把网页地址当 API 地址,也不要手工乱补 /chat/completions;优先用界面中的对应服务商预设。测试调用、文档向量化以及后续问答都可能产生服务商费用,交付包不包含这些额度。

想走本地 Ollama,也要先在自己的电脑安装并启动 Ollama,分别下载对话模型与 Embedding 模型。WeKnora 跑在容器里时,连接宿主机通常要用 http://host.docker.internal:11434,不能把容器里的 localhost 当成 Windows 主机。若连不上,查 Ollama 是否在监听、防火墙和容器到宿主机的连通性。这里的“本地模型”只说明你选用的模型运行位置;资料解析或其他已启用服务是否联网,仍要逐项看配置。

建库时选定的 Embedding 模型和维度关系到已存索引。以后要更换,先建测试库并重建索引,不要直接换个模型名就以为旧资料仍可正常检索。第一次只做文字问答,不必同时开启 OCR、Wiki、图谱、自动摘要等增强项,减少费用与故障变量。

第四关:拿一份假资料,检验它是否真会引用

在“知识库”里新建普通文档库,名字可以叫“客户验收测试库”。初始化时选择刚才测试通过的对话模型和 Embedding 模型,分块设置先用界面默认值。然后上传包内的 示例资料/虚构企业报销制度.md。这是虚构演示文件,不含客户私有数据,适合用来第一次试错。

上传进度到 100% 只表示文件传上去了。还要在文档列表里等处理状态变成“完成”,点进去看解析文字和分块,确认“30 个自然日”“500 元”“400 元”等关键数字没有丢。只有这一步过了,才开始问答;否则改提示词也修不好缺失的索引。

新建对话时,明确选中这份测试库。先问:“报销最迟应在多少天内提交?请引用资料。”正确方向是“费用发生后 30 个自然日内”,还要能点开引用,定位到原文那一句。接着用包内的 示例资料/验收问题与答案.txt 逐项对照:

你问什么
文件里给出的依据
单笔 600 元由谁审批?
超过 500 元,部门负责人和财务共同审批
住宿标准是多少?
每人每晚不超过 400 元
餐饮补贴多少?
文件没有规定,不能编造金额
审批完成后多久付款?
5 个工作日内

别只看答案“像不像”。这次验收至少要同时看三件事:是否选中了正确的知识库、答案是否符合原文、引用是否能点回对应片段。尤其是餐补那道题,资料没有写,模型如果自作主张报出一个数字,就不能算过关。包内现有实测截图只证明登录与空库可用,并没有一张“模型已回答正确”的截图;真实问答结果应由你的模型在自己的电脑上产生。

等这份小文件通过,再考虑导入自己的制度、产品手册或项目文件。先测少量不同格式,抽检扫描 PDF、复杂表格与版本日期。用于规范或政策问答时,还要登记发布机构、实施日期、现行或废止状态;“有引用”仍不等于引用的是现行有效版本。

第五关:把数据留住,源码另行开发

以后使用时,先启动 Docker,再点 04_启动知识库.cmd 和 08_打开知识库.cmd;暂时不用就点 06_停止知识库.cmd06 是停止服务,保留数据卷。不要把 docker compose down -v 当普通停止命令,那个 -v 会删卷。停启后再登录看测试库和文档是否仍在,能顺手发现引擎或项目名切换造成的“空库错觉”。

备份也不能只复制 source。账号、索引、文档文件、队列和模型配置分布在数据卷里,deployment/.env 还保存解密相关密钥。包内有 工具/backup.sh 的停机冷备份方案;先停服务、确认没有任务,再在 Docker 所在的 Linux/WSL 环境按教程第 10 章操作。交付包记录验证了备份归档可读,尚未验证一次完整恢复演练,所以有正式业务资料时,恢复测试要另做,不能只看备份文件存在。

如果你买这包是为了改界面或扩展功能,路径会从这里分叉:普通使用继续用固定镜像;开发者在独立副本里读 source 和官方文档,再按包内第 11 章构建自己的镜像、做测试。不要在正在承载客户资料的目录里边改边试,也不要把“交付了完整源码”理解成“已经替你把所有源码编译和高级组件验收完毕”。

做到这里,第一份知识库才算从“页面能打开”走到了“资料可查、答案可追溯”。交易验收时可以把使用的引擎、端口、项目名、模型类型、示例问答和数据备份位置写进包里的 客户验收单.txt,但别写完整 API Key 或把 .env 再发给别人。真正值得留下的,不是登录页截图,而是那道能点回原文、并且不编造餐补金额的回答。

相关学习资料