ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

从文本分类到批量处理:基于 AtomGit 智能体的文本规范化工具开发实践

从文本分类到批量处理:基于 AtomGit 智能体的文本规范化工具开发实践

一键开通华为云码道 CodeArts 代码智能体: https://developer.huaweicloud.com/codeartsco.html?source=dmzntgwatomgit1&sourcead=dmzntgwatomgithd

一、项目背景

在上一篇实践中,我们借助 AtomGit 智能体开发了一个轻量级文本智能分类工具,实现了对输入文本进行分类整理的基础功能。

不过,在日常使用过程中,除了文本分类之外,还有许多常见的文本处理需求。例如,复制网页内容后可能存在多余空格和空行;整理资料时,可能需要统一标点、删除重复行;处理较长文本时,也可能需要快速统计字数和行数。

如果完全依靠人工操作,不仅效率较低,而且重复性较强。

因此,本文继续基于轻量级文本处理的思路,开发一个文本规范化工具。该工具能够对用户输入的文本进行基础清理、格式统一、重复行处理和文本统计,帮助用户快速完成常见的文本整理任务。

本项目继续采用简单的前端实现方式,不需要额外搭建服务器或配置数据库,主要通过 AtomGit 智能体完成项目创建、代码编写和功能完善。

二、项目功能设计

本次项目以“操作简单、功能实用、处理结果可控”为设计原则,主要实现以下功能。

功能模块具体说明
文本输入支持粘贴或输入多行文本
空白清理清理行首、行尾空格,并支持整理多余空行
重复行处理支持删除完全相同的重复行
标点规范化提供可选的中英文标点转换功能
文本统计统计字符数、非空行数和总行数
结果展示将处理后的文本展示在独立区域
复制与清空支持复制处理结果和清空内容

为了避免过度开发,本次不加入用户登录、云端同步、复杂文本编辑器或第三方接口。所有处理均在浏览器端完成,用户可以根据需要选择不同的处理选项。

需要注意,标点转换和重复行删除都可能改变原始文本的含义或结构,因此应采用可选操作,并允许用户查看处理结果后再决定是否使用。

三、开发环境与项目准备

本次实践使用 AtomGit 平台及其智能体功能。

平台地址:AtomGit - 全球开发者的开源社区,开源代码托管平台

进入平台后,打开上一篇使用的项目工作区。如果上一篇项目已经完成并保存,可以在原项目中继续迭代;如果希望保留上一篇的稳定版本,也可以新建分支或创建独立项目副本。

本次开发优先使用原生 HTML、CSS 和 JavaScript,避免引入不必要的框架和依赖。

整个开发过程主要分为四个步骤:

  1. 明确新增功能及其处理规则。

  2. 让 AtomGit 智能体分析现有项目。

  3. 让智能体直接修改代码并补充功能。

  4. 启动应用,逐项检查文本处理结果。

四、利用 AtomGit 智能体完善项目

4.1 先分析现有项目

为了避免智能体重新生成项目并覆盖上一篇已经完成的内容,首先需要让它分析当前工作区。

在智能体对话区域输入以下提示词:

项目分析提示词:

请先检查当前工作区中的项目文件,不要立即重写整个项目。 我准备在现有文本处理项目的基础上,增加文本规范化和批量处理功能。 请先分析: 1. 当前项目使用的技术栈和入口文件。 2. 当前页面的结构和样式。 3. 已有文本输入、输出和按钮功能。 4. 现有代码中可以复用的部分。 5. 新增功能可能涉及的文件和兼容性问题。 请先输出简洁的分析报告和修改计划,再开始开发。 要求保留当前项目已有的有效功能,不要清空数据、删除无关文件或随意更换技术栈。如果现有项目并不具备预期的某项功能,请以实际代码为准,不要假设它已经实现。

智能体完成分析后,检查其报告是否符合当前项目实际情况,再继续下一步。

分析过程:

分析结果:

4.2 让智能体实现文本规范化功能

接下来输入本次开发的核心提示词。

项目开发提示词:

请直接在当前工作区中实现一个完整的“文本规范化工具”。 优先沿用当前项目的技术栈和页面风格。如果当前项目结构简单,请优先使用原生 HTML、CSS 和 JavaScript,不要引入不必要的依赖。 具体要求如下: 一、文本输入与输出 1. 页面提供原始文本输入区域。 2. 页面提供独立的处理结果区域。 3. 用户可以粘贴多行文本。 4. 点击处理按钮后,根据已选操作生成结果。 二、文本清理功能 1. 提供清理每行行首和行尾空格的功能。 2. 提供整理连续空行的功能。 3. 提供删除完全重复行的功能。 4. 提供中英文标点转换选项。 5. 每项处理操作都应允许用户单独启用或关闭。 6. 不要默认删除可能具有实际意义的内容。 三、文本统计功能 1. 显示总字符数。 2. 显示总行数。 3. 显示非空行数。 4. 处理结果变化后,统计信息应及时更新。 5. 明确统计规则,避免空文本出现异常数值。 四、交互功能 1. 提供“开始处理”按钮。 2. 提供“复制结果”按钮。 3. 提供“清空内容”按钮。 4. 当输入为空时给出明确提示。 5. 复制成功或失败时显示相应反馈。 6. 处理结果应当可以直接选中和复制。 五、页面设计 1. 使用简洁、现代的页面布局。 2. 合理安排输入区、处理选项区、统计区和结果区。 3. 保持按钮名称清晰,避免页面拥挤。 4. 页面应适应常见桌面浏览器窗口。 六、代码质量 1. 代码结构清晰,必要位置添加注释。 2. 不要将用户输入未经处理直接作为 HTML 插入页面。 3. 文本转换必须按照明确规则执行,不要声称具有无法实现的语义理解能力。 4. 不需要后端服务、数据库或外部 API。 5. 不要只输出代码示例,请直接创建或修改当前工作区中的实际文件。 完成后,请检查项目文件和主要功能逻辑,告诉我修改了哪些文件、如何运行,以及哪些测试需要我在浏览器中实际完成。 如果环境不支持实际运行或测试,请如实说明,不要声称已经通过实际测试。

这段提示词将功能范围限定在常见文本处理操作中,能够减少不必要的开发复杂度,同时要求智能体直接修改当前项目。

修改结果:

4.3 检查生成的文件

等待智能体完成后,检查它是否正确创建或修改了项目文件。

重点关注:

  • 输入区域和结果区域是否独立。

  • 文本清理选项是否可以单独选择。

  • 重复行删除是否真正实现。

  • 字符数、总行数和非空行数是否会更新。

  • 复制和清空按钮是否具备实际功能。

  • 是否保留了上一篇已有且仍然需要的功能。

如果智能体只生成了代码片段,没有写入项目文件,可以继续要求它将代码写入当前工作区,并提供明确的运行方式。

五、运行应用并验证功能

5.1 启动项目

按照智能体给出的运行说明启动应用。

如果项目采用原生 HTML、CSS 和 JavaScript,通常可以直接使用浏览器打开入口 HTML 文件。如果项目使用其他技术栈,则按照实际生成的项目配置启动。

应用启动后,先确认页面能够正常显示,再进行功能测试。

更新效果:

5.2 测试空白清理功能

在输入区域粘贴以下测试文本:

项目进度汇报 项目进度汇报 本周完成了页面设计。 下周继续进行功能测试。

启用“清理行首和行尾空格”以及“整理连续空行”选项,点击“开始处理”。

检查结果是否符合预期:

  • 每行首尾多余空格被清理。

  • 连续空行得到合理整理。

  • 正常文本内容没有被意外删除。

注意,整理空行不应简单地删除所有换行符,否则会影响文本的段落结构。

处理结果:

5.3 测试重复行删除功能

在输入框中输入:

会议安排 项目进度 会议安排 任务分工 项目进度

启用“删除重复行”选项后执行处理。

预期结果为:

会议安排 项目进度 任务分工

该功能应保留第一次出现的行,并删除后续完全相同的重复行。

如果两行内容存在差异,例如前后空格不同,是否将它们视为重复内容,应由项目采用的处理顺序和规则决定。建议先执行空白清理,再进行重复行删除,以获得更一致的结果。

测试结果:

5.4 测试文本统计功能

输入一段包含多行内容的文本,检查页面显示的统计信息。

本项目建议采用以下统计口径:

  • 总字符数:统计处理后文本中的字符数量,并明确是否包含空格和换行符。

  • 总行数:按文本中的换行结构统计行数。

  • 非空行数:统计去除首尾空白后仍然包含内容的行数。

不同项目可能采用不同的字符统计口径,因此界面应尽量保持说明清晰。如果使用 JavaScript 的字符串长度进行统计,需要注意部分特殊 Unicode 字符的长度计算方式与用户直观理解的“字符个数”并不完全相同。

5.5 测试复制和清空功能

完成文本处理后,点击复制按钮,将结果粘贴到文本编辑器中,确认复制内容与页面结果一致。

然后点击清空按钮,检查输入区域、结果区域和统计信息是否正确重置。

如果复制失败,应显示失败提示;如果输入为空,则不应生成无效的处理结果。

清空效果:

六、核心实现思路

本项目主要包含三个处理环节。

6.1 读取原始文本

应用通过输入区域获取用户提供的文本,并根据所选选项确定本次需要执行的处理操作。

如果输入内容为空,则显示提示信息,不继续处理。

6.2 按顺序执行文本处理

不同操作之间可能存在先后关系。例如,先清理行首和行尾空格,再删除重复行,可以减少因格式差异导致的重复判断问题。

因此,处理流程可以按照以下顺序设计:

  1. 获取原始文本。

  2. 根据选项清理行首和行尾空格。

  3. 根据选项整理连续空行。

  4. 根据选项执行重复行删除。

  5. 根据选项进行标点转换。

  6. 生成最终结果并更新统计信息。

实际顺序可以根据需求调整,但应保证每项操作的规则清晰,并且用户能够理解处理结果。

6.3 更新结果与统计信息

文本处理完成后,系统将结果显示在独立区域,并根据处理后的文本更新统计数据。

复制功能只负责复制最终结果,不应修改原始文本;清空功能则需要同步重置输入、输出和相关统计状态。

通过这种方式,可以在不引入复杂框架的情况下,实现一个具备基本交互能力的文本处理应用。

七、开发中需要注意的问题

7.1 重复行判断不准确

如果没有统一文本清理规则,内容相同但格式不同的行可能被判断为不同内容。

可以先清理首尾空格,再进行重复行判断,并明确是否区分大小写。

7.2 标点转换影响原始内容

中英文标点转换并不总是适用于所有文本。例如,代码、网址或特定格式的内容可能不适合进行标点替换。

因此,标点转换应作为可选操作,而不是默认修改所有输入内容。

7.3 字符统计与预期不一致

字符数、行数和非空行数的统计方式不同,可能导致用户认为统计结果存在差异。

应明确每个指标的定义,并使用固定测试文本验证统计结果。

7.4 按钮能够显示但不能正常工作

页面外观正常并不意味着功能已经完成。需要逐个点击处理、复制和清空按钮,并检查结果是否符合预期。

如果智能体无法直接运行浏览器,应由开发者手动验证实际效果,不应将代码生成完成直接视为测试通过。

八、项目总结

本文在轻量级文本处理的基础上,进一步开发了一个文本规范化工具,实现了空白清理、重复行处理、标点转换和文本统计等常见功能。

通过明确的提示词,AtomGit 智能体可以协助完成项目文件创建、代码编写和基础检查,减少手动开发的工作量。

与需要复杂环境和外部服务的应用相比,本项目结构简单,功能边界明确,适合用于展示 AI 智能体辅助开发的实际流程。

同时,文本处理工具也说明了一个重要问题:自动化操作并不意味着所有结果都一定正确。对于可能改变原始文本含义的操作,应提供明确选项,并让用户能够检查处理结果。

后续还可以考虑增加文本差异对比、常用格式模板或 TXT 文件导出等功能。但在第一阶段,优先保证现有操作简单、可靠且容易验证即可。

对于希望使用 AtomGit 智能体快速开发轻量级应用的开发者而言,这种从明确需求出发、让智能体完成实现、再通过真实操作进行验证的开发方式,具有较强的实践参考价值。

项目地址:MeetingSummary:在日常学习、团队协作和项目推进过程中,会议能够帮助成员明确工作目标、交流意见并安排后续任务。但会议结束后,原始记录往往比较零散,包含大量口语化表达,需要进一步整理才能形成清晰、规范的会议纪要。 如果每次都手动整理,不仅耗费时间,也容易遗漏待办事项、负责人和截止时间等关键信息。 针对这一问题,本文尝试借助 AtomGit 智能体开发一个轻量级的会议纪要整理工具。用户只需粘贴原始会议记录,系统就可以按照统一模板进行整理,并尝试从文本中识别待办事项。 - AtomGit

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进