返回首页

从 Bot 到 Web 系统:Excel 自动化

文章描述了将 Telegram bot 转变为仓库中处理 Excel 文件的完整 Web 系统。开发者逐步将逻辑迁移到 backend,添加了 web interface 和集成。结果:每月节省 150 小时,架构得到改进。

Bot 如何成为功能齐全的 Excel 系统
Advertisement 728x90

从Telegram机器人到可扩展Web应用:内部工具的演进之路

一位仓库损耗分析师面临一项日常任务:每天处理多个Excel文件需要5小时,每月总计150小时。这代表着巨大的时间成本。解决方案是一个MVP形式的Python Telegram机器人:用户发送文件,机器人返回处理结果。处理逻辑仍由开发者控制,无需界面。

这种方法起初有效:Telegram提供了快速访问,无需用户界面。但随着复杂度增加,局限性逐渐显现。

Telegram作为系统基础的局限性

Telegram并非设计为系统的核心。问题很快出现:

Google AdInline article slot
  • 20 MB文件大小限制阻碍了大文件上传。
  • 处理过程成为“黑箱”,无法查看状态。
  • 缺乏合适的管理界面。
  • 功能开发变得更加复杂。
  • 俄罗斯因法规导致的访问问题。

Telegram可作为入口点,但不能作为核心。解决方案是将逻辑迁移到独立后端。

逐步过渡到Web应用

过渡并非完全重构:机器人仍作为客户端,但将任务委托给后端。Web界面随之出现,具备以下功能:

  • 上传任意大小的文件。
  • 跟踪处理状态。
  • 管理处理流程。

项目获得了系统特性:职责分离简化了开发。后端处理数据和业务逻辑,Web部分处理交互,集成(Google Sheets、Yandex.Disk)处理存储和传输。

Google AdInline article slot

架构:分层设计

系统按层结构组织:

  • 后端:使用pandas进行数据处理,包含业务逻辑。
  • Web界面:API层,面向用户的前端。
  • 客户端:Telegram机器人作为一种界面。
  • 集成:Yandex.Disk的OAuth、Google Sheets API。

这种分离允许独立更改界面而不影响逻辑。公司政策限制(无代理不能直接访问数据库)促成了这一方法。

解决大文件问题

关键突破是绕过Telegram的限制。通过OAuth集成Yandex.Disk:机器人接受链接,后端下载并处理文件。这提供了稳定性和速度,不受平台限制影响。

Google AdInline article slot

内部工具的用户体验

内部工具常忽视界面,但简单改进至关重要:

  • 处理进度指示器。
  • 清晰的按钮和表单。
  • 移动设备适配性。

这提升了可用性:系统成为日常使用的工具。

开发环境:从PyCharm到AI助手

开发在PyCharm中进行,用于数据研究和调试。切换到Cursor配合AI助手加速了常规任务:

  • 生成样板代码。
  • 简单重构。
  • 封装新功能。

Cursor在架构和Web开发中效果显著。PyCharm仍用于深度数据分析。采用混合方法:AI用于自动化,传统工具处理复杂任务。计划测试Claude Code和n8n在数据处理中的AI集成。

成果与节省

系统每月为分析团队节省150小时。关键转变是放弃以Telegram为中心:添加界面和集成成为可能,无崩溃风险。

要点总结:

  • 逐步从机器人中提取后端使系统可扩展。
  • Yandex.Disk集成解决了文件限制问题。
  • 分离UI和逻辑简化了开发。
  • Cursor中的AI助手加速了样板开发。
  • Web界面增加了流程控制功能。

经验教训与开发计划

结论:从MVP开始,随增长进行重构。不要一开始就构建完美架构。像Cursor这样的工具影响生产力。

下一步:Web中的BI分析、仪表板、Docker容器化。这是为中高级开发者构建内部系统的技术材料。

— Editorial Team

Advertisement 728x90

继续阅读