AI编程实战:从JSON数据到代码的完整工程化流程
danci 项目(三):从 JSON 数据到 AI Coding,真实项目里的数据清洗、Prompt 和工程规范
在真实的软件开发项目中,引入 AI 辅助编程(AI Coding)绝非简单地调用一个 API。它是一套涉及数据预处理、指令工程和团队协作规范的系统性工程。本文将以 danci 项目的实践为例,分享我们如何将一份原始的 JSON 词库数据,通过层层加工,最终转化为 AI 能理解并高效编码的“燃料”。
一、起点:原始 JSON 数据与问题
项目的起点是一份包含单词信息的 JSON 文件。其结构清晰,但存在一些“不完美”之处:
- 数据冗余与格式不一:部分字段在不同条目中格式不统一,有些数据存在缺失。
- 缺乏上下文:对于 AI 而言,孤立的 JSON 键值对难以直接转化为有意义的代码逻辑。例如,
"wordType": "verb"需要对应具体的 TypeScript 类型定义和 UI 渲染逻辑。 - 噪声信息:部分字段可能包含对最终代码生成无直接帮助的元数据或备注。
直接将这份原始数据抛给 AI(无论是作为 Prompt 上下文还是训练样本)都无法得到精准的代码。因此,数据清洗是必经的第一步。
二、核心:数据清洗与知识提炼
我们的目标不仅是清洗,更是提炼。我们编写了一套 Node.js 脚本,负责:
- 标准化:统一
wordType、pronunciation等字段的格式与枚举值。 - 补全与过滤:根据业务规则,填充缺失的默认值,并移除对生成代码无影响的冗余字段。
- 结构化转换:将扁平化的 JSON 转换为更贴近代码数据模型的嵌套结构。例如,将
"tags": ["CET4", "academic"]转换为{ level: "CET4", category: "academic" }。
清洗后的数据变得更加“纯净”和“结构化”,为后续的 Prompt 设计奠定了基础。这个过程本身就是一个 SDD 文档驱动开发实战 的微型体现:用明确的数据规范指导后续的代码生成。
三、关键:Prompt 工程的设计与迭代
清洗好的数据需要通过 Prompt 这座桥梁传递给 AI。这里的 Prompt 设计是工程化的,而非随意的聊天。我们将其分为几个层次:
- 系统提示 (System Prompt):定义 AI 的角色(如“一个精通 React 和 TypeScript 的前端开发者”)、编码风格和必须遵守的工程规范(如使用特定的状态管理库、遵循 ESLint 规则)。
- 上下文注入 (Context Injection):将清洗后、结构化的 JSON 数据片段作为上下文,直接注入到 Prompt 中。例如:“请根据以下单词数据结构,生成一个 React 组件……”
- 任务指令 (Task Instruction):清晰、具体地描述需要生成的代码目标。指令会根据生成组件、编写单元测试、添加类型定义等不同任务而变化。
- 示例学习 (Few-shot Learning):提供 1-2 个高质量的、符合规范的代码示例,让 AI 学习我们期望的输出格式和风格。
设计 Prompt 的过程是持续迭代的。我们需要像调试代码一样调试 Prompt:观察 AI 的输出,分析不足(如类型错误、逻辑偏差),然后调整 Prompt 中的措辞、结构或提供的示例,直到输出稳定、可靠。这与确保 Agent 插件可靠落地 所需的工程化思维是一脉相承的。
四、保障:工程规范与持续集成
为了不让 AI 生成的代码成为“混乱之源”,严格的工程规范是必不可少的保障。
- 代码规范自动化:集成 ESLint、Prettier,并通过 Git Hooks 在提交前自动格式化和检查 AI 生成的代码,确保风格统一。
- 类型安全:AI 生成的 TypeScript 代码必须通过严格的类型检查。我们通过完善接口定义和类型守卫,构建了安全的“代码护栏”。
- 测试覆盖:要求并验证 AI 为关键逻辑生成的单元测试,将测试覆盖率作为评估生成代码质量的重要指标。
- 代码审查流程:AI 生成的代码必须经过与人工代码相同的 Code Review 流程。审查者不仅关注功能,更关注其是否符合项目架构、是否引入了不必要的复杂性。
将这一套数据清洗、Prompt 工程和规范审查的流程自动化、集成到开发流水线中,就形成了我们内部的 AI Coding 工作流。这显著提升了将设计稿或数据结构转化为前端页面的效率和一致性。
总结
从 danci 项目的实践看,成功的 AI Coding 依赖于三个支柱:
- 高质量的数据输入:通过自动化脚本完成从原始数据到结构化上下文的清洗与转换。
- 精心设计的 Prompt 系统:将任务、上下文、规范和示例有机结合,引导 AI 生成精准代码。
- 完备的工程化体系:用现有的开发规范和工具链来约束、验证和集成 AI 的产出,确保其可维护、可协作。
AI 不是魔法,而是强大的工具。只有将其嵌入到严谨的工程实践流程中,才能在真实项目中持续、可靠地释放其生产力。
注:本文流程中对前端组件生成的关注,也涉及到 用Lottie实现精准动效控制 等具体前端工程化问题。完整的 AI Coding 实践,是对整个开发生命周期的辅助与增强。