Skip to content

多语言、地区规则与跨章节一致性 ​

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。规则与事实检查是本项目业务设计,不是上述框架自动提供的文化适配能力。

学习复现系统 · 事实、实验与假设分开记录