WeKnora 知识库问答实战:从部署到检索增强的 RAG 框架指南
【免费下载链接】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 框架:丢进去一批文档,它帮你解析、切片、向量化,最后变成可对话的知识库问答。想先建立全局印象,可以直接读项目概述 README_CN.md。
三个典型使用场景
- 当你手里散落着产品手册、合同、内部 wiki 时:把文档批量导入 WeKnora,它自动完成解析、切片、向量化,你得到一个能直接提问的知识库。
- 当你发现问答总"答非所问"时:它内置 BM25 + 向量混合检索,还能叠加知识图谱,对长文档和表格类内容尤其管用,检索策略代码在 internal/application/service/retriever/。
- 当你想给自家产品加"问文档"入口时:WeKnora 暴露 RESTful API,也提供现成的 Go SDK,不用自己从零搭 RAG 链路。
从 0 到跑起来:5 分钟拉起 WeKnora 部署环境
先把服务拉起来。仓库自带一条启动脚本,会自动建.env、拉镜像、起容器:
git clone https://gitcode.com/GitHub_Trending/we/WeKnora cd WeKnora ./scripts/start_all.sh # 停止则加 --stop服务起来后三个地址记一下:Web UI 在http://localhost,后端 API 在http://localhost:8080,链路追踪 Jaeger 在http://localhost:16686。
首次打开 Web UI 会跳到初始化向导,按提示填好 LLM、Embedding 模型和向量数据库三项就能进主界面。默认部署定义在 docker-compose.yml,主配置文件是 config/config.yaml——后面调参数基本都改这一个文件。到这里,浏览器刷新 localhost 就能看到你的知识库平台了。
日常使用三连
知识库管理
在 Web UI 点"新建知识库",或直接用接口。上传后 WeKnora 自动提取结构化内容并建索引,支持文件上传和 URL 导入两种入口。
分块行为由知识库级配置控制,比如chunk_size和chunk_overlap,改完对新导入的文档生效。
文档问答
打开任意知识库进入对话页提问。回答会基于检索到的切片生成,检索链路是 BM25 与向量混合召回,所以短关键词问题和自然语言问法都有覆盖。
API 集成
RESTful API 用 API Key 认证,请求头带X-API-Key即可。创建知识库的示例:
curl --location 'http://localhost:8080/api/v1/knowledge-bases' \ --header 'Content-Type: application/json' \ --header 'X-API-Key: your_api_key' \ --data '{ "name": "示例知识库", "description": "用于演示的知识库", "chunking_config": { "chunk_size": 1000, "chunk_overlap": 200 } }'接口细节见 docs/API.md;想直接用 Go 接入,参考 client/example.go。跑通这个调用,说明你的 RAG 知识库搭建已经从"能用"走到"可集成"了。
进阶能力
多模态:文档里的图片默认只是"图片",配好 VLM 模型和对象存储(MinIO/COS)之后,WeKnora 会生成图像描述并纳入检索,图片内容也能被问到。
vlm_config: model_name: "qwen2.5vl:3b" interface_type: "ollama" base_url: "http://host.docker.internal:11435/v1"解析逻辑在 docreader/parser/image_parser.py。
知识图谱:WeKnora 可以把文档转成图谱,检索时图谱信号参与召回,长尾问题命中会明显更准,构建逻辑见 internal/application/service/graph.go,混合检索策略在 internal/application/service/retriever/composite.go。
存储与缓存:向量库支持 PostgreSQL(pgvector) 与 Elasticsearch 切换,在 internal/config/config.go 对应的配置项里改;检索链路再叠一层 Redis 缓存(internal/stream/redis_manager.go),高频问题会快一截。
问题快查表 ⚠️
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
| 服务启动失败 | 模型配置缺失或依赖没起来 | docker compose logs -f app看日志,逐项核对模型与依赖配置 |
| 文档上传失败 | Embedding 模型配置不对或未连通 | 验证 Embedding 端点可达,参考 docs/QA.md 中"无法正常上传文档"一节 |
| 检索不准 | 分块参数不合适、缺 Rerank | 调chunk_size/chunk_overlap,接入 Rerank 模型,配置入口 internal/config/config.go |
| 高频问题响应慢 | 每次全量走检索链路 | 启用 Redis 缓存,见 internal/stream/redis_manager.go |
延伸资源
- 官方文档与核心概念:docs/ 目录,含 API、多租户、部署等分册
- 接口参考:docs/api/README.md
- Go 客户端示例:client/example.go
- QA 评测数据集:dataset/samples/
- 贡献指南与开发指南:README_CN.md
部署 → 知识库问答体验 → API 接入 → 自定义模型与检索调参 → 多模态与知识图谱扩展。按这个顺序走,每一步都有前一步的落点可验证,不会中途卡住。
【免费下载链接】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),仅供参考