OpenRAG默认文档服务详解:示例知识库如何加速新手上手
【免费下载链接】openragOpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch.项目地址: https://gitcode.com/GitHub_Trending/open/openrag
OpenRAG 是一个一体化的检索增强生成(RAG)平台。它的默认文档服务会在初始化(Onboarding)时自动导入一份内置的示例知识库,让新手装完就能直接提问"OpenRAG 是怎么构建的?"并获得带出处的回答。本文带你快速看懂:默认文档从哪来、如何自动更新与升级重导、示例知识库如何加速你的第一次 RAG 对话。
为什么需要一份示例知识库 🌱
RAG 系统的核心是"先有知识,才能问答"。一个刚部署完的 OpenRAG 实例,向量库里空空如也——你问什么,Agent 都答不上来,新手很容易误以为系统坏了。
默认文档服务(源码位于 src/services/default_docs_service.py)解决的就是这个问题:开箱即有一份可用的官方文档知识库,让你安装后立刻体验完整的"检索 → 生成 → 引用"链路。
上图就是示例知识库的实际效果:在 Chat 中提问"How is OpenRAG built?",Agent 自动调用search_documents工具从示例知识库中检索,答案末尾还会附上Source: openrag-documentation.pdf这样的引用来源。
示例知识库从哪里来:两种导入源
默认文档服务支持两种导入方式,由环境变量 src/config/settings.py 控制:
| 配置项 | 默认值 | 作用 |
|---|---|---|
DEFAULT_DOCS_INGEST_SOURCE | url | 导入源:url(爬取官方文档站)或本地文件 |
DEFAULT_DOCS_CRAWL_DEPTH | 2 | URL 爬取深度 |
DEFAULT_DOCS_URL | 官方文档域名 | 爬取的目标地址 |
- 本地打包文档:仓库内置了
openrag-documents/目录,包含 docling.pdf、ibm_anthropic.pdf 等示例 PDF。导入时会自动排除预热文件warmup_ocr.pdf(见EXCLUDED_INGESTION_FILES常量)。 - URL 爬取:默认的
url模式会按爬取深度抓取官方文档站的页面并入库。
无论你选择哪种源,文档都会被打上统一标记:connector_type=openrag_docs且is_sample_data=true,归属到匿名的"初始化用户"名下——这为后续的自动清理和筛选打下了基础(核心逻辑见 ingest_default_documents_when_ready)。
一键筛选:自动创建的"OpenRAG Docs"过滤器
示例知识库导入完成后,系统还会自动创建一个知识过滤器(见 _create_openrag_docs_filter):
- 按
connector_types: ["openrag_docs"]精确锁定示例文档; - 以蓝色标识,方便你在知识库列表中一眼认出;
- 过滤器 ID 会持久化到
onboarding.openrag_docs_filter_id(配置模型见 src/api/settings/models.py)。
这样在聊天时,Agent 就能被精确指向"官方示例文档"这一数据源,而不是在你未来的真实知识库里乱搜。
免维护更新:签名检测 + 升级自动重导 🔁
新手最担心的"知识库过期"问题,默认文档服务自己就解决了:
启动时刷新—— 每次服务启动,startup_orchestrator.py 会调用 refresh_default_openrag_docs。它通过 HTTP 的ETag/Last-Modified头获取远程文档"签名",只有内容真的变了才会删除旧分块并重新导入,无变化则静默跳过,不会浪费你的算力。
升级时重导—— 当你升级 OpenRAG 版本后,_reingest_default_docs_on_upgrade_if_needed 会比对配置中记录的openrag_docs_ingested_version与当前版本号,不一致就先清理旧文档(_delete_existing_default_docs)再重新导入,保证示例知识永远与当前版本匹配。
整条链路由 Onboarding 接口触发,完整流程见 src/api/settings/endpoints.py。
动手体验:3 步完成首次 RAG 对话 ✨
第 1 步:安装并启动 OpenRAG。推荐用 Docker Compose 一键拉起(参考 docs/docs/get-started/docker.mdx);如果你喜欢终端操作,也可以用 TUI 向导:
第 2 步:完成 Onboarding。在引导流程中选择 LLM 与嵌入模型,并勾选"Ingest sample data"(前端逻辑见 onboarding-content.tsx),系统随即自动导入示例知识库并创建过滤器。
第 3 步:打开 Chat 提问。输入"How is OpenRAG built?"或"Docling 在 RAG 中起什么作用?",看着 Agent 检索默认文档、生成带引用的回答——你的 RAG 之旅就正式开始了。
更多入门内容可查阅 docs/docs/get-started/quickstart.mdx 与 docs/docs/get-started/what-is-openrag.mdx。
核心文件速查表 📁
| 模块 | 相对路径 | 职责 |
|---|---|---|
| 默认文档服务 | src/services/default_docs_service.py | 导入 / 刷新 / 升级重导 / 签名检测 |
| 启动编排 | src/services/startup_orchestrator.py | 启动时触发刷新与升级重导 |
| Onboarding 接口 | src/api/settings/endpoints.py | 引导流程中触发示例数据导入 |
| 文档过滤器 | src/api/settings/helpers.py | 自动创建 OpenRAG Docs 过滤器 |
| 配置常量 | src/config/settings.py | 导入源、URL、爬取深度 |
| 示例文档 | openrag-documents/ | 内置示例 PDF |
| 官方文档 | docs/docs/ | 快速上手与组件详解 |
💡小贴士:示例文档在向量库中的
is_sample_data=true标记意味着你可以随时安全地整体删除它们,不会影响自己的真实知识。等你对 RAG 有了感觉,就可以开始导入自己的文档了!
【免费下载链接】openragOpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch.项目地址: https://gitcode.com/GitHub_Trending/open/openrag
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考