外观
多语言、地区规则与跨章节一致性
1. 解决什么问题
同一中文教材在不同地区使用时,译名、人物设定和内容禁忌需要保持一致。仅让模型“适合当地文化”难以复现和测试,因此本项目把可明确表达的要求做成带版本的规则,并保留教研复核入口。
2. 原理与术语
本地化不仅是翻译,还包括目标受众和地区语境。canonical facts 表示约定事实,例如人物年龄;规则快照记录某次生成采用的标准。资料事实与强制规则不同,后者必须显式加载,不能依赖向量检索偶然命中。
3. 输入输出与执行
Request 支持 en、ar、zh 目标语言与两位地区代码。Rules 包含 region、version、forbidden、terminology、characters。业务检查返回 Issue,指出违反的规则、位置和修订要求,而不是只给一个“文化评分”。
4. 容易混淆
术语检查当前是显式字符串映射,文化检查是禁用表达匹配;它们不是通用文化审查。资料里的语言字段表示适用目标语言。规则按地区保存,没有自动推断民族、宗教或个人偏好的能力。
5. 最小示例
python
from app.content import business_review
lesson={"title":"示例","chapters":[{"id":"c","title":"章","blocks":[
{"id":"b","kind":"lesson","text":"阿里喜欢观察","translation":"Ali observes","answer":""}]}],
"facts":[{"key":"character.ali.age","value":"9"}],"sources":["s"]}
rules={"region":"SA","version":1,"forbidden":[],"terminology":[],
"characters":[{"key":"character.ali.age","value":"8"}]}
issues=business_review(lesson,rules,[{"id":"s"}],[],"en")
assert any(i['category']=='consistency' for i in issues)样例还会报告缺少词汇和练习,这是完整业务检查的正常输出,不应只取其中一项就误称教材合格。
6. 实际实现
book_facts 读取同一 book_id、region 的其他任务最新已批准版本,把其 facts 作为跨章节依据。business_review 比较已存在事实键的值。它不从任意自然语言抽取事实,也不报告所有缺失键;正文说九岁而 facts 写八岁,仍可能需要真实模型或人工发现。
7. 源码位置
阅读 system/app/retrieval.py::get_rules/put_rules、content.py::book_facts/business_review、graph.py::context/human。规则更新要求版本增加,教材保存使用时的快照;人工批准前会重新检查其他已批准内容的事实。
8. 取舍与边界
确定规则可解释且便于回归,但覆盖面有限。示例术语为空;实际填充术语时必须适配任务目标语言,不能把同一英文映射机械用于阿语任务。需要更复杂本地化时,可按地区和语言细分规则,再让教研维护版本与例外。
9. 实验与验收
在 system 目录检查规则,并创建阿语任务:
bash
curl -s -H "X-API-Key: ${LAB_API_KEY:-}" http://127.0.0.1:8000/api/rules
curl -s -H "X-API-Key: ${LAB_API_KEY:-}" -H 'Content-Type: application/json' \
-d '{"theme":"校园生活","target_language":"ar","region":"SA","scenario":"normal"}' \
http://127.0.0.1:8000/api/jobs验收检查目标语言字段、阿语资料来源与规则快照,人工阅读译文。演示模板中的主题可能仍含中文,不能据此声称完成专业阿语本地化;真实效果需母语教研核验。
10. 故障排查
译文空缺查 translation;术语误报查规则适用语言;跨章节冲突查 book_id、region、批准版本与 facts。规则更新后历史内容不自动重写,重新制作时要确认使用的规则版本。
11. 面试题与追问
问:怎样保证跨章节一致? 当前对结构化事实做值比较,并记录依据版本。追问:能发现所有人物矛盾吗? 不能,未抽取到 facts 的叙述可能漏掉。再追问:下一步如何扩展? 先建立人工标注的一致性用例,再增加事实抽取与证据定位,避免无依据扩大能力描述。
STAR 应用:假设实验场景,R 为应核对的证据
| 对应 | S:情境 | T:目标 | A:行动 | R:验收证据 |
|---|---|---|---|---|
| 主问 | 人物年龄跨章节不同 | 保持约定事实 | 查询同book与地区已批准facts | 输出期望值、实际值和依据版本 |
| 追问一 | 矛盾只出现在正文 | 明确检查边界 | 区分结构facts与自由叙述 | 标记可能漏检,交给模型或人工核对 |
| 追问二 | 需要扩展语义一致性 | 避免先承诺再堆模型 | 标注用例并增加事实抽取证据 | 用误报漏报比较新方案 |
这些是设计讨论的参考表达,实际执行前不能改写为已取得的历史成果。
12. 官方资料与版本
JSON Schema 对象、LangGraph 持久化。核验日期 2026-11-03。规则与事实检查是本项目业务设计,不是上述框架自动提供的文化适配能力。