从Telegram机器人到可扩展Web应用:内部工具的演进之路
一位仓库损耗分析师面临一项日常任务:每天处理多个Excel文件需要5小时,每月总计150小时。这代表着巨大的时间成本。解决方案是一个MVP形式的Python Telegram机器人:用户发送文件,机器人返回处理结果。处理逻辑仍由开发者控制,无需界面。
这种方法起初有效:Telegram提供了快速访问,无需用户界面。但随着复杂度增加,局限性逐渐显现。
Telegram作为系统基础的局限性
Telegram并非设计为系统的核心。问题很快出现:
- 20 MB文件大小限制阻碍了大文件上传。
- 处理过程成为“黑箱”,无法查看状态。
- 缺乏合适的管理界面。
- 功能开发变得更加复杂。
- 俄罗斯因法规导致的访问问题。
Telegram可作为入口点,但不能作为核心。解决方案是将逻辑迁移到独立后端。
逐步过渡到Web应用
过渡并非完全重构:机器人仍作为客户端,但将任务委托给后端。Web界面随之出现,具备以下功能:
- 上传任意大小的文件。
- 跟踪处理状态。
- 管理处理流程。
项目获得了系统特性:职责分离简化了开发。后端处理数据和业务逻辑,Web部分处理交互,集成(Google Sheets、Yandex.Disk)处理存储和传输。
架构:分层设计
系统按层结构组织:
- 后端:使用pandas进行数据处理,包含业务逻辑。
- Web界面:API层,面向用户的前端。
- 客户端:Telegram机器人作为一种界面。
- 集成:Yandex.Disk的OAuth、Google Sheets API。
这种分离允许独立更改界面而不影响逻辑。公司政策限制(无代理不能直接访问数据库)促成了这一方法。
解决大文件问题
关键突破是绕过Telegram的限制。通过OAuth集成Yandex.Disk:机器人接受链接,后端下载并处理文件。这提供了稳定性和速度,不受平台限制影响。
内部工具的用户体验
内部工具常忽视界面,但简单改进至关重要:
- 处理进度指示器。
- 清晰的按钮和表单。
- 移动设备适配性。
这提升了可用性:系统成为日常使用的工具。
开发环境:从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
暂无评论。