Skip to content

AI 在实施工作中的应用总结

一、 项目背景

需要实施的场景

  1. GIS 空间数据处理涉及到大量InSAR数据,并且需要和既有GIS数据进行空间匹配,获取属性
  2. 原始表单数据检查和处理
  3. 后台大规模数据同步
  4. 其它预设接口图、InSAR出图等

核心挑战

  1. 数据“脏”且深:原始数据常以多层嵌套 JSON 或不规范、非结构化的 Excel 表格呈现。
  2. 工具分发:业务人员的电脑往往没有安装python\NodeJS等开发环境,且无法连接外网。
  3. 业务系统逻辑差异:需在确保核心功能可靠的前提下,根据各系统的特性实现可配置化的数据处理操作。

实施工具的核心功能

  1. 读取多源数据:MySQL/PostgreSQL/Excel/CSV/JSON
  2. 数据检查:数据是否符合要求,例如字段是否符合规范,数据是否重复,数据是否符合逻辑等
  3. 数据清洗:数据清洗,例如去除重复数据,去除不符合要求的数据,去除不符合逻辑的数据等
  4. 数据同步:数据同步,将清洗后的数据同步到目标系统

二、 选择合适的使用层级

根据工作量、共享需求及环境限制,我们将 AI 的使用精细化为三个层级,以平衡“开发成本”与“使用效率”:

使用层级适用场景核心技术手段
L1: 原子任务临时查询、一次性表格处理;本地环境齐全。SQL, 正则表达式, Excel公式,一次性Node.js/Python脚本
L2: Standalone 工具中等规模数据清洗;需要前端 UI 交互;需以单文件形式分发给同事;API支持跨域调用或有本地代理。HTML + Vanilla JS, Handsontable
L3: 封装应用/Tauri高频核心工具;需要操作本地文件/网络;需分发给没有开发环境的非技术人员。Tauri, Rust (打包为独立可执行的桌面端应用)

三、 实际使用例

1. 原子任务级 (L1):快速实现

  • 数据库同步与清洗脚本 (local_scripts/)
    • Doris 批量迁移与直传 (batch_migrate_doris.py, excel_to_doris_direct.py, dorisup.py):快速实现将大批量本地 Excel 或 CSV 数据直接流式上传或同步至 Doris,包含表结构自动映射与清理逻辑。
    • DDL 清理与导出 (clean_doris_ddl.py, export_doris_ddl.py):解析并规范化 Doris 库的 DDL 建表语句,去除繁杂的冗余注释和分区定义,动态生成标准配置。
    • 大文件流式导入 PG (stream_excel_to_pg.py):对于 GB 级的超大 Excel 数据(如 InSAR 原始时序表),通过流式分块读取,在低内存占用下批量打入 PostgreSQL 数据库。
  • InSAR 空间数据处理与可视化 (insar-to-tiff/)
    • InSAR 栅格化转换 (insar2tif.py, insar2png.py):将包含地理坐标(WKT/经纬度)与形变速率的 InSAR 文本/CSV 数据,利用 Python 空间库转换为标准的 TIFF 地理栅格图像和可视化的 PNG 图层。
    • 静态数据轻量化提取 (insar-to-static-json.py, export_thinned_json.py):对包含数百万点位的 InSAR 原始数据集进行抽稀、降噪过滤,并转换为适合前端快速渲染的静态 JSON 格式。
    • 批量图层渲染 (tif2png_batch.py):批量将 TIFF 遥感数据裁剪并染色输出为适用于 WebGIS 底图叠加的高清 PNG。

2. 独立工具级 (L2):前端交互式 Standalone 工具 (HTML + JS)

  • Doris 数据同步编辑器 (local_pages/doris_handsontable.html):利用 Handsontable 构建类似 Excel 的前端界面,解决大批量数据的粘贴、实时行校验和过滤,实现高效清洗和同步。
  • 数据长宽表转换工具 (local_pages/data_pivot_tool.html):将业务导出的宽表数据转换为规范的长表格式,便于后续入库和处理。
  • 图片背景移除工具 (png-remove-bg.html):提供轻量化的前端图片处理能力。
  • 高级数据对比工具 (handsontable_advanced_diff.html):基于 Handsontable 实现复杂数据表间的差异对比,辅助审核修改内容。
  • 病害参数导入工具 (disease_param_importer.html):实现了导入前根据 Tree JSON 校验分类路径有效性的前置逻辑,确保数据准确。
  • 数据巡查指标计算器 (tocc_inspection_data_collector.html):通过异步并发请求获取数据,前端计算并生成路况覆盖率等指标导出报表。

3. 应用与封装级 (L3):突破环境与性能

  • Doris上传工具Tauri桌面端应用 (doris-tauri)
    • 业务逻辑:将数据同步和转换等单页面工具深度整合为桌面应用,直接操作系统原生功能。
    • AI 贡献:AI 协助编写了 Rust 后端逻辑,打通了本地文件 I/O 权限,并且彻底规避了浏览器环境下请求外部 API 复杂的跨域(CORS)与认证问题,极大提高了大体量数据同步的性能。

四、 提高使用效率的方法和注意点

1. 核心协作流程:“四步法”

  1. 样本驱动 (Sample-First)
    • 做法:直接给 AI 一段真实的 JSON 原始样本,而非描述。
    • 感悟:样本是最好的 Prompt,它能让 AI 自动识别属性名、层级和特殊字符。
  2. 防御性 Prompt (Defensive Prompting)
    • 要求:显式要求处理 null、空数组、非法路径及特殊编码格式。
    • 目标:直接生成“生产级”代码,而非仅在理想状态下运行。
  3. 渐进式重构
    • 流程:先让 AI 写核心映射算法 -> 再写 API/文件读写逻辑 -> 最后套 UI。
    • 价值:确保每一个环节的逻辑都是可验证的,避免一次性生成上百行无法调试的代码。
  4. 双向复核 (Validation Loop)
    • 技巧:要求 AI 在生成代码的同时,配套 2-3 个单元测试用例,在正式操作生产库前先输出“预览结果”。

2. 避坑指南与质量把控

IMPORTANT

  • 性能陷阱:在处理大数据集时,AI 默认可能写出嵌套循环。必须明确指令:“请使用 Map 或对象索引以保证 O(n) 的复杂度”。
  • 精度丢失:在 CSV/Excel 导出中,必须强调 float_format='%.2f' 等格式控制,避免 AI 为了“简洁”而四舍五入。
  • 环境感知:明确告知 AI 你的代码运行环境(浏览器 vs Node vs Tauri),这直接决定了它推荐的 API 是否可用。

TIP

协作哲学:人的价值在于“决策”与“边界” AI 是强大的配对程序员,但它没有业务全局观。作为实施者,你的核心工作是:定义业务边界、识别潜在风险(如数据冲突)、以及对 AI 生成的“黑盒”逻辑进行最后的质量审判。

Credit @Wayne19980