跳转至

ClassicalCN 分册 · 中文古诗词/古籍的 AI 处理与阅读学习(CPU 服务器部署)

版本基线: chinese-poetry(仓库 chinese-poetry/chinese-poetry,原作者 jackeyGao;MIT;唐诗 5.5 万 / 宋诗 26 万 / 宋词 2.1 万首;最近提交 2026-06-17,约 5.2 万 star,低频维护但存活)· 殆知阁修正版 daizhige-org/daizhigev20(data 分支,2026-10-12 更新,约 2.89 万文件 / 5.55GB;无统一 LICENSE)· CTEXT 中国哲学书电子化计划 JSON API(api.ctext.org,需 apikey、按用户组限流;内容许可按站点条款,具体版本未核实)· gelv-poetry(MIT,零依赖,平水韵 8000+ 字)· GuwenBERT ethanyt/guwenbert-base(Apache-2.0,殆知阁 15,694 部 / 17.4 亿字语料)· OpenCC 1.1.9(PyPI 2024-08-08,Apache-2.0;上游 1.2.0 已发布,发行版打包滞后)· jieba 0.42.1 / HanLP 2.1.1 · Ollama 0.40.14 + qwen3:1.7b/4b(详见 NLP 分册)(核对日期 2026-11-11,来源:官网/GitHub/HuggingFace/PyPI)

宿主机约束(必读): Windows Server 2022,2×Xeon Gold 6138(40 核 80 线程)、256GB 内存、F 盘 895G / 剩余 862G。无独立 GPU,纯 CPU 推理。服务以 Docker 容器优先部署,产物只存 F:\EricLiu\ 下;模型权重统一放 F:\EricLiu\labs\models\。

业务目标: ① 古典语料的本地化归集与可检索化;② 用本地 LLM(Ollama/Dify,见 NLP 分册)搭"诗词问答 + 古籍阅读助手";③ 输出可校验的格律/断句/翻译辅助,服务于阅读学习与教学内容生产。


1. 选型对比

1.1 语料/数据集

类型 名称 规模 许可证 获取方式 维护状态 适用范围 限制
诗词全集 chinese-poetry(chinese-poetry/chinese-poetry) 唐诗 ≈5.5 万首(诗人≈1.4 万)、宋诗 ≈26 万首、宋词 ≈2.1 万首(词人 1,564),另含诗经/楚辞/论语/四书五经/蒙学/元曲/五代/纳兰/幽梦影;JSON 约 2,246 个文件 MIT(2017-06 加入 LICENSE) git clone(浅克隆即可) 低频但存活:最近提交 2026-06-17(633 commits);PR 仍在合入 诗词问答、飞花令、检索、RAG 底料、教学素材 ① 数据源自互联网采集,未逐字校对;② 全唐诗为繁体、宋词为简体,混用会掉召回;③ 宋词记录无 id/title,跨库合并需自建主键
古籍全文 殆知阁(修正版 daizhige-org/daizhigev20) 修正版口径约 2.89 万文件 / 5.55GB(另一口径 1.96 万部 / 5044MB),十藏分类(易儒道佛子史诗集医艺) ⚠️ 无统一 LICENSE;文本多为公有领域,但整理/校勘内容权利未明;部分模块(如 CBDB)标 CC BY-NC-SA 4.0 git clone --branch data --depth 1(不拉历史) 修正版活跃(2026-10-12 更新);原始仓库 garychowcmu/daizhigev20 2020-01-20 停更 扩展语料、RAG 底料、古文 NLP 训练(如 GuwenBERT 即用它训练) 已知繁简转换错、论坛残留、HTML/脚本残留;引用前必须回原文校对;再分发/商用需逐条确认权利
权威原典 CTEXT(中国哲学书电子化计划)JSON API 覆盖经史子集 + 出土文献,URN 定位到篇章 内容许可按站点条款(具体 CC 版本未核实);API 免费但需 apikey https://api.ctext.org/gettext?urn=ctp:analects/xue-er&if=zh;Python 客户端 ctext 站点长期在线、稳定 需要权威原文/异文对照时按需取;校对基准 ① 明确不是批量下载通道,按用户组限流(未登录/登录/机构订阅三档);② 断网即不可用,不适合做离线主库
校勘参照 维基文库(Wikisource 中文) 按书分页 站点条款(CC BY-SA 体系,未逐页核实) 网页/API 社区维护 与 chinese-poetry/殆知阁互校 版本混杂、无统一质量保证
商业库 中华经典古籍库 / 籍合网等 精校点校本 商业授权 订阅 商业 出版级引用 回避:授权成本与条款限制,本项目不做

⚠️ 规模数字随快照浮动(star 数、文件数、字数各口径不一),引用时注明"截至某日快照"。公开可下载 ≠ 可商用,殆知阁尤其如此。

1.2 工具链(分词 / 格律 / 文言 NLP)

类型 项目 版本/规模 许可证 CPU 可行性 适用范围 限制
分词 jieba 0.42.1(原版,2020 后无更新);活跃分支 jieba-py 0.46.12 MIT ✅ 极佳,十万字/秒级 现代汉语分词、关键词;(古文效果一般) 词表是现代汉语,古文虚词/人名易切碎;诗句检索不要依赖分词
分词/NER/句法 HanLP 2.1.1 Apache-2.0 ✅ 中小模型 CPU 可跑 需要词性/NER/依存的中文产线 古文领域模型缺失,古文 NER 用 GuwenBERT 系更合适
格律校验 gelv-poetry 无 release 号(git 主干),纯 Python 3.8+ 标准库 MIT ✅ 零依赖、毫秒级 五绝/五律/七绝/七律:平仄贴谱、押韵、粘对、孤平、三平尾、对仗、重字;查字/取谱/找韵脚 多音字与生僻字在强制位放行,✓ 仅表示"未查出硬伤";跨句拗救可能误报;判不了语义对仗
格律校验(GUI/词) couyun 诗词格律校验工具 无 release 号 未核实(仓库未见明确 LICENSE) ✅ Python + GUI 诗校验 + 词校验(钦定词谱/龙榆生词谱)+ 查字(平水/词林正韵/中华新韵/中华通韵) 桌面 GUI 形态,不适合服务化;许可未明,仅内部试用
格律校验(API/CLI) fangcun v2.2.1 未核实 ✅ Flask :5050 格律校验 + 2500+ 词牌 + 韵部查询 + 6 个 HTTP 端点(供 AI Agent 调用)+ CLI + Android 离线 个人项目、单点维护;许可未核实
文言预训练 GuwenBERT(ethanyt/guwenbert-base / -large) base 12 层/768 隐/12 头;语料 15,694 部 / 17.4 亿字 Apache-2.0 ✅ base 版 CPU 推理毫秒~百毫秒级/句 断句、标点、NER、古文语义(作为下游底座) 语料已统一转简体,繁体输入需先转换;2020–2022 年后无新版本
文言下游 guwen-models 合集(AbitCd/guwen-models) 断句 guwen-seg / 标点 guwen-punc / 引号 / NER / 分类 / 情感 随各模型(未逐一核实) ✅ 均为中小 BERT 系 直接可用的古文处理任务 官方提示:用 Transformers 序列标注有误差,实战建议接 CRF 解码
繁体古籍预训练 sikubert / sikuroberta / sikuGPT2 基于四库全书语料 未核实 ✅ CPU 可跑 繁体古籍(不需繁简转换) 许可与下载渠道需自查
文言→白话 wenyanwen-ancient-translate-to-modern(raynardj) 训练语料约 90 万句对(BangBOOM/Classical-Chinese) 未核实(HF 模型卡需自查) ✅ 小模型 CPU 可跑 阅读辅助:逐句今译 质量有限,长句/典故易错;必须标注"机译,供参考"
古籍 OCR PaddleOCR 3.7 + PP-OCRv6 / 繁体 chinese_cht 识别模型 见 OCR 分册 Apache-2.0 ✅ 见 OCR 分册耗时 扫描件/影印本 → 文本(竖排需自写列排序) 见 OCR 分册;异体字无模型能包办,需映射表或微调
古籍 OCR(VLM) AnandaSky 626M(ViT + Qwen3-0.6B 解码器),4 百万行图像训练,行级 CER 0.33%–4.89% CC BY-NC 4.0(非商用) ❌ 硬依赖 FlashAttention + NVIDIA Ampere 及以上 GPU 研究级行级转写(四部丛刊/敦煌写本/清代文书) 本机不可用(无 GPU);且非商用

1.3 应用层(问答 / RAG / 生成)

方案 形态 许可证 本机可行性 适用范围 限制
Ollama + qwen3:1.7b/4b 本地 LLM 运行时(OpenAI 兼容 /v1) MIT(Ollama) ✅ 1.7B ≈10~25 tok/s;4B ≈5~15 tok/s(见 NLP 分册) 诗词讲解、典故问答、译文润色、RAG 生成端 小模型记不准原文/平仄/异体字,必须外接语料检索与格律脚本
Dify / RAGFlow 知识库 + 工作流编排 见 NLP 分册 ✅ CPU 可跑(Dify 全套 4~8GB 内存) 建"古籍阅读助手"(分卷检索 + 引用出处) chunk 策略对召回影响极大(诗句短,见 §3.1)
bge-m3(Ollama 拉取) embedding / rerank MIT ✅ 1.2GB 混合检索 古文语义弱于现代文,纯向量召回不稳定,需关键词兜底
九歌(THUNLP) 诗歌生成系统(80~90 万首诗训练) 站点为在线服务;GitHub THUNLP-AIPoet 下有 Datasets / BERT-CCPoem / MixPoet / WMPoetry 等,2019 开源,README 注明 resources 仅限学术用途;Resources 仓库标 MIT 但同样写 academic use only ⚠️ 学术用途;模型多为 2018–2022 年,未适配当前栈 研究、教学演示 不作生产依赖:许可限学术、代码久未维护;商用需另行确认
通用 LLM 微调(LoRA)做诗 自建 取决于底模 ❌ 本机无 GPU,训练不现实 — 回避:CPU 训练不具可行性;生成需求改用"通用 LLM 起草 + gelv-poetry 校验"
格律脚本 + LLM 分工(推荐) LLM 出意象/谋篇 → check.py 挑错 → 改 → 复查 MIT(gelv-poetry) ✅ 全 CPU 教学写作、内容生产 脚本只判格律不判意境;最终仍需人工把关

限制与回避(选型前先看这条): - 回避 AnandaSky:CC BY-NC 4.0 + 硬依赖 FlashAttention/Ampere GPU,本机纯 CPU 跑不起来;古籍 OCR 走 PaddleOCR + 竖排列排序自写(见 OCR 分册)。 - 回避殆知阁整库商用/再分发:无统一 LICENSE,含整理与校勘内容,权利未清;仅作内部研究语料,引用必须回原文校对。 - 回避 CTEXT 批量抓取:官方明确 API 目标是扩展 CText 功能而非"下载大量资料",按用户组限流;做批量语料会触发限制并违反使用条件。 - 回避"让 LLM 直接背诗/判平仄":小模型对入声字(国/白/一/独/节/竹)几乎必错,平仄判定必须查表(平水韵),名句必须回语料核对。 - 回避用分词结果做诗句检索:jieba 词表是现代汉语,会把"白日依山尽"切碎;诗句检索用字级 n-gram / 全文索引。 - 回避九歌开源模型直接进生产:学术用途声明 + 2019–2022 年代码,无维护。

推荐结论(本机纯 CPU): - 首选 = chinese-poetry(MIT)作语料底座 + jieba/HanLP 做现代文处理 + gelv-poetry(MIT)做格律校验 + Ollama(qwen3:1.7b/4b) 做问答生成。理由:许可干净、体量够(37 万+ 首)、全 CPU 毫秒~秒级、可完全离线。 - 增强首选 = GuwenBERT(Apache-2.0)做断句/标点/NER,为 RAG 预处理与"无标点古籍"阅读场景服务;繁体场景先 OpenCC 归一或改用 sikubert(许可待核实)。 - 选配 = CTEXT API(按需取权威原文做校对基准)/ 殆知阁 data 分支(内部研究扩展语料,禁商用)/ fangcun 的 HTTP 端点(需要词牌校验时试用,许可待核实)/ Dify 建知识库。 - 回避 = AnandaSky(GPU+非商用)、殆知阁商用再分发、CTEXT 批量抓取、九歌开源模型生产化、CPU 上微调 LLM。


2. 语料获取与导入

2.1 目录约定(硬约束)

F:\EricLiu\labs\corpus\classical\        # 语料落盘根(不入 git)
  chinese-poetry\                        # git clone 的仓库
  daizhige\                              # 殆知阁 data 分支快照
  ctext-cache\                           # CTEXT API 响应缓存(按 URN 存 JSON)
  normalized\                            # 归一化产物(简体/去噪/统一标点)
F:\EricLiu\labs\models\classical\        # GuwenBERT / 翻译模型 / 古文 NER 权重
F:\EricLiu\labs\data\classical\          # SQLite / 索引文件
F:\EricLiu\outputs\classicalcn\          # 检索结果、导出、评测报告
F:\EricLiu\labs\docker\classicalcn\      # compose 与脚本

磁盘预算:chinese-poetry 浅克隆约百 MB 级;殆知阁 data 分支约 2~5.5GB;模型(GuwenBERT base ≈400MB、翻译模型 ≈1GB 级)另计。所有下载前先 df -h /f 核对余量。

2.2 chinese-poetry 获取

mkdir -p /f/EricLiu/labs/corpus/classical
cd /f/EricLiu/labs/corpus/classical
git clone --depth 1 https://github.com/chinese-poetry/chinese-poetry.git

要点: - 目录为中文目录名(2023-04 起从 json/ 迁到 全唐诗/、宋词/、诗经/…),网上 2023 年前的教程路径已失效。 - 排除 rank/、strains/ 两个派生目录(词牌排行/字频统计),它们不是原始语料。 - JSON 结构(注意字段不统一):

// 全唐诗/poet.tang.0.json —— 繁体,有 id
{"author": "太宗皇帝", "title": "帝京篇十首 一",
 "paragraphs": ["秦川雄帝宅,函谷壯皇居。"], "id": "3ad6d468-..."}

// 宋词/ci.song.0.json —— 简体,无 id/title,用词牌
{"author": "苏轼", "rhythmic": "水调歌头", "paragraphs": ["明月几时有,把酒问青天。"]}

2.3 殆知阁(仅内部研究)

cd /f/EricLiu/labs/corpus/classical
git clone --branch data --depth 1 https://github.com/daizhige-org/daizhigev20.git daizhige
  • --depth 1 只取快照、不拉历史(否则仓库极大)。
  • 修正版已把旧 TXT 转 Markdown + 文件头元数据,但繁简混杂(README 说全简体,更新日志承认部分史书保留繁体),入库必须做繁简归一。
  • 无统一 LICENSE → 在库内 README 与 API 元数据中标注"研究用途、来源殆知阁、未获商用授权"。

2.4 CTEXT 按需取(不要批量)

# 取一篇原典正文(URN 见站点 URL,如 ctp:analects/xue-er)
curl "https://api.ctext.org/gettext?if=zh&urn=ctp:analects/xue-er&apikey=$CTEXT_KEY"
# 取文献元数据 / 顶层书目
curl "https://api.ctext.org/gettextinfo?if=zh&urn=ctp:analects/xue-er&apikey=$CTEXT_KEY"
curl "https://api.ctext.org/gettexttitles?if=zh&apikey=$CTEXT_KEY"

守则:① apikey 只放环境变量(不写文档/仓库);② 请求结果落 ctext-cache/<urn 转义>.json,同 URN 不重复请求;③ 加 1~2 秒间隔,遇 ERR_REQUIRES_AUTHENTICATION 即停(说明触发配额),不换 IP 绕过;④ 仅作校对基准,不做全库镜像。

2.5 归一化与入库(SQLite FTS5 最小可用)

# normalize.py —— opencc 繁转简 + 标点统一 + 去空白;原文另列保留
import json, sqlite3, glob, re, os
from opencc import OpenCC

cc = OpenCC("t2s")                      # 繁→简;展示层需要台港用词时用 t2s 的短语库版本另配
db = sqlite3.connect(r"F:\EricLiu\labs\data\classical\poetry.db")
db.execute("PRAGMA journal_mode=WAL")
db.execute("""CREATE TABLE IF NOT EXISTS poem(
  id TEXT PRIMARY KEY, source TEXT, dynasty TEXT, author TEXT, title TEXT,
  body_raw TEXT, body_sim TEXT, nchar INT)""")
db.execute("CREATE VIRTUAL TABLE IF NOT EXISTS poem_fts USING fts5("
           "title, author, body_sim, content='poem', content_rowid='rowid', "
           "tokenize='trigram')")       # trigram:中文无需分词,短句召回稳

def clean(s: str) -> str:
    s = cc.convert(s)
    s = re.sub(r"[ \t\u3000]+", "", s)
    return s.replace(",", ",").replace(".", "。").replace("?", "?").replace("!", "!")

rows = []
for f in glob.glob(r"F:\EricLiu\labs\corpus\classical\chinese-poetry\全唐诗\poet.tang.*.json"):
    for p in json.load(open(f, encoding="utf-8")):
        body = "\n".join(p["paragraphs"])
        rows.append((p["id"], "chinese-poetry/全唐诗", "唐", p["author"], p["title"],
                     body, clean(body), len(body)))
for f in glob.glob(r"F:\EricLiu\labs\corpus\classical\chinese-poetry\宋词\ci.song.*.json"):
    for i, p in enumerate(json.load(open(f, encoding="utf-8"))):
        body = "\n".join(p["paragraphs"])
        rows.append((f"ci-{os.path.basename(f)}-{i}", "chinese-poetry/宋词", "宋",
                     p["author"], p.get("rhythmic", ""), body, clean(body), len(body)))

db.executemany("INSERT OR REPLACE INTO poem VALUES(?,?,?,?,?,?,?,?)", rows)
db.execute("INSERT INTO poem_fts(poem_fts) VALUES('rebuild')")
db.commit()
print("rows:", len(rows))

检索(字级、不依赖分词):

cur = db.execute("""SELECT author, title, body_sim FROM poem_fts
                    JOIN poem ON poem.rowid = poem_fts.rowid
                    WHERE poem_fts MATCH ? LIMIT 10""", ('"明月几时有"',))

trigram 分词器要求 SQLite ≥ 3.34(Python 3.11 自带版本满足)。若用 MySQL/PostgreSQL 替代,中文需 ngram/pg_trgm,效果同理。


3. AI 应用实验路径

3.1 诗词问答(RAG,接 NLP 分册)

链路:问题 → 关键词/向量检索(SQLite FTS5 + bge-m3 混合)→ 命中诗句 + 出处 → qwen3 生成回答 → 引用校验。

Dify 侧要点(细节见 NLP 分册 §4): - chunk 策略:按"一首 = 一 chunk"(平均 40~80 字),不要按 500 token 切——会把一首诗切两半,出处也丢。诗题 + 作者拼进 chunk 头(《春望》杜甫:),提升召回。 - 检索:混合检索 + Rerank,Top-K 放 5~10(诗句短,K 太小易漏),Score 阈值 0.4 起调。 - 提示词约束(必须写进 system prompt):

你是古籍阅读助手。规则:
1. 只依据【检索到的原文】回答;检索不到就答"语料库中未收录,无法确认"。
2. 引用诗句必须原样抄录,并给出作者、篇名、语料 id。
3. 不得改写、补字、合并不同诗作;不得推断作者存疑的作品。
4. 涉及平仄/押韵时,声明"需用格律工具校验",不凭记忆判定。
  • 回答后校验:把回答里的引文抽出,回 poem 表精确匹配;匹配不到 → 标记"⚠️ 未在语料中检出,请人工核对"(§5 守则第 3 条)。

3.2 格律检查(生成侧唯一可信环节)

git clone https://github.com/chenmisss/gelv-poetry.git /f/EricLiu/labs/tools/gelv-poetry
cd /f/EricLiu/labs/tools/gelv-poetry/scripts
python check.py check "白日依山尽,黄河入海流。欲穷千里目,更上一层楼。"
python check.py tone 国白一独        # 查平仄+韵部,标注入声
python check.py yun 十一尤           # 找韵脚备选字

输出解读:✓=未查出硬伤(不等于全对);●=平仄错;←韵=押韵位;结论行给韵部。已知局限(多音字放行、跨句拗救误报、语义对仗判不了)写在仓库 NOTES.md。

生产化建议:把 check.py 包成 HTTP 端点(FastAPI,127.0.0.1:8120),供 Dify 工作流或前端调用;返回结构固定为 {ok, lines:[{text, tone, expect, mark}], rhyme, issues[]},便于程序消费。

3.3 断句 / 标点 / 古文 NER(GuwenBERT)

# pip install torch --index-url https://download.pytorch.org/whl/cpu
# pip install transformers==4.*(版本随 HF 生态,按需 pin)
import os
os.environ["HF_HOME"] = r"F:\EricLiu\labs\models\classical\hf"   # 权重只落 F 盘
from transformers import AutoTokenizer, AutoModelForTokenClassification, pipeline

tok = AutoTokenizer.from_pretrained("ethanyt/guwenbert-base")
# 下游任务权重(断句/标点/NER)见 guwen-models 合集,按任务替换模型名
ner = pipeline("token-classification", model="ethanyt/guwenbert-base",
               tokenizer=tok, aggregation_strategy="simple", device=-1)  # -1 = CPU
print(ner("庆历四年春,滕子京谪守巴陵郡。"))

注意:官方建议序列标注接 CRF 解码 才能达到论文水平;transformers 原生 softmax 解码会有边界抖动。CPU 上 base 版单句毫秒~百毫秒级,整本 10 万字级约分钟级(后台跑)。

3.4 文言 → 白话(辅助今译)

用 raynardj/wenyanwen-ancient-translate-to-modern(约 90 万句对训练)逐句翻译,只作阅读辅助:

from transformers import pipeline
tr = pipeline("text2text-generation",
              model="raynardj/wenyanwen-ancient-translate-to-modern", device=-1)
print(tr("此诚危急存亡之秋也", max_length=128)[0]["generated_text"])

工程要点:① 按句(。!?;)切分再译,整段喂会串行丢句;② 输出必须带"机译,供参考"水印;③ 典故/官职/地名专名易错,教学场景要求对照注释本;④ 该模型许可未核实,商用前查 HF 模型卡。

3.5 诗词生成(合规路径)

推荐组合(不用微调): 1. LLM 起草:给 qwen3:4b 明确"五律/七绝 + 主题 + 韵部 + 意象",要求输出纯文本四/八句; 2. check.py check 校验,把 issues 回灌给 LLM 重写(最多 3 轮); 3. 人工定稿,标注"AI 辅助创作"。

不要做:拿 chinese-poetry 在 CPU 上从头训练/微调生成模型(无 GPU,周期不可控,且质量难超通用 LLM + 校验)。若未来上 GPU,再看 九歌/BERT-CCPoem 系(学术用途)或自建 LoRA。

3.6 评测(换模型/改 prompt 必跑)

指标 方法 基线要求
检索命中率 50 条人工问题(含作者/篇名/名句三类),看 Top-5 是否含正确诗 ≥85%
引文准确率 回答中引文与语料精确匹配比例(逐字,含标点归一) 100%,不达标即上线阻断
幻觉率 抽取回答中"语料未收录"的作者/篇名/诗句数 / 总引用数 ≤2%,且必须全部带警示标
格律判定一致率 与人工判定 50 首对照(含入声字陷阱) ≥95%
端到端延迟 单问 RAG + 生成(qwen3:1.7b) ≤15 秒(CPU 可接受)

4. 排障

症状 原因 处置
读文件报 UnicodeDecodeError: 'gbk' Windows 默认 locale 是 GBK,脚本未指定编码 所有 open() 加 encoding="utf-8";环境变量 PYTHONUTF8=1;控制台 chcp 65001 后再跑(只影响显示,不改文件)
输出到终端是乱码 控制台代码页与 UTF-8 不符 chcp 65001;或重定向到文件 > out.txt 再用编辑器看;不要把 GBK 文件当 UTF-8 读
繁体诗检索不到简体关键词 语料繁简混排(全唐诗繁体/宋词简体/殆知阁混杂) 入库时 body_sim 走 OpenCC t2s,body_raw 保留原文;检索与展示分离;只对索引列归一
OpenCC 把"皇后"转成"皇後"之类 t2s/s2t 有一简对多繁、多义短语问题 用短语级配置(s2twp/t2s 自带词库),对高频错例建白名单修正表(fixes.tsv:错误→正确),入库后统一过一遍
生僻字/扩展 B 区字显示成方块或存库失败 字体缺字;MySQL utf8 只有 3 字节 数据库一律 utf8mb4;前端用思源宋体/花园明朝等覆盖扩展区的字体;导出 PDF 前做缺字检查
诗句被切碎、搜"春风"搜不到 用 jieba 分词建索引 改用字级索引(SQLite FTS5 trigram、MySQL ngram、ES ik_max_word 之外配 ngram);古文检索不需要分词
chinese-poetry 目录名不对/路径 404 2023-04 起目录改中文名,旧教程路径失效 以仓库当前目录为准(全唐诗/、宋词/ 等),代码里用 glob 而非硬编码
CTEXT 返回 ERR_REQUIRES_AUTHENTICATION / ERR_INVALID_APIKEY 未带 apikey、key 失效、或触发配额 检查 key 与 URN;停止重试、改从缓存/本地语料取;不要换 IP 绕限流
RAG 召不回正确诗 chunk 过大/过小、纯向量检索对古文弱 一诗一 chunk + 题名作者入 chunk 头;混合检索 + Rerank;Top-K 加大到 10;加作者/朝代元数据过滤
模型答"《静夜思》作者李白,作于长安"但细节错 小模型常识幻觉 提示词强制"只用检索原文";回答中每个断言附语料 id;引文回表校验(§3.1)
Ollama 回答被截断/忘记前文 默认 num_ctx 小(2K/4K),长文档塞不进去 请求里显式设 num_ctx(如 8192);长文按章分次提问;不要一次喂整本
殆知阁数据出现"记忆体/香港脚/利瓦伊" 原数据集繁简转换错误(社区已公开承认) 不做字面直引;引用前回影印本/点校本;内部建"已知错例表"过滤

5. AI 操作守则

  1. 落盘硬约束:语料只放 F:\EricLiu\labs\corpus\classical\,模型只放 F:\EricLiu\labs\models\classical\,产物只写 F:\EricLiu\outputs\classicalcn\;禁止写 C 盘用户目录与容器内临时路径。
  2. 下载前先报体积:clone/下载前 df -h /f 核对余量;>10GB 或整库操作必须先向用户确认(殆知阁全量、模型合集属此类)。
  3. 版权与出处标注(硬性):所有引用必须给"作者 / 篇名 / 语料来源 / 语料 id",缺一不可;殆知阁、维基文库内容标注来源与"未获商用授权";不得把开源语料包装成自有版权内容再分发;CTEXT 内容遵守站点条款,不批量镜像。
  4. 幻觉零容忍(古诗文名句必须校对原文):凡输出诗文,逐字回语料库匹配(标点归一后比较);匹配失败必须显式标注"未在语料中检出,请核对原文",禁止"看起来像"就写。常见坑:张冠李戴(把宋词当唐诗)、改字("床前明月光"改成"窗前")、续写伪作、给出不存在的篇名。
  5. 平仄/押韵只信查表:入声字(国/白/一/独/节/竹/石/发)在普通话里是平声但平水韵是仄,任何模型凭语感判都会错;判定统一走 gelv-poetry,结论附"工具+韵书版本"。
  6. 机译必须标识:文言→白话输出统一加"(机译,供参考)"前缀;教学/出版场景必须对照权威注本。
  7. 许可核查:商用前逐项核对——chinese-poetry(MIT,可商用)/ GuwenBERT(Apache-2.0,可商用)/ gelv-poetry(MIT)/ 殆知阁(无统一许可,禁商用再分发) / AnandaSky(CC BY-NC,禁商用) / 九歌系(学术用途);不确定的标"许可待确认",不得默认可用。
  8. 不代调用、不绕过限制:CTEXT 等外部 API 只给代码示例,实际调用与配额消耗由用户决定;遇限流即停,禁止换 IP/多 key 绕过。
  9. 长任务后台跑:整库归一化、全量索引重建、整本断句/NER 均为分钟~小时级,放后台并轮询进度,不阻塞交互;开始前告知预估耗时。
  10. 版本回查:本文基线为 2026-11-11 核对;安装/升级前回查 GitHub Releases 与 HF 模型卡,特别是标注"未核实"的许可项(couyun / fangcun / sikubert / 文言翻译模型 / 九歌)。

6. 与其它分册的接口

需求 去哪本
分词/HanLP/Ollama/Dify/RAGFlow 安装与参数 AppDocs\NLP\README.md
扫描件、影印本、竖排繁体 OCR AppDocs\OCR\README.md(PaddleOCR + 自写列排序)
诗词朗读/古文有声书(TTS) AppDocs\TTS\README.md
国风插画、诗词配图 AppDocs\ArtGen\README.md
青少年编程教学(诗词小工具) AppDocs\YouthCoding\README.md(待建:Scratch/Python 调本地服务)