用户要求检查论文格式、对比格式要求、做格式合规性审核时触发。
向用户提问:「有没有学校/学院下发的格式要求文件,或者相关的格式说明?」
分支 A — 用户有格式要求文件
调用 Step 0a 获取文件(支持5种来源)。
分支 B — 用户没有
使用 IMA 知识库中的《论文写作格式基本要求》作为默认标准。如果知识库中也没有,则展示本 Skill 附带的默认规则清单。
| 来源 | 操作方式 |
|---|---|
| ------ | ---------- |
| 本地路径 | 用户给出服务器上的路径 → 直接读取 |
| IMA知识库 | 搜索知识库 → 获取 media_id → 调用 get_media_info → curl下载 |
| URL直链 | curl 下载到本地临时目录 |
| 粘贴内容 | 用户粘贴文本 → 直接解析为规则清单 |
| IM/邮件附件 | 从钉钉/飞书/邮件渠道下载附件 |
→ 解析为结构化规则清单(每条规则含:ID、分类、要求内容、判断方法、是否可自动化、严重度)
向用户提问:「你的论文稿件在哪里?」
同样支持上述 5种来源。
| # | 检查项 | 实现方式 | 输出格式 |
|---|---|---|---|
| --- | -------- | ---------- | --------- |
| 1 | 正文行五字以上(排除模板字段) | 按换行分割,len<5 且非模板字段 | 位置+原文 |
| 2 | 正文标点中文全角 | 正则匹配中文句中英文标点 | 位置+标记 |
| 3 | 参考文献作者完整 | 检测"等"、"et al" | 文献序号+原文 |
| 4 | 参考文献要素齐全 | 检查年份(19/20xx)、页码 | 文献序号+缺失项 |
| 5 | 参考文献标点规则 | 中文全角/英文半角+空格 | 文献序号+问题 |
| 6 | 参考文献时效性 | 统计近5年占比 | 总数+近5年数+比例 |
| 7 | 一句话超4个逗号 | 按句号分割,finditer | 位置+原文+逗号数 |
| 8 | 禁用表述 | 匹配"新冠疫情"、"疫情" | 位置+原文 |
| 9 | 口语化表达 | 匹配"大家"、"我觉得"等 | 位置+原文+建议 |
| 10 | 标题层级 | 检测一/二/三/四级标题 | 各级数量+违规 |
| 11 | 图表编号 | 检测图X/表X | 图表列表 |
| 12 | 段落结尾缺标点 | 检测正文段落结尾是否以句号等结束 | 位置+原文 |
| # | 检查项 | 提醒文案 |
|---|---|---|
| --- | -------- | ---------- |
| 1 | 表格三线式 | 选中表格 → 表格属性 → 边框和底纹 → 上下1.5磅/中间0.5磅 |
| 2 | 行距1.25倍 | Ctrl+A → 段落 → 行距 |
| 3 | 数字字母Times New Roman | Ctrl+A → 字体 → 西文字体 |
| 4 | 表格行高0.3cm | 表格属性 → 行 → 指定高度 |
| 5 | 表格与文本同宽 | 表格属性 → 宽度100% |
| 6 | 段落分布 | 目视检查,无单页一段 |
在格式检查后作为附加项输出。
检测模式:
| 特征 | 检测条件 | 示例 |
|---|---|---|
| ------ | ---------- | ------ |
| AI万能过渡句 | "在本文中"+"会在"/"用于" | "在本文中,PEST分析会在宏观环境分析部分使用" |
| 定义式句式 | "是指"/"指的是" | "差异化战略是指企业通过……" |
| 万能句式 | "本文以……为研究对象" | "本文以……为研究对象,运用……方法" |
| 过度"本研究"开头 | 句首"本研究"+"通过/运用/以" | "本研究遵循'提出问题—分析问题'的经典范式" |
| 工具定义模板 | 工具名+"是"/"由"+"提出" | "SWOT矩阵由……提出,是……工具之一" |
| 模板列举 | "一是…二是…三是…"或"首先…其次…再次" | — |
| 空洞总结 | "具有重要意义""提供了理论支撑" | — |
报告结构:
【Step 0】格式要求来源
- 使用XXX文件 / 默认《论文写作格式基本要求》
【Step 0.5】论文文件来源
- 文件名称、大小、来源
【Step 1】逐条格式比对检查
- RULE X: ✅/🔴/🟡
原文: "……"
位置: 表X-行X
问题: ……
要求: ……
【附加】AI写作痕迹检测
- 共X处
- 🟧 优先修改:每条附位置和原文
【修改建议汇总】
- 🔴 必须修改:……
- 🟡 建议修改:……
- 📌 需Word手动检查:……
核心脚本位于 scripts/check_format.py。运行方式:
python3 scripts/check_format.py --paper "/path/to/paper.docx" [--rules "/path/to/rules.json"]
如果不传 --rules 参数,使用内置的默认格式要求规则。
19\d2|20\d2re.finditer + 句号/问号/感叹号/分号分割,不要用 re.split + 零宽断言try/except 包裹可能出现错误的检查项,确保单条规则失败不影响整体检查共 1 个版本