116 lines
4.6 KiB
Markdown
116 lines
4.6 KiB
Markdown
# aura-ppt 内容保真规则(Content Fidelity Rules)
|
||
|
||
> 灵感来源:7牛AI PPT"保持原文"模式(内容保真实测最优)。
|
||
> **最高原则:AI只负责结构、排版、设计,绝不改写用户的数据与术语。**
|
||
|
||
## 为什么内容保真如此重要
|
||
|
||
对日外包场景的汇报材料通常包含:
|
||
- 客户合同的精确数字(工数、单价、納期)
|
||
- 测试结果数据(欠陥検出率、テストケース数)
|
||
- 日本客户的专业术语(仕様書、結合テスト、納品物)
|
||
- 法律/合规条款原文
|
||
|
||
**任何一处数字被"润色",都可能造成客户信任危机或合规问题。** 这正是我们把内容保真设为最高优先级的原因。
|
||
|
||
## 保真规则(按优先级排序)
|
||
|
||
### R1. 数字逐字符保留
|
||
|
||
用户提供的任何数值在最终PPT中必须**逐字符一致**:
|
||
|
||
```
|
||
输入: 96.8% 输出: 96.8% ❌ 禁止: 约97% / 近97% / 96.8%左右
|
||
输入: 23.6% 输出: 23.6% ❌ 禁止: 24% / 23% / 约24%
|
||
输入: ¥5,000万 输出: ¥5,000万 ❌ 禁止: 5000万 / ¥5000万 / 数千万
|
||
输入: 3.14 输出: 3.14 ❌ 禁止: 3 / 3.1 / π
|
||
输入: 2024年3月 输出: 2024年3月 ❌ 禁止: 2024年Q1 / 2024年 / 去年3月
|
||
```
|
||
|
||
### R2. 术语原样保留
|
||
|
||
专有名词、产品名、客户名、日文术语**不得意译、不得替换、不得加释义**:
|
||
|
||
```
|
||
输入: テスト仕様書 输出: テスト仕様書 ❌ 禁止: 测试规格书 / 测试规格说明书
|
||
输入: 要件定義 输出: 要件定義 ❌ 禁止: 需求定义(除非用户明确要求双语)
|
||
输入: [顧客A] 输出: [顧客A] ❌ 禁止: 客户A / 甲方 / 某客户
|
||
输入: SAP ERP 输出: SAP ERP ❌ 禁止: SAP / 企业资源计划系统
|
||
```
|
||
|
||
### R3. 引用与条款原文保留
|
||
|
||
用户提供的引用、条款、数据来源标注,**一字不改**,包括标点:
|
||
|
||
```
|
||
输入: 「納品物とは、要件定義書、設計書、テスト仕様書及びプログラム一式をいう。」
|
||
输出: 必须逐字呈现(含「」与日文标点)
|
||
```
|
||
|
||
### R4. 结构可重组,内容不可改写
|
||
|
||
允许:
|
||
- ✅ 重新分页、分组、调整层级(把5个要点分到2页)
|
||
- ✅ 提炼副标题、加导航性文字("本章节将说明…")
|
||
- ✅ 调整顺序(按逻辑重排用户内容)
|
||
|
||
禁止:
|
||
- ❌ 改写用户句子含义(保持原意是底线)
|
||
- ❌ 合并/拆分用户数据点
|
||
- ❌ 为"更简洁"删除用户的限定词(如"约"、"可能"、"部分")
|
||
- ❌ 补充用户未提供且无依据的数据
|
||
|
||
### R5. AI补充内容必须区分
|
||
|
||
LLM为连接上下文而生成的新内容(过渡句、总结、建议),必须与用户内容可区分:
|
||
- 方式1:加 `[AI补充]` 前缀(用户可见时)
|
||
- 方式2:放入演讲者备注(notes字段),正文只放用户内容
|
||
- 方式3:内容基调明显不同(如"本章总结"这类导航句)
|
||
|
||
**推荐方式2**:正文保真,AI的加工藏在备注里。
|
||
|
||
## 实施机制
|
||
|
||
### 渲染引擎内置检查(--verify)
|
||
|
||
```
|
||
验证流程:
|
||
1. 从 plan.json 提取所有源数字(正则: -?\d+[\d,]*\.?\d*\s*[%%]?)
|
||
2. 从输出PPTX提取全部文本
|
||
3. 逐一比对:每个源数字必须出现在输出文本中
|
||
4. 术语检查:含中日文字符的长片段(≥6字符)必须原样出现
|
||
5. 任何缺失 → 验证失败 → 返回缺失清单
|
||
|
||
运行:
|
||
python scripts/engine.py --verify output.pptx --plan plan.json
|
||
```
|
||
|
||
### 流程保障
|
||
|
||
1. **plan.json 是唯一内容源**:渲染引擎只读 plan.json,不产生任何内容
|
||
2. **LLM只负责规划**:LLM把用户内容结构化进 plan.json,不改写内容本身
|
||
3. **渲染零改写**:engine.py 是纯渲染器,代码中不存在任何文本改写逻辑
|
||
4. **生成后必验证**:每次生成自动跑 --verify,偏差立即报告
|
||
|
||
## 常见违规与正确做法
|
||
|
||
| 场景 | 错误(违规) | 正确 |
|
||
|---|---|---|
|
||
| 数字美化 | 32个数据点"96.8%"→"约97%" | 96.8% 原样 |
|
||
| 术语翻译 | 要件定義→需求定义 | 要件定義(除非用户要求双语) |
|
||
| 删除限定 | "部分系统不支持"→"系统不支持" | 保留"部分" |
|
||
| 补数据 | 用户没说→AI加"市占率30%" | 不添加无依据数据 |
|
||
| 简化条款 | 合并两条合同条款 | 逐字呈现 |
|
||
|
||
## 与"AI辅助"的边界
|
||
|
||
内容保真 ≠ 拒绝一切AI加工。AI可以:
|
||
- ✅ 优化组织(分页、分组、加导航)
|
||
- ✅ 补充演讲者备注(notes)
|
||
- ✅ 生成目录、章节标题、过渡句(明确为AI补充)
|
||
- ✅ 设计排版(字色、字号、图表类型)
|
||
|
||
AI不可以:
|
||
- ❌ 改用户的数据、术语、引用、限定词
|
||
- ❌ 编造用户未提供的信息
|