在本文中,我们将探讨开发用于 GPT 聊天的支持语音的 Telegram 机器人的过程。我们的目标是提供无缝、便捷的用户体验,同时最大限度地减少 DevOps 任务的需求。我们将讨论之前使用 PipeDream 构建的解决方案的局限性,并解释为什么我们过渡到更灵活的平台(称为 Railway)。此外,我们将概述使用 Node.js 设置 Telegram 机器人以及在 Railway 上配置数据库所涉及的步骤。最后,我们将共享 GitHub 存储库,以便轻松访问该机器人,并提供对其未来潜在增强功能的见解。

TL;DR:您可以随意部署您自己的电报机器人 GitHub 存储库

之前的 PipeDream 解决方案概述:

最初,我们的重点是快速验证支持语音的 Telegram 机器人用于 GPT 聊天的可行性。我们利用 PipeDream(一个类似于 Zapier 的低代码自动化平台)在短短两个晚上内构建了一个功能解决方案。通过这种方法,我们能够将语音消息转换为文本,将消息和聊天历史记录发送到 GPT 聊天,检索响应并将其发送回用户。 PipeDream 的开发速度和提供的便利验证了我们的假设,并使体验既令人兴奋又有意义。

从 PipeDream 转型的原因:

虽然 PipeDream 达到了快速验证的目的,但当我们开始更频繁地使用 Telegram 机器人时,我们遇到了一些限制。一个主要缺点是当 OpenAI 无法处理请求时缺乏自动重试,从而导致偶尔的响应失败。虽然 PipeDream 提供了重试功能,但每月的成本高达 200 美元,这对于我们这样的单个用户来说是不可行的。此外,PipeDream 缺乏简单的分析收集,因此不方便收集日常机器人用户等基本指标。

另一个重大挑战是无法将多个 PipeDream 自动化链接到 Telegram 机器人。这种限制使得实现诸如用于清除消息的重置按钮之类的功能变得困难。因此,我们必须在 PipeDream 中配置复杂的解决方法,以支持多个命令并维护聊天对话。这些限制促使我们寻求更灵活的解决方案来解决这些问题并提供更好的用户体验。

拥抱铁路:用于部署 Telegram 机器人的多功能平台:

决定从 PipeDream 过渡后,我们寻求一种解决方案,最大限度地减少在 DevOps 和基础设施任务上花费的时间。我们的技术总监推荐了Railway,一个完全符合我们要求的平台。通过 Railway,我们快速建立了一个数据库来存储消息、消息历史记录、用户交互以及与机器人使用情况相关的分析事件。 Railway 与我们的 GitHub 存储库无缝集成,处理部署、服务配置以及在出现错误或崩溃时自动重启。这种简化的方法消除了手动服务器管理的需要,并确保了无忧的体验。

使用 Node.js 创建 Telegram 机器人:

为了开发 Telegram 机器人,我们花了几个晚上的时间来编写 Node.js 代码。尽管也可以使用 Python,但 JavaScript 和 TypeScript 的知识对于此步骤至关重要。对于那些没有编码技能的人,建议聘请经验丰富的开发人员,但即使是初级开发人员也可以利用在线提供的现有代码片段。我们已在 GitHub 上公开访问 Telegram 机器人代码,为经验不足的开发人员提供定制的起点。

在铁路上配置数据库以方便部署:

传统上,设置和维护数据库需要记住各种命令并执行繁琐的任务。然而,铁路大大简化了流程。只需点击几下,我们就创建了一个 Postgres 数据库,为消息、用户和事件设置了表,并获得了用于数据库连接的秘密访问字符串。这种简化的方法使我们能够轻松管理消息历史记录、用户访问和分析数据的存储。

支持语音的 GPT 聊天机器人的关键要点和存储库访问:

完成机器人的开发后,我们与亲戚分享了它,他们热情地接受了 Telegram 中的语音控制 GPT 聊天。他们的积极回应鼓励我们将机器人的使用范围扩展到我们的一些客户,他们也更喜欢语音界面而不是基于文本的 GPT 聊天。后来我们发现 OpenAI 发布了一款 iPhone 应用程序,具有用于 GPT 聊天的语音听写功能,进一步验证了我们对支持语音的 Telegram 机器人的选择。目前,我们正在考虑其他功能,例如固定消息支持以及探索不同的聊天角色和切换功能。

要访问我们的工作并部署机器人,您可以在下面找到我们的 GitHub 存储库的链接。 Railway 提供免费部署,使您能够亲自测试机器人。如有任何疑问或帮助,请随时与我们联系。

请随意通过我们部署您自己的电报机器人 GitHub 存储库

结论

总之,我们探索了为 GPT 聊天创建支持语音的 Telegram 机器人的过程,而无需广泛的 DevOps 参与。我们从 PipeDream 过渡到 Railway,以克服限制并增强用户体验。通过利用 Node.js 和 Railway 的数据库功能,我们开发了一个强大且用户友好的解决方案。我们共享了 GitHub 存储库以便于访问,并鼓励读者使用 Railway 部署机器人。如果您有任何疑问或需要帮助,请随时与我们联系。 Kirill Markin 是低代码 CRM 和 ERP 系统构建器 ozma.io 的创建者,他对数据科学、数据库和人工智能充满热情,并且总是乐于提供帮助。