Создание бота Telegram с голосовой поддержкой для чата GPT без DevOps: подробный гайд

Создание бота Telegram с голосовой поддержкой для чата GPT без DevOps: подробный гайд

В предыдущей статье я рассказал о том, как собрать голосовой GPT, для которого использовал Pipedream. Это, как мы убедились, можно сделать легко и без лишних затрат, но в процессе пользования ботом я столкнулся с некоторыми трудностями, почему и решил сменить платформу на Railway. Наша цель — обеспечить беспрепятственный и удобный пользовательский интерфейс, сводя к минимуму потребность в задачах DevOps. И теперь расскажу об этапах настройки бота Telegram с использованием Node.js и настройке базы данных на Railway.

Попробуйте создать своего собственного бота в телеграм в репозитории GitHub.

Обзор предыдущего решения PipeDream

Изначально я стремился к тому, чтобы быстро проверить возможность использования голосового бота Telegram для чата GPT. Для этого я использовали PipeDream, платформу автоматизации с низким кодом, аналогичную Zapier, чтобы создать функциональное решение всего за два вечера.Так, стало возможно можно преобразовывать голосовые сообщения в текст, отправлять сообщения и историю чата в чат GPT, получать ответы и отправлять их обратно пользователям. Скорость разработки и удобство, предлагаемые PipeDream, подтвердили гипотезу.

Создание бота Telegram с голосовой поддержкой для чата GPT без DevOps: подробный гайд

Причины отказа от PipeDream

Несмотря на то, что PipeDream выполнял свою задачу для быстрой проверки, я столкнулся с некоторыми ограничениями. Одним из основных недостатков было отсутствие автоматических повторных попыток, когда OpenAI не мог обрабатывать запросы, что иногда приводило к сбоям в ответе. И хотя PipeDream предлагал функцию повтора, она стоила 200 долларов в месяц, что было невозможно для одного пользователя. Кроме того, в PipeDream не было удобного сбора аналитики, из-за неудобно собирать такие важные показатели как количество ежедневных пользователей бота.

Еще одной серьезной проблемой была невозможность связать несколько автоматизаций PipeDream с ботом Telegram. Это ограничение затруднило реализацию таких функций, как кнопка «Сброс» для очистки сообщений. Следовательно, пришлось настраивать сложные обходные пути в PipeDream для поддержки нескольких команд и поддержания диалогов в чате. Из-за этого я стал искать более гибкое решение.

Embracing Railway: универсальная платформа для развертывания Telegram-бота

Я искал решение, которое минимизировало бы время, затрачиваемое на DevOps и инфраструктурные задачи. Мой технический директор порекомендовал Railway, платформу, которая идеально соответствует нашим требованиям. С помощью Railway я быстро создал базу данных для хранения сообщений, истории сообщений, взаимодействий пользователей и аналитических событий, связанных с использованием бота. Railway полностью интегрирована в репозиторий GitHub, обеспечивая развертывание, настройку службы и автоматический перезапуск в случае ошибок или сбоев. Этот подход устранил необходимость ручного управления сервером.

Создание бота Telegram с помощью Node.js

Для разработки Telegram-бота я потратил несколько вечеров на написание кода Node.js. Для этого шага необходимо знание JavaScript и TypeScript, хотя Python также можно использовать. Тем, у кого нет навыков программирования, лучше нанять опытного разработчика, но даже начинающие разработчики могут использовать существующие фрагменты кода, доступные в Интернете. Я сделал код бота Telegram открытым для доступа на GitHub, предоставив отправную точку для настройки менее опытными разработчиками.

Создание бота Telegram с голосовой поддержкой для чата GPT без DevOps: подробный гайд

Настройка базы данных на Railway для простого развертывания

Традиционно настройка и обслуживание базы данных требует запоминания различных команд и выполнения рутинных задач. Но платформа Railway упростила этот процесс. В несколько кликов я создал базу данных Postgres, настроил таблицы для сообщений, пользователей и событий и получили секретную строку доступа для подключения к базе данных. Этот оптимизированный подход позволил управлять хранением истории сообщений, доступом пользователей и аналитическими данными.

Итоги

После завершения разработки бота я поделился им с друзьями и родственниками, которые с энтузиазмом восприняли голосовой GPT-чат в Telegram. Они были довольны, и я решил расширить использование бота для некоторых наших клиентов, которые также предпочли голосовой интерфейс текстовому чату GPT. Позже я обнаружил, что OpenAI выпустили приложение для iPhone с голосовой диктовкой для чата GPT, что еще раз подтвердило выбор голосового бота Telegram. Сейчас я рассматриваю дополнительные функции, такие как поддержка закрепленных сообщений, а также изучаю различные роли в чате и возможности переключения.

Чтобы получить доступ к работе и развернуть бота, перейдите по ссылке на репозиторий GitHub. Если понадобится помощь, пишите в комментариях к этой статье.

33
Начать дискуссию