news 2026/9/7 23:04:51

10分钟跑通WeKnora:从Docker部署到自建知识库问答的完整路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10分钟跑通WeKnora:从Docker部署到自建知识库问答的完整路径

10分钟跑通WeKnora:从Docker部署到自建知识库问答的完整路径

【免费下载链接】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(维娜拉)是一个开源的大模型知识平台:你把 PDF、Word、网页这类原始文档丢进去,它帮你做成可提问的 RAG 知识库、能自己调工具推理的 Agent,以及一套自动维护的 Wiki,MIT 协议,适合想在私有环境里搭文档问答系统的团队和个人。你需要的环境只有 Docker、Docker Compose 和 Git 三件套。

🚀 先跑起来:4条命令起服务

先克隆仓库,把环境变量模板复制成.env按需改,然后拉镜像、起容器:

git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora cp .env.example .env docker compose pull docker compose up -d

启动成功的验证信号有两个:浏览器访问http://localhost能看到 Web 界面;后端健康检查curl http://localhost:8080/health返回正常(健康检查端点在 internal/router/router.go 里注册)。docker-compose.yml里 frontend 映射 80 端口、app 映射 8080 端口,都是.env里可改的。

首次访问时如果还没配过模型,会先进入初始化配置页,把 LLM、Embedding、向量数据库这几项填完才能正常用:

核心配置分两处:运行行为看 config/config.yaml(分块默认chunk_size: 512chunk_overlap: 50,检索阈值vector_threshold: 0.2rerank_threshold: 0.3);模型地址和密钥在.env(变量注释非常详细,比如INIT_LLM_MODEL_NAMEINIT_EMBEDDING_MODEL_NAMEINIT_EMBEDDING_MODEL_DIMENSION)。

按需开启可选组件(compose profile,可叠加):

Profile组件启动方式
neo4j知识图谱docker compose --profile neo4j up -d
minio对象存储docker compose --profile minio up -d
langfuse链路追踪(http://localhost:3000docker compose --profile langfuse up -d
full以上全部docker compose --profile full up -d

停止服务用docker compose down;也提供了一键脚本./scripts/start_all.sh(支持--stop--check自检),见 scripts/start_all.sh。

想用本地 Ollama 的话,先ollama serve > /dev/null 2>&1 &,再把.env里的模型地址指过去。

三个核心功能走一遍

文档进去到回答出来的链路是:解析 → 切块向量化 → 混合检索(向量 + BM25 关键词)→ 大模型生成。

建知识库:上传文档到能回答

能干什么:创建知识库,上传文件(PDF / Word / Excel / 图片 / XMind 等十余种格式)、粘贴 URL、导入文件夹或 FAQ;解析完成后按你配置的参数切块并建索引。

怎么操作:Web UI 里新建知识库 → 上传文档 → 等解析任务跑完,文档列表里能看到分块;上传时的批次级process_config可以临时覆盖解析引擎、分块和多模态设置。

入口在哪:界面在 frontend/src/views/;接口文档在 docs/api/knowledge-base.md;API 认证统一用X-API-Key请求头(注册或建空间后会拿到sk-开头的 key)。用 curl 建库最小示例:

curl --location 'http://localhost:8080/api/v1/knowledge-bases' \ --header 'Content-Type: application/json' \ --header 'X-API-Key: your_api_key' \ --data '{"name": "示例知识库", "description": "用于演示"}'

解析卡住或分块效果不对,先看文档级解析追踪时间线(Langfuse 风格的逐阶段 Span 树),再查docker compose logs -f app docreader

对话:快速问答和 Agent 推理两个档位

能干什么:同一个知识库支持两种回答方式。快速问答走 RAG:检索命中后直接生成,带引用浮层,适合日常查证;智能推理是 ReAct 模式:模型自主决定何时查知识库、何时调 MCP 工具、何时执行沙箱里的技能,适合"先查 A 再算 B 最后汇总"这类多步任务。

怎么操作:新建会话时切换对话模式即可;会话里还能@Skill/@MCP限定当前轮可用的工具和技能。

入口在哪:检索与生成的阈值、改写与重排开关都在 config/config.yaml 的conversation段(enable_rewriteenable_rerankrerank_top_k等);Agent 循环实现看 internal/agent/engine.go。

回答不准时先查三处:Embedding 模型维度是否和向量库匹配(.envINIT_EMBEDDING_MODEL_DIMENSION)、检索阈值(vector_threshold/rerank_threshold)、Rerank 模型有没有配(INIT_RERANK_MODEL_*)。

Wiki 模式:让 Agent 自己写文档

能干什么:Agent 从原始文档自动提炼出相互链接的 Markdown Wiki 页面和可视化知识图谱,支持在浏览器里人工编辑、看行级 diff、一键回滚到历史版本。

怎么操作:对已有文档知识库启用 Wiki 任务,然后在 Wiki 浏览器里按目录翻页面、点图谱节点跳引用。

入口在哪:前端在 frontend/src/views/ 的 Wiki 浏览器页面,处理器看 internal/handler/wiki_page.go。

进阶方向:三条扩展线

只给思路,细节看对应文件。

知识图谱增强检索:默认检索是向量 + BM25 混合召回;开启图谱后会把段落间语义关联建进 Neo4j,拓宽召回面。配置见 docs/开启知识图谱功能.md,实体/关系抽取提示词在 config/config.yaml 的extract段。

多模态与数据源:图片类文档可配 VLM 做 OCR 与描述生成,解析器在 docreader/parser/;飞书知识库 / GitLab / Notion / 语雀 / RSS 等外部数据源可定时增量同步,连接器代码在 internal/datasource/connector/,开发文档 docs/数据源导入开发文档.md。

程序化集成与二次开发:对外有三条路——REST API(完整端点文档 docs/api/README.md)、Go SDK(跑通示例 client/example.go)、官方 MCP Server(mcp-server/,PyPI 包tencent-weknora-mcp,stdio / SSE / HTTP 三种传输)。要改源码的话用快速开发模式免打镜像:make dev-start起基础设施,另开终端make dev-app(Air 热重载)和make dev-frontend,详细说明在 docs/开发指南.md。

🔧 卡住时先查这五处

  1. 容器起不来 / 8080 不通docker compose logs -f app docreader postgres找 ERROR;镜像版本对不上时,把.envWEKNORA_VERSION设成目标 tag(如v0.7.0),重新docker compose pull && docker compose up -d——只执行up -d会复用旧缓存镜像。
  2. 文档上传后解析失败:绝大多数是模型没配对。核对.envINIT_LLM_MODEL_NAMEINIT_EMBEDDING_MODEL_NAMEINIT_EMBEDDING_MODEL_DIMENSION,远端模型还要*_BASE_URL*_API_KEY,排查步骤见 docs/QA.md。
  3. 图片显示为无效链接:多半是 MinIO 没起或 bucket 权限不对——docker compose --profile minio up -d,再用.env里的MINIO_ACCESS_KEY_ID登录http://localhost:9001控制台看策略;跨机器访问图片要把MINIO_PUBLIC_ENDPOINTlocalhost改成实际 IP。
  4. OCR 报错或 PaddleOCR 起不来:在docreader服务把OCR_BACKEND换成vlm(配OCR_API_BASE_URL/OCR_API_KEY/OCR_MODEL)或no_ocr,再重启 docreader。
  5. 页面保存的配置几秒后又消失:基本不是后端问题,先关浏览器代理和改写类插件、把localhost加进直连名单,再用无痕窗口重试;仍不行docker compose restart app

更多场景(日志查看、清空数据库、平台兼容性)都在 docs/QA.md。

📚 三档学习路线

第一档(半天):按上文部署 → 建库上传 → 两种对话模式各问几个问题 → 用X-API-Key打两个接口(建库、混合搜索POST /knowledge-bases/:id/hybrid-search,见 docs/api/knowledge-search.md)。

第二档(一两周):跑通快速开发模式改一处代码 → 换一家模型厂商验证配置灵活性 → 调分块参数与 Rerank 观察召回变化 → 给知识库接一个数据源同步。参考 config/builtin_models.yaml.example 做声明式内置模型,API 全量文档在 website-docs/。

第三档(长期):读 Agent 循环 internal/agent/engine.go 和技能沙箱 internal/sandbox/ → 给 MCP Server 加一个自己的工具(examples/mcp-demo/)→ 研究 Wiki 自治生成与版本回滚实现(internal/handler/wiki_page.go),或把 Langfuse 追踪(docs/Langfuse集成.md)接到你自己的可观测体系里。

版本演进和路线图看 CHANGELOG.md 与 docs/ROADMAP.md;生产部署安全基线(内网隔离、登录鉴权)在 SECURITY.md。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/7 23:04:05

如何高效修改毕业论文文本与格式

如何高效修改毕业论文文本与格式 在完成毕业论文的过程中,修改文本和格式是一项不可避免的任务。作为一名正在奋战的大学生,我深知这个过程可能会让人感到疲惫和困惑。今天我想分享一些我在修改论文时总结的经验,希望能帮助大家提高效率&…

作者头像 李华
网站建设 2026/9/7 23:03:12

EKF与UKF在电力系统动态状态估计中的Matlab实现与对比

有段时间没深入聊动态状态估计这个话题了。刚好最近在帮几个同行核对基于扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计仿真代码,发现很多人卡住的点其实不在算法本身,而在建模环节和Ma…

作者头像 李华
网站建设 2026/9/7 23:02:52

头歌实践教学平台:Java入门-循环结构进阶(三~五)

第3关:99乘法表任务描述 本小节需要你打印输出一个99乘法表。相关知识 怎么实现99乘法表呢?你看它的形状是不是很像我们上个关卡的三角形呢?我们可不可以把三角形的每一颗*看做是被99乘法表中的每一项给替代了呢?编程要求 在右侧B…

作者头像 李华
网站建设 2026/9/7 23:02:16

2026年9月国内讲 FDE 透彻的讲师有哪些?深度拆解与场景匹配

Vantage 万极老师是势途 AI(杭州势途数字科技)的创始人,在 FDE(企业 AI 落地交付方法)领域有持续的公开内容输出。与其他讲师相比,他的内容不仅说明"FDE 是什么""怎么做",更…

作者头像 李华
网站建设 2026/9/7 23:01:08

Web开发中的API设计与实践:从RESTful到性能优化

1. Web开发与API:现代应用构建的核心技术栈十年前我刚入行时,Web开发还停留在"前端写页面、后端写逻辑"的简单分工阶段。如今随着前后端分离架构的普及,API已成为连接前后端的标准方式。最近帮朋友排查一个电商项目故障时&#xff…

作者头像 李华