PandaWiki 本地 AI 知识库实战:文档导入、智能问答与远程访问

PandaWiki 本地 AI 知识库实战:文档导入、智能问答与远程访问 PandaWiki 本地 AI 知识库实战文档导入、智能问答与远程访问前言如果资料只是“存起来”其实网盘、文件夹、笔记软件都能完成真正开始麻烦往往是在资料越来越多以后你记得某个问题以前写过却想不起在哪个 Markdown 里文档明明都在 NAS 上但每次查一个细节还是要逐个打开搜索团队里已经积累了不少说明文档却很难直接把这些内容变成一个可以检索、可以提问的知识入口。PandaWiki 的价值就在这里。它不是单纯把文档集中到一个页面而是让已经存在的资料继续参与 AI 搜索和问答。本文后面会直接用当前教程的 Markdown 文件做一次真实测试导入、发布之后询问“如何安装 PandaWiki”再看模型能不能从这篇文档中找到步骤、展示图片并给出引用来源。因此这篇文章的重点不只是“把 PandaWiki 装起来”。前半部分会在飞牛NAS上完成安装、模型接入、文档导入与发布确认本地知识库能够正常检索问答后再处理第二个需求——如果人在公司、外地或其他网络怎么继续访问这套本地知识库。这里使用 cpolar 补充公网访问但后文会区分两个入口PandaWiki 管理后台负责维护知识库WIKI 首页负责搜索和问答。两个页面用途不同远程访问时也需要分别处理。1 PandaWiki把“文档存储”继续变成“可检索、可问答”PandaWiki 是一款 AI 大模型驱动的开源知识库搭建系统可以用来构建产品文档、技术文档、FAQ、博客系统并在已有内容之上增加AI 创作、AI 问答、AI 搜索等能力。如果把这些功能放到实际使用里可以分成四件事内容进入知识库支持网页 URL、网站 Sitemap、RSS、离线文件等来源导入。内容继续维护提供富文本编辑能力兼容 Markdown 和 HTML并支持导出为 word、pdf、markdown 等格式。内容可以被 AI 使用模型能够围绕知识库内容进行搜索、问答和辅助创作。内容可以继续对外提供服务支持网页挂件也可以与钉钉、飞书、企业微信等应用进行集成。所以 PandaWiki 更像是在“文档管理”上再加一层检索和问答能力。后面的实测也会围绕这一点展开而不是只验证页面是否能打开。2 在飞牛NAS 上部署 PandaWiki先把运行环境搭好再谈 AI 问答。这里的顺序很重要如果 PandaWiki 本身没有稳定运行后面无论是模型接入、文档导入还是公网访问都没有意义。2.1 安装PandaWiki首先登录到飞牛NAS,然后打开设置将ssh这一栏的选项打开ssh功能打开后使用shell工具进行远程登录连接这里以finalshell为例填写飞牛的相关ssh信息连接上ssh,然后切换至root用户如果已经是用的root用户连接则无需切换,输入如下命令会提示输入密码输入不会提示sudo-i然后执行如下命令进入pandawiki的交互式菜单页面bash-c$(curl-fsSLkhttps://release.baizhi.cloud/panda-wiki/manager.sh)选择安装默认在安装选项然后回车选择安装的目录不修改的话默认直接回车即可等待拉取镜像安装完成会有如下提示记住其中的内网访问地址以及用户名和密码信息访问给的内网访问地址如果出现如下不安全提示点击高级然后点击继续前往即可继续访问后即可进入登录页面输入控制台中的用户名和密码信息进行登录:登录成功后即可进入 PandaWiki 首页说明管理后台已经能够正常访问。2.2 修改管理员密码管理后台已经能登录下一步先把管理员密码调整为后续长期使用的密码。这样后面继续配置模型、文档和公网入口时不必一直依赖安装阶段生成的初始密码。鼠标上移到修改密码栏目可以看到如下提示前面我们设置的安装位置是/data/pandawiki/,所以我们可以用命令直接修改该目录下的.env文件vim/data/pandawiki/.env进入文件后键盘按I进入编辑模式然后修改管理后台登录密码栏的密码修改完成后按Esc输入英文的:wq回车即可保存退出然后执行如下命令进行刷新(/data/pandawiki为安装目录,安装位置不同则需要替换该部分):dockercompose-f/data/pandawiki/docker-compose.yml up-d2.3 配置智能对话模型PandaWiki 到这里还只是一个知识库后台真正让文档具备 AI 问答能力还需要接入模型。本文继续使用原文中的DeepSeek作为示例。在首页点击去添加按钮然后在左侧选择您要添加的对话模型的供应商这里以DeepSeek为例如果您本地有部署AI也可以使用Ollama本地模型官网推荐使用DeepSeek模型提示需要API Key,我们来到DeepSeek的官网创建一个API Keyhttps://platform.deepseek.com/api_keys创建好后点击复制粘贴到PandaWiki的DeepSeekAPI Key栏目中然后点击获取模型列表获取到后选择一个模型这里选择Reasoner模型保存后系统会继续要求创建一个Wiki站。这里实际上是在创建后面给使用者查看、搜索和提问的知识库页面因此它和管理后台不是同一个入口。需要填写知识库名称这里以测试为例然后直接点击保存如果提示端口可能已被其他程序占用将80端口换一个即可配置完成后点击右上角的访问WIKI网站进行测试测试wiki页面:能够进入知识库页面说明 PandaWiki 本体、模型配置和 WIKI 站点已经连通。接下来不急着处理公网访问先用一篇真实文档验证它到底能不能完成“导入以后直接问”的核心功能。3 使用PandaWiki拿一篇真实 Markdown 验证问答效果这一部分不再只看功能菜单而是直接用当前文章做测试。目标很简单把这篇 Markdown 导入 PandaWiki发布以后提出一个文档中明确存在的问题再看模型能否从知识库里找到答案。首先点击右上角的创建文档参考如下图这里先创建一个Markdown文件夹然后导入一个 markdown 文件。为了让验证结果更直接原文就使用当前这篇文章作为测试资料。点击通过离线导入,拖拽或点击选择文件进来即可点击拉取数据后等待一会然后选择该文件点击导入数据即可导入完成提示导入完成还不等于 WIKI 页面已经可以使用这份内容因此下一步需要发布新版本。点击完成接着点击去发布按钮发布新版本输入版本号和版本描述也可以使用默认生成的版本信息点击确认发布成功后再进入访问WIKI网站这时左侧目录已经能看到创建的Markdown文件目录和刚才导入的Markdown文件点击文件也可以直接查看 markdown 内容。到这里可以确认“文档导入 → 发布 → WIKI 展示”这一段已经正常下一步才是 AI 问答验证我们可以点击右上角的搜索输入框进行提问或者点击左上角的logo图标回到首页,进行提问这里以如下问题进行提问如何安装PandaWiki从页面结果可以看到DeepSeek已经检索到刚才导入的文档并基于这份内容进行分析。原文这里使用的是Reasoner官方推荐使用的是Chat模型选择 Reasoner 后输出会带思考过程因此更容易观察这次检索是否真正命中了知识库内容这次测试最有价值的并不是“模型回答出来了”这一句话而是返回内容能够继续展示文章中的图片并在结尾给出引用列表引用当前导入的这篇文章。也就是说前面搭建知识库的意义在这里真正体现出来资料不只是被存进系统而是可以继续作为回答依据参与检索。至此PandaWiki 在局域网内的核心链路已经验证完成安装、初始配置、模型接入、文档导入与发布都能正常工作AI 检索问答也已经通过实际文档测试。如果这套知识库只在家里或办公室内网使用到这里其实已经够了。下面继续是因为另一个需求出现了人在外面时管理后台和 WIKI 问答页面怎么访问。4 使用cpolar穿透PandaWiki以支持公网访问本地验证完成以后远程访问的问题才值得处理。这里有一个容易忽略的细节PandaWiki 实际上存在两个不同用途的页面。一个是管理后台用于登录、维护文档和修改配置另一个是WIKI 首页用于浏览知识库、搜索和提问。如果只是把其中一个端口映射出去就只能解决一半问题。比如管理后台可以远程打开但分享给其他人使用的 WIKI 页面仍然只能在局域网里访问。因此这一章会分别处理两个入口而不是简单地“给 PandaWiki 建一条隧道”。下面使用 cpolar 增加公网访问路径PandaWiki 本身的文档、模型和发布逻辑保持不变。4.1 什么是cpolar?在本文里cpolar 只负责把已经正常运行的本地 Web 服务映射到公网。它并不参与 PandaWiki 的 AI 检索、文档管理或模型调用因此后面如果远程页面打不开应把“PandaWiki 本身是否正常”和“公网隧道是否正常”分开排查。cpolar 是一款内网穿透工具可以将你在局域网内运行的服务如本地 Web 服务器、SSH、远程桌面等通过一条安全加密的中间隧道映射至公网让外部设备无需配置路由器即可访问。广泛支持 Windows、macOS、Linux、树莓派、群晖 NAS 等平台并提供一键安装脚本方便部署。4.2 安装cpolar首先在finalshell的命令窗口中执行如下命令(非root用户需要输入飞牛云nas的密码)sudocurlhttps://get.cpolar.sh|sh安装完成后执行下方命令查看cpolar服务状态sudosystemctl status cpolarcpolar安装和成功启动服务后在浏览器上输入飞牛云主机IP加9200端口访问Cpolar管理界面使用官网注册的账号登录,登录后即可看到配置界面,接下来在web界面配置即可4.3 穿透PandaWiki项目的WebUI界面4.3.1 随机域名方式(免费方案)这里先使用随机域名不是因为它适合长期使用而是它更适合做第一轮连通性验证先确认公网能不能访问再决定是否需要固定地址。使用此方式时系统会每隔24 小时左右自动更换一次域名地址。对于长期访问的不太友好但是该方案是免费的如果您有一定的预算可以查看大纲4.3.2的固定域名方式且访问更稳定。点击左侧菜单栏的隧道管理展开进入隧道列表页面页面下默认会有 2 个隧道ssh隧道指向22端口tcp协议website隧道指向8080端口http协议http协议默认会生成2个公网地址一个是http另一个https免去配置ssl证书的繁琐步骤点击编辑website的隧道修改成我们PandaWiki需要的信息接着来到在线隧道列表可以看到名称为PandaWiki-2443隧道的两条记录信息一条协议为http,另一条协议为https:以https为例访问测试公网地址能够打开登录界面后再使用前面修改过的密码登录。这个测试验证的是第一个入口——PandaWiki 管理后台登录后能够正常看到之前上传的Markdown文档说明管理后台已经可以通过公网访问。但这还没有完成全部远程访问因为真正给使用者搜索、提问的WIKI网站是另一个入口。接下来点击设置页面查看它使用的端口可以看到配置的端口为8088即前面手动配置的端口默认为80接下来回到cpolar后台点击创建隧道:创建成功后来到在线隧道列表里面可以看到名称为wiki-index-8088隧道的两条记录信息一条协议为http,另一条协议为https:以https为例访问测试一下第二个公网地址能够正常打开 WIKI 页面并且可以继续进行提问说明管理后台 WIKI 首页两个远程入口都已经跑通。此时随机域名已经完成它最重要的任务验证公网访问链路。需要注意的是免费方案每24小时左右会更新域名地址如果只是偶尔测试影响不大如果准备长期保存书签、分享给团队或固定使用下一步再配置二级子域名会更合适。4.3.2 固定域名方式升级任意套餐皆可前面已经证明两个页面都能从公网打开接下来处理的就不是“能不能访问”而是“地址是否适合长期保存”。由于管理后台和 WIKI 首页本来就是两个入口这里也分别保留两个二级子域名一个对应管理页面一个对应知识库首页。这样后续不管是自己维护还是把问答页面分享给其他人都不会混用同一个入口。接下来按原有步骤保留二级子域名首先进入官网的预留页面:https://dashboard.cpolar.com/reserved选择预留菜单即可看到保留二级子域名项填写其中的地区、名称、描述可不填项然后点击保留按钮操作步骤图如下列表中显示了两条已保留的二级子域名记录地区显示为China Top。二级域名显示为pandawiki用来设置知识库管理页面的。二级域名显示为indexwiki用来设置知识库首页提问页面。注二级域名是唯一的每个账号都不相同请以自己设置的二级域名保留的为主接着进入侧边菜单栏的隧道管理下的隧道列表可以看到名为PandaWiki-2443的隧道点击编辑按钮进入编辑页面来到状态菜单下的在线隧道列表可以看到隧道名称为PandaWiki-2443的公网地址已经变更为二级子域名固定域名主体及后缀的形式了这里以https协议做访问测试访问成功接着来配置知识库首页的固定子域名回到隧道列表编辑wiki-index-8088隧道填写好二级子域名相关的信息然后点击更新再次来到状态菜单下的在线隧道列表可以看到隧道名称为wiki-index-8088的公网地址已经变更为二级子域名固定域名主体及后缀的形式了以https协议进行访问测试(修改为deepseek-chat模型效果,不进入思考直接简洁回答)测试完成后两个固定二级子域名均已生效PandaWiki 管理后台与WIKI 首页分别拥有自己的 HTTPS 公网入口。这一步实际上把前面的结构固定了下来后台继续用于维护WIKI 首页继续用于阅读和提问两种用途不需要混在同一个地址里。5 给Wiki首页添加访问授权验证公网访问解决以后还有最后一个问题不能忽略WIKI 首页默认无需登录即可访问。如果这个页面只是自己临时测试影响不大但一旦地址长期固定或者知识库接入了需要计费的 AI API那么“别人拿到链接就能直接提问”就不再只是内容公开的问题还可能带来额外的调用消耗。因此这里继续给 WIKI 首页增加一层访问授权。管理后台本身已经有登录机制这一步重点保护的是前台问答入口。5.1 为什么需要访问授权对 WIKI 首页增加授权主要对应四类实际风险隐私保护避免未授权访问知识库内容资源安全减少 AI API 被无关用户持续调用的风险访问控制限制为团队成员或指定人员使用成本控制避免公开入口带来额外 API 调用量5.2 配置访问授权验证首先打开cpolar管理界面进入隧道管理→隧道列表找到wiki-index-8088隧道点击编辑按钮在编辑页面中点击高级按钮展开高级配置选项按照下图进行设置在HttpAuth这一栏输入admin:123456 其中【admin】为你想要设置的账号中间的冒号是英文的不是中文【123456】为想要给admin用户设置的密码5.3 验证授权效果重新访问你的公网地址会发现浏览器弹出登录验证框输入刚才设置的用户名和密码后即可继续访问。到这里WIKI 首页不再是“知道链接就能直接打开”的公开入口而是多了一层基础访问验证。这并没有改变 PandaWiki 自己的用户体系只是在公网入口前增加一道访问控制用来限制谁能进入前台知识库。总结这篇文章真正完成的不只是“在飞牛 NAS 上装了一个 PandaWiki”。最先解决的是资料如何进入一个统一知识库安装 PandaWiki、接入 DeepSeek、导入 Markdown、发布 WIKI 版本。随后又通过当前文章做了一次实际验证——提问“如何安装PandaWiki”模型能够检索到导入文档继续展示其中的图片并给出引用来源。到这一步PandaWiki 才从“文档页面”变成了真正可以围绕资料进行搜索和问答的知识库。第二部分解决的是知识库从哪里访问。本地使用时只需要飞牛 NAS 保持运行存在异地访问需求后再通过 cpolar 分别处理 PandaWiki 管理后台和 WIKI 首页。之所以要做两条入口是因为两者职责不同一个用于维护一个用于阅读、搜索和 AI 问答。固定二级子域名则进一步把这两个入口长期区分开来。最后给 WIKI 首页增加 HttpAuth并不是为了改变 PandaWiki 本身的登录逻辑而是因为前台默认可以直接访问当这个地址准备长期暴露到公网时多一层访问验证更符合实际使用需求。因此整套结构最终可以理解为PandaWiki 管理后台维护知识库、模型和文档WIKI 首页提供阅读、搜索和 AI 问答DeepSeek参与知识库检索与回答cpolar只处理两个本地 Web 入口的公网可达HttpAuth给公开的 WIKI 入口增加额外访问限制。如果只在局域网里使用公网部分完全可以不做如果只自己维护不准备把 WIKI 页面分享出去也可以根据实际需要决定是否增加额外授权。真正有价值的变化是原本散落在文件里的资料开始具备了新的使用方式不只是“我记得以前写过”而是可以直接向自己的文档提问并从答案继续回到原始内容。这才是这套本地 AI 知识库相较于普通文件整理更值得使用的地方。