[TOC]

# 无纸化表单

## 1. 介绍

将原有纸质填报的Excel表单，通过低代码在线业务设计，转化为在线无纸化填报，实现效率提升。

## 2. 工作流程

通过用户原有的Excel表单，上传到线上进行AI解析（调用硅基流动的视觉模型），生成元数据的Json，这些Json会被Guns低代码设计器识别，
识别后，会将元数据转化为低代码的数据表、表单、视图。

之后就可以用低代码的流程去进行这个Excel表单的CRUD，从而实现无纸化。

![](images/b6a683a1.png)

## 3. 准备工作，大模型秘钥申请

目前使用的硅基流动的大模型，也可以考虑使用其他第三方的大模型，具体用的qwen2.5的视觉模型（Qwen/Qwen2.5-VL-72B-Instruct）

在硅基流动官网（[https://siliconflow.cn/](https://siliconflow.cn/)）注册一个号，创建一个秘钥。

![](images/e4bce723.png)

将秘钥复制后，设置到配置类`AiConstants`中，如下：

![](images/4eca385a.png)

## 4. 表单生成过程

### 4.1 创建业务

和之前创建业务流程一样，先打开业务设计，创建一个业务。

![](images/f4df9f34.png)

本次开发新增了权限配置：

![](images/3ced1f2d.png)

![](images/674eeb1f.png)

### 4.2 上传Excel文件

创建好业务后，点击业务卡片上的 “基于Excel初始化”，进入到无纸化表单创建界面。

![](images/938c22b6.png)

![](images/ec6c093a.png)

### 4.3 转化Excel为图片

然后点击下一步后，会看到程序会将Excel识别为一个图片，以供视觉模型解析用。

![](images/8ac36b70.png)

### 4.4 AI识别图片并分析

点击下一步，进入到AI识别Excel的界面，开始调用硅基流动的视觉模型进行分析。如下所示：

![](images/3801fa1c.png)

点击“详情”按钮，可以看到AI正在识别元数据的信息，会有一个抽屉展示元数据的信息，如下：

![](images/0188322c.png)

生成成功后，会提示成功，点击立即查看会跳转到业务设计界面，查看数据表、表单、视图和Excel表格信息。

![](images/015e8c77.png)

如果解析过程中有错误， 会进入到错误提示界面，可以点击查看错误日志进行错误查看。

![](images/b4556087.png)

### 4.5 查看业务

AI识别完成业务后，会自动生成表、表单、视图和Excel信息如下：

![](images/2e4be672.png)

### 4.6 开始填报

打开前台应用的数据填报菜单，点击“填报”按钮，即可进入到填报界面。

![](images/5efc38c6.png)

![](images/4a21ddcb.png)

填完数据后，点击“查看记录”按钮，可以查看到，填报的记录。

![](images/c3b08af6.png)

## 5. 程序设计思路

无纸化低代码本次开发的代码基本都在filing这个包下。

![](images/ac0dea3c.png)

AI解析图片的核心接口在AiDesignProcessController这个类中。

![](images/3315c385.png)

接口会返回一个流式的Flux<FluxResponse>类，Flux的返回过程中，可以推送各种标识给前端，前端从而知道实时的进度。

![](images/905ffbaa.png)

整个实现的过程有两大部分组成：1-AI解析Excel图片的内容，2-将解析的元数据结构，转化为Guns低代码能识别的属性。

![](images/6004426c.png)

### 5.1 AI解析图片

AI解析图片目前调用的硅基流动的接口，使用的Langchain4j的框架，在这一步AI解析图片过程，其实就是提示词的装配，以及如何把图片喂给大模型，同时设置温度这些重要参数。

![](images/b26ed561.png)

提示词的设计非常规范和详细，制定了当前AI要帮我们做哪些事情，并且用什么样子的格式返回。

![](images/b9040706.png)

同时温度的设置非常重要，如果是类似代码生成类似任务，设置为0-0.1合适。

### 5.2 元数据转化和保存

进入到saveParseResultToModel方法，整个过程可以看到，在进行元数据的转换，转换为Guns能识别的表、表单、视图的信息。

整体过程大致分为：
1. 创建解析日志。
2. 开始调用大模型解析图片。
3. AI返回JSON流
4. AI返回JSON流结束。
5. 清空当前业务模型准备创建新模型。
6. 创建本次生成的业务模型。
7. 创建表单信息
8. 创建create table，并执行
9. 创建视图

![](images/dcbdfbf6.png)

