前言

人工智能(Artificial Intelligence,AI)工具已经进入产品开发过程。能够读取工程并调用开发工具的AI软件,本书称为AI开发智能体。初学者可以借助这类工具分析需求、比较方案、编写程序和设计测试。工具降低了部分实现工作的难度,也提高了工程管理的要求。学生不仅要知道代码如何形成,还要说明代码为何改变。代码的变化、验证和恢复也应有据可查。

《Git工作流与开源工程》围绕这些问题展开。本书把Git放在真实产品开发过程中讲解。版本控制不是孤立的命令练习。它是记录产品变化、组织人机协同、开展团队评审和形成发布版本的工程基础。

本书所称物理AI产品,是能够感知物理环境、完成智能判断并产生用户结果的产品。智能声音识别通知器和智能感知终端都属于这一类产品。

早期项目常用文件副本保存不同版本。多人协作后,副本容易出现命名混乱和内容分歧。版本控制系统逐步支持历史记录、并行开发和变更合并。Git采用分布式版本库,使每个开发者都能保存完整历史。它提高了协作的可靠性,也要求学习者理解工作区、提交、分支和合并等状态。

本书培养什么能力

完成本书学习后,学生应当能够:

  1. 从课程仓库取得一个确定的项目版本,并在规定环境中复现运行结果;
  2. 使用Git观察工作区状态、检查文件差异、组织提交并恢复错误修改;
  3. 使用校内GitLab管理议题(Issue)、任务分支、合并请求、评审和发布版本;
  4. 在明确任务范围、文件范围和验证方法的条件下,与AI开发智能体协同;
  5. 把硬件、数据、模型、固件和服务端成果组织为可追踪的工程构建物;
  6. 通过自动检查、实机测试和同伴评审提高项目质量;
  7. 将课程项目整理为能够被他人理解、复现和继续开发的开源工程。

这些能力共同指向一个基本目标:

由人负责决策,由AI参与实施,由Git记录变化,由测试提供证据,将物理AI产品从可运行原型推进到可发布版本。

贯穿全书的三级项目

本书采用由小到大的三级项目。

第1—4章使用“智能声音识别通知器”。学生从校内GitLab克隆教学仓库,并在嵌入式设备上运行项目。项目链路包括声音采集、特征计算、模型推理、事件判断和消息通知。

第1章只取得并运行基线。第2章由学生手工完成一次小范围修改,并完成验证和Git提交。这两章不使用AI工具。第3章引入AI规划,第4章完成第一次受控AI变更。

第5—12章使用“智能感知终端”。项目可根据硬件条件采用佩戴式、便携式或固定式形态。学生依次完成产品边界、技术规格、端云闭环、传感器数据和模型集成。此后再完成端侧推理、测试、持续集成和开源发布,最终形成v1.0.0。

第13—18章由学生主导原创项目。学生可以改变用户问题、传感器、模型任务、设备形态和输出方式。各组仍须完成“需求—实现—验证—评审—发布”的全过程。

与另外两门课程怎样协同

实验班本学期的三门专业课共用项目背景,但各有主要职责。

《人工智能数据科学》研究数据怎样形成模型能力。该课程主要承担数据整理、标注、特征、训练、评价和优化。

《感知与异构计算系统原型》研究设备怎样完成感知、计算和通信。该课程主要承担器件、接口、驱动、嵌入式程序和端侧部署。

本书回答的是另一个问题:

人、AI和不同技术方向的成果,怎样在同一个仓库中被组织、连接、验证和发布?

本书介绍理解工程接口所必需的数据、模型和硬件知识,但不展开算法推导、电路原理和驱动实现。需要深入学习的内容,由相应课程承担。本书重点讨论版本、接口、证据和协作流程。

AI从第3章开始参与开发

课程环境使用Visual Studio Code(VS Code)、Cline和校内Qwen服务。工具名称和界面可能变化,正文着重讲解相对稳定的工作方法:

明确任务和验收条件
→ 指定AI可以读取的工程上下文
→ 审查AI提出的实施计划
→ 批准有限范围的修改
→ 检查Git差异
→ 运行自动测试和实机验证
→ 只把合格结果提交到仓库

生成式AI根据上下文计算候选输出,结果具有不确定性。它能够提高实现速度,但不能替代产品决策、事实核查和工程责任。学生必须解释进入仓库的重要变化,并对提交和合并承担责任。

怎样使用本书

本书按18周、72学时设计。每章围绕项目版本中的一个主要问题展开。正文先说明机制,再给出必要的命令和代码。章末实践要求学生形成自己的方案、记录或工程成果。

纸质教材保存稳定的工程方法。软件版本、模型地址、板卡配置和服务参数由在线资源维护。正文中的运行结论应有课程仓库、构建日志或实机记录作为依据。尚未完成的适配和测试,只能列为待办事项。

本书着重建立三项基础能力。第一,与AI共同完成受控开发。第二,使用Git说明项目变化。第三,依据测试证据判断变化是否合格。这些能力将继续支撑后续课程学习。