tgoop.com/neuraldeep/981
Last Update:
Всем привет чтиво на ночь!
В тему предыдущего поста про моего STT бота
Хочу грузить файлы больших размеров в телеграм бота для работы с ними. Проблема? Да!
Если детальнее, в чем заключается проблема
Изначально Telegram боты имели ограничение на загрузку файлов размером до 50 мегабайт. Но потом и это понерфили, сделав 20 мегабайт. Это реально создает значительные трудности для моей задачи, а именно работать с большими файлами, аудио или видео более 200, 300, 400 мегабайт.
Но есть решение!
Телеграм предлагает развернуть свой локальный сервер Bot API. Круто? Да! Это позволило мне обойти ограничение на размер загружаемых файлов и значительно улучшить производительность бота.
Я использовал репозиторий от телеграм telegram-bot-api для развертывания локального сервера Bot API.
Проблемы со сборкой
Сборка и настройка сервера потребовали значительных усилий. Особенно сложно было разобраться с библиотекой telebot
, так как во всей документации явно не указано, как импортировать нужные API helpers для интеграции в асинхронном подходе. Плюс, не понятно, как сходу обеспечить доступность файлов на уровне бот + локальный API сервер. К счастью, Артем помог мне с этим, что значительно сократило время на поиск решения. Оказалось, что для асинхронного подхода нужно использовать:
from telebot import asyncio_helper
После нескольких попыток и изучения документации, мы с Артемом нашли, как же все-таки нужно импортировать системные указатели и удалось успешно развернуть сервер + бота.
Успех
После развертывания локального сервера Bot API я смог:
- Загружать и обрабатывать файлы размером до 2000 МБ.
- Значительно улучшить производительность бота за счет уменьшения задержек при передаче данных.
- Увеличить количество одновременных подключений вебхуков до 100000.
Тесты
Я провел серию тестов, чтобы убедиться в работоспособности решения:
- Загружал аудио и видео различных размеров, включая файлы более 20 МБ.
- Проверял скорость обработки и передачи данных.
2 часовое аудио из записи zoom обработалось за 15 минут + я получил отличное саммари через gpt-4o-mini!
В целом я остался доволен результатом!
Как это работает?
На схеме показано, как взаимодействуют различные компоненты системы:
1. Telegram клиент (телефон пользователя) отправляет запросы на сервер Telegram через MTProto.
2. Telegram серверы обрабатывают запросы и передают их на API Telegram.
3. API Telegram взаимодействует с локальным сервером Bot API через MTProto.
4. Локальный сервер Bot API (tdlib) обрабатывает запросы и передает их на машины, где хостятся боты, через HTTP.
Вывод
Для меня развертывание локального сервера Bot API оказалось эффективным для работы с большими файлами в ботах. Это позволило обойти ограничения на размер файлов И все эксперименты скоро я начну выкладывать в открытый репозиторий!
BY Neural Deep

Share with your friend now:
tgoop.com/neuraldeep/981