本仓库使用 CNB 知识库 能力,将 Battle for Wesnoth Wiki 的全量页面构建为可检索的 RAG 知识库,演示如何快速为任意文档站搭建智能问答服务。
通过 MediaWiki API 批量抓取 Wesnoth Wiki 全部页面(过滤翻译子页、用户页、Talk 页等),转为带 YAML frontmatter 的 Markdown 文件:
---
title: "AbilitiesWML"
source_url: "https://wiki.wesnoth.org/AbilitiesWML"
date_fetched: "2026-05-15"
---
共收录 1200+ 篇文档,覆盖游戏机制、WML 脚本、战役攻略、单位图鉴等。
仓库已配置 .cnb.yml 流水线,代码推送时自动通过 knowledge:update 任务完成文档切片、分词与向量化:
main:
push:
- stages:
- name: build knowledge base
type: knowledge:update
options:
include: "**/**.md"
| 参数 | 默认值 | 说明 |
|---|---|---|
chunkSize | 1500 | 文本分块大小 |
chunkOverlap | 0 | 分块重叠 token 数 |
exclude | 无 | 排除文件(Glob 模式) |
issueSyncEnabled | true | 是否同步仓库 Issue |
forceRebuild | false | 是否全量重建 |
更多参数详见 知识库文档。
知识库构建完成后,可通过 Open API 检索:
curl -G "https://api.cnb.cool/{slug}/-/knowledge/base/query" \
-H "Authorization: Bearer ${token}" \
--data-urlencode "query=Wesnoth 中如何定义单位能力"
返回结果包含匹配片段、相关性分数和来源元数据,可直接用于 RAG 应用。
wesnoth-wiki/
├── _page_list.json # 抓取页面索引
├── Abilities.md # 各 Wiki 页面...
├── AbilitiesWML.md
├── ActionWML.md
├── ...
scrape_wiki.py # Python 爬虫脚本
scrape_wiki.js # Node.js 爬虫脚本
.cnb.yml # 知识库构建流水线