创建支持语音的 Telegram Bot,用于 GPT 聊天,无需 DevOps:全面指南
在本文中,我们将探讨如何开发一个语音应答的Telegram机器人,用于GPT聊天。我们的目标是提供无缝便捷的用户体验,同时尽量减少DevOps任务的需求。我们将讨论PipeDream之前解决方案的限制,并解释为什么我们转向了更灵活的平台——Railway。此外,我们还将概述使用Node.js设置Telegram机器人和在Railway上配置数据库的步骤。最后,我们将分享GitHub仓库,以便轻松访问机器人,并提供有关其未来潜在增强的见解。
TL;DR:欢迎通过我们的 GitHub 存储库自由部署您自己的 Telegram 机器人。
之前的 PipeDream 解决方案概述:
最初,我们的重点是快速验证支持语音的Telegram机器人在GPT聊天中的可行性。我们利用了类似Zapier的低码自动化平台PipeDream,在短短两个晚上构建了一个功能性解决方案。通过这种方法,我们能够将语音消息转换为文本,将消息和聊天记录发送到GPT聊天中,检索响应并将其发送回用户。PipeDream所提供的开发速度和便利性验证了我们的假设,使得经验既令人兴奋又有回报。
前一篇相关文章:DIY语音控制GPT聊天:初学者的逐步指南
转换离开 PipeDream 的原因:
尽管PipeDream在快速验证方面发挥了作用,但随着我们开始更频繁地使用Telegram机器人,我们遇到了一些限制。一个主要的缺点是在OpenAI无法处理请求时缺乏自动重试机制,导致偶尔出现响应失败。虽然PipeDream提供重试功能,但每月需要支付200美元的显著费用,对于像我们这样的单个用户来说不可行。此外,PipeDream缺乏易于收集分析数据,使收集关键指标如每日机器人用户变得不方便。
另一个重要的挑战是无法将多个PipeDream自动化链接到Telegram机器人。这个限制使得实现像清除消息的重置按钮这样的功能变得困难。因此,我们不得不在PipeDream中配置复杂的解决方案来支持多个命令和维护聊天对话。这些限制促使我们寻求更灵活的解决方案,以解决这些问题并提供更好的用户体验。
拥抱铁路:部署我们的Telegram Bot的多功能平台
决定从 PipeDream 转移后,我们寻求一种解决方案,能够最大程度地减少 DevOps 和基础设施任务占用的时间。我们的技术主管推荐了 Railway,这是一个完全符合我们要求的平台。通过 Railway,我们快速设置了一个数据库,用于存储消息、消息历史、用户互动以及与机器人使用相关的分析事件。Railway 无缝地集成了我们的 GitHub 存储库,处理部署、服务配置以及错误或崩溃时的自动重启。这种简化的方法消除了手动服务器管理的需要,并确保了无烦恼体验。
使用Node.js创建Telegram机器人:
为了开发 Telegram 机器人,我们花了几个晚上编写了 Node.js 代码。在这一步中,了解 JavaScript 和 TypeScript 是必要的,虽然 Python 也可以使用。对于那些没有编程技能的人,建议雇用经验丰富的开发人员,但即使是初级开发人员也可以利用在线提供的现有代码片段。我们已经在 GitHub 上公开了我们的 Telegram 机器人代码,为不那么有经验的开发人员提供了一个定制的起点。
铁路数据库的配置以便于简易部署:
传统上,设置和维护数据库需要记住各种指令并执行繁琐的任务。但是,Railway大大简化了这个过程。只需几次点击,我们就创建了一个Postgres数据库,设置了消息、用户和事件的表格,并获得了一个用于数据库连接的秘密访问字符串。这种简化的方法使我们能够轻松地管理消息历史记录、用户访问和分析数据的存储。
语音启用的GPT聊天机器人的关键要点和代码库访问。
完成机器人开发后,我们与亲戚分享了它,他们兴高采烈地接受了电报中基于语音控制的GPT聊天。他们的积极反应鼓舞我们将这个机器人的应用扩展到我们的一些客户,他们也更喜欢基于语音界面的GPT聊天而不是基于文本的聊天。后来,我们发现OpenAI推出了一款iPhone应用,提供了GPT聊天的语音传输功能,这进一步验证了我们选择电报基于语音的机器人的正确性。目前,我们正在考虑其他新特性,如固定消息支持,并探索不同的聊天角色和切换功能。
为了访问我们的工作并部署机器人,您可以在下面找到我们的GitHub存储库链接。Railway提供免费的部署,使您可以第一时间测试机器人。如有任何疑问或需要帮助,请随时联系我们。
欢迎在我们的GitHub仓库中自由部署您自己的Telegram机器人。
结论
总之,我们探索了创建一个基于语音的Telegram聊天机器人的过程,而无需进行广泛的DevOps工作。我们从PipeDream转移到Railway,以克服限制并增强用户体验。通过利用Node.js和Railway的数据库能力,我们开发了一个强大而用户友好的解决方案。我们分享了我们的GitHub代码库以便读者轻松访问,并鼓励读者使用Railway部署机器人。如果您有任何问题或需要帮助,请随时与我们联系。Kirill Markin是ozma.io的创造者,一个低代码CRM和ERP系统构建器,他热爱数据科学、数据库和人工智能,并且总是乐于帮助。