1.1 核心特性
- 模板驱动: 基于Word模板,支持书签和占位符动态替换
- AI增强: 集成大语言模型进行内容润色和结构化提取
- JSON约束: 使用JSON Schema确保输出格式的一致性和数据完整性
- 自动化流程: 端到端的报告生成,从模板解析到文件下载
1.2 技术架构
2. 核心组件
2.1 服务层组件
AiReportConfService
报告配置服务接口,定义了报告模板管理的核心业务逻辑:- 模板上传与解析
- 配置信息管理
- 报告生成协调
AiReportConfServiceImpl
报告配置服务实现类,负责:- Word文档解析(书签、占位符识别)
- AI模型调用与结果处理
- 模板填充与文件生成
2.2 控制器层
AiReportConfController
报告管理REST控制器,提供以下API端点:| 方法 | 路径 | 功能描述 |
|---|---|---|
| POST | /aiReportConf/parse | 解析Word模板文档 |
| POST | /aiReportConf/download | 生成并下载报告 |
3. 模板管理流程
3.1 模板配置流程
步骤1: 模板文件上传
通过文件服务上传Word模板文件,支持.docx格式。
步骤2: 模板解析
使用parseDoc方法解析Word文档结构:
步骤3: 字段配置
在report_marked字段中配置JSON格式的字段映射关系。
步骤4: 模板保存
将解析后的模板信息和配置保存到数据库。3.2 模板解析功能
系统支持两种类型的占位符:- 书签(Bookmark): Word文档中的书签标记
- 占位符(Placeholder): 自定义的文本占位符
4. 报告生成流程
4.1 请求参数
AiReportCompletionsDTO
| 字段 | 类型 | 描述 |
|---|---|---|
| reportId | Long | 报告配置ID |
| model | String | AI模型标识 |
| prompt | String | 生成提示词 |
| polish | String | 是否需要AI润色 |
4.2 生成流程详解
步骤1: 内容润色(可选)
当polish参数为YES时,系统会对用户输入进行AI润色:
步骤2: 结构化数据提取
- 构建JSON Schema: 根据模板字段配置构建数据约束
- AI模型调用: 使用JSON Assistant模型提取结构化数据
- 数据修复: 使用
JSONRepairUtil.repair()修复JSON格式