附录
字数
1582 字
阅读时间
7 分钟
附录A 系统主要模块功能与设计思路(框图)
A.1 系统模块框图
┌─────────────────────────────────────────────────────────────────┐
│ 前端表现层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────┐ │
│ │ 数据源配置 │ │ 目标表单配置│ │ 映射展示修正│ │结果导出 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └─────────┘ │
└───────────────────────────────┬─────────────────────────────────┘
│ HTTP/JSON
┌───────────────────────────────▼─────────────────────────────────┐
│ 后端业务层 (FastAPI) │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
│ │ 数据接入与清洗 │ │ 字段智能匹配 │ │ 表单自动填充 │ │
│ │ 服务模块 │ │ 服务模块 │ │ 服务模块 │ │
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
└───────────┼─────────────────────┼─────────────────────┼──────────┘
│ │ │
┌───────────▼─────────────────────▼─────────────────────▼──────────┐
│ 服务与数据层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│ │Excel读取 │ │SQL解析 │ │网页抓取 │ │数据清洗 │ │选项匹配│ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └────────┘ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ LangChain智能体 + 通义千问大语言模型 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ Selenium 浏览器自动化驱动 │ │
│ └────────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘A.2 模块功能与设计思路
| 模块名称 | 主要功能 | 设计思路 |
|---|---|---|
| 数据接入与清洗模块 | 读取Excel文件、SQL文件、网页表格,统一转换为DataFrame,并进行列名清理、删除空行/重复行、字符串标准化等清洗操作。 | 采用Pandas作为核心数据处理库,针对不同数据源设计专门读取工具(ExcelReadTool、SQLFileTool、WebScraperTool),清洗过程通过DataCleanerTool封装,保证数据质量。 |
| 字段智能匹配模块 | 提取源数据列信息(列名、类型、示例值)和目标表单字段信息(字段名、标签、类型、选项),调用大语言模型推理字段映射关系,输出带置信度的推荐映射。 | 基于LangChain框架构建智能体(Agent),注册analyze_source_columns和analyze_target_fields两个工具,强制模型先获取信息再推理,确保匹配准确性;失败时降级为子串规则匹配。 |
| 表单自动填充模块 | 根据用户确认的映射关系转换源数据,驱动Selenium浏览器自动打开目标网页,逐条填写表单控件(文本框、下拉框、单选/复选框等)。 | 采用四级递进定位策略(name→id→placeholder→label关联),针对下拉/复选框设计多级选项匹配(大模型→同义词→编辑距离);每条记录填充后保持浏览器打开供用户检查。 |
| 前端交互模块 | 提供可视化操作界面,包括数据源上传与预览、目标表单解析与展示、映射推荐展示与手动修正、填充执行与结果导出。 | 基于Vue.js构建单页应用,利用响应式数据绑定和条件渲染(v-if)实现步骤化引导;置信度以绿/黄/红三色标注,用户可通过下拉框调整映射。 |
| 结果导出模块 | 将填充结果数据导出为Excel或CSV文件,供用户下载保存。 | 使用Pandas的to_excel()和to_csv()方法生成文件,通过FastAPI的FileResponse返回给前端,下载后自动清理临时文件。 |
附录B 程序中的主要符号和变量说明
| 符号/变量 | 类型 | 含义 |
|---|---|---|
source_type | string | 源数据类型,取值为 "excel"、"sql"、"url" |
source_preview | object | 源数据预览信息,包含 columns、sample、shape、dtypes |
target_fields_info | array | 目标表单字段列表,每个字段含 label、name、type、options |
mapping_pairs | array | 用户确认的字段映射对列表,每个元素包含 targetName、source、confidence |
recommended_mapping | object | 大模型推荐的映射关系,键为目标字段名,值为源列名 |
confidence_scores | object | 每条映射的置信度分数,取值范围 0~1 |
temperature | float | 大模型生成随机性参数,本系统设置为 0.1 |
df | DataFrame | Pandas DataFrame,存储源数据或填充后的结果数据 |
driver | WebDriver | Selenium浏览器驱动实例,用于控制Firefox |
fields_info | array | 传递至填充模块的目标字段完整信息,辅助定位与选项匹配 |
fill_result | object | 填充执行结果,包含 success、message、filled_count |
附录C 软件使用说明
C.1 环境准备
- 安装 Python 3.10+,进入
backend目录执行pip install -r requirements.txt安装依赖。 - 在
backend目录下创建.env文件,配置阿里云百炼API Key:DASHSCOPE_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx QWEN_MODEL_NAME=qwen-turbo QWEN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 - 安装 Firefox 浏览器,并下载匹配版本的
geckodriver.exe,放置于项目根目录WebFill下。 - 启动后端服务:
cd backend,执行uvicorn main:app --reload --port 8000。 - 用浏览器打开
frontend/index.html即可使用。
C.2 使用步骤
- 上传源数据:在“上传源数据”区域选择数据来源类型(Excel / SQL文件 / 网页表格URL),上传文件或输入URL,点击“加载源数据”。系统解析后显示数据预览。
- 配置目标表单:在“目标网页表单”区域输入目标网页URL,点击“解析目标表单”。系统提取表单字段并展示。
- 获取映射推荐:点击“获取智能映射推荐”,系统调用大模型生成字段映射,以表格形式展示,并用绿/黄/红三色标注置信度。
- 调整映射(可选):用户可通过每行右侧的下拉框手动修改或取消映射关系。
- 执行填充:点击“确认填充”,系统自动打开Firefox浏览器,将源数据逐条填入目标表单。每条填充完成后浏览器保持打开,供用户检查;手动关闭浏览器后继续下一条。
- 导出结果:填充完成后,点击“导出为Excel”或“导出为CSV”下载结果文件。
C.3 注意事项
- 批量填充最多支持5条记录(可配置),超出会提示限制。
- 填充时请勿手动操作浏览器,以免干扰自动填充流程。
- 若大模型API不可用,系统将自动降级为规则匹配(子串包含),用户仍可手动调整映射。
- 目标网页加载较慢时,系统已设置超时等待(30秒),请耐心等待。