Как мы создали собственную ChatGPT Plus с функциями голосового ввода, чтения PDF, просмотра Youtube и GPT-4

Со всей уверенностью можно сказать, что ChatGPT является интеллектуальным помощником, применимым как в повседневной жизни, например, для поиска рецептов, так и в профессиональной деятельности, облегчая работу копирайтеров, блогеров и программистов. Тем не менее, альтернатив ChatGPT немного, а его использование в России несколько ограничено. К тому же, Plus-версия ChatGPT, обеспечивающая доступ к GPT-4, ускоренные ответы и использование плагинов, является платной, обходясь в 20$ в месяц, что примерно равно 2000 рублям. Взвешивая все объективные факторы, мы с коллегами приняли решение и разработали свою версию ChatGPT Plus.

То, как мы с коллегами видим план ChatGPT Plus
То, как мы с коллегами видим план ChatGPT Plus

Введение

Итак, нашей базой был уже существующий аккаунт OpenAI с возможностью оплаты входящих счетов, а также, мы в прошлом успешно присоединились к списку ожидания GPT-4 и успешно получили доступ. Кроме того, у нас была возможность использовать собственный сервер для распространения сервиса среди всего нашего коллектива, а не только одного человека. Нашей целью было превратить ChatGPT в инструмент, доступный каждому на повседневной основе, предлагая его как Telegram бота, управлять балансом токенов, чтобы ограничить безлимитное использование бота пользователями за наш счёт, а также интегрировать необычные функции, такие как распознавание голоса, чтение PDF и просмотр видео на YouTube. Теперь перейдём к пошаговому обсуждению процесса.

Архитектура ChatGPT бота

Структура нашего проекта удивительно проста и включает в себя клиентскую часть (Telegram Bot), сервер, который контролирует баланс, и базу данных, в которой хранятся сведения о пользователях и количество токенов, которые они могут потратить. К сожалению или к счастью, основная функциональность бота реализована на клиентской стороне (например, именно она обрабатывает взаимодействие с OpenAI API), потому что мы не видели необходимости переносить эти функции в другое место, учитывая, что мы делали это для себя. Ниже представлена схема архитектуры нашего бота.

Архитектура нашего ChatGPT Plus
Архитектура нашего ChatGPT Plus

Сервер и клиент, созданные на Python, работают в Docker и раскатываются через Gitlab CI/CD. В клиенте применяется библиотека python-telegram-bot для реализации функционала бота, тогда как сервер работает на базе FastAPI.

Связь с OpenAI осуществляется через их собственную библиотеку. Модель Whisper используется для распознавания голосовых сообщений. Для анализа видео на YouTube, мы извлекаем такие данные как название, описание, и субтитры (если они доступны). Чтобы прочитать PDF, мы преобразуем его в текстовый формат.

В общем и целом, создание подобного приложения не является сложной задачей. Однако, согласно правилу Парето, 70% кода были написаны за 30% от общего времени. В то время как оставшиеся 70% времени были потрачены на устранение небольших недостатков, которые занимают всего 30% от всего кода.

Пример использования: GPT-3.5 vs GPT-4

Попробуем оценить, как GPT-3.5 и GPT-4 выполнят задачу создания функции для вычисления факториала в Python и ее последующего объяснения. Для проверки зададим следующий запрос: Напиши функцию факториала на питоне и объясни её (кратко).

Сравнение двух GPT моделей
Сравнение двух GPT моделей

Обе эти реализации являются достойными. Важно отметить, что GPT-3.5 иногда также использует рекурсию при ответе на подобный вопрос. Кроме того, GPT-4, похоже, более наглядно структурирует свой ответ, хотя это сравнительно простая задача для такого сравнения.

Пример использования: просмотр YouTube

Если вы не хотите тратить время на просмотр всего видео, но стремитесь узнать только основные моменты из него, функция просмотра YouTube станет для вас настоящей находкой. Возьмем простой пример, чтобы продемонстрировать, как это работает: мы сформулируем конкретный вопрос по видео и посмотрим, какую информацию предоставит модель.

Пример того, как бот смотрит YouTube
Пример того, как бот смотрит YouTube

Этот пример демонстрирует, что бот, созданный на базе ChatGPT, способен экономить ваше время, предоставляя полный ответ на вопрос, связанный с определенным видео. Но стоит учесть, что эта функция не сможет обработать длительные видео, так как модель не имеет большого размера контекста.

Пример использования: голосовые сообщения

Однажды я задал вопрос нашему боту о том, как перевести на немецкий язык фразу "не прорезавшийся (зуб)". Вот что вышло.

Коммуникация с ботом голосовым вводом
Коммуникация с ботом голосовым вводом

Я не могу гарантировать точность перевода, однако мое намерение было правильно понято. Поэтому я считаю это положительным примером.

Пример использования: чтение PDF

Временами перебирать документы становится утомительно. Но почему бы не воспользоваться помощью бота ChatGPT, отправив ему интересующий нас PDF-файл? Например, я отправил боту свое резюме и узнал, в каких языках программирования я разбираюсь.

Пример функции чтения PDF
Пример функции чтения PDF

Говоря в общем, бот ответил правдиво. Тем не менее, я бы не включил в список sparql и SQL, поскольку это языки для написания запросов.

Итог

Я ежедневно использую этого бота в моих технических задачах, которые я не желаю «гуглить». Например, изменить конфигурационный файл для nginx. В повседневной жизни бот помогает мне разрешать небольшие споры, например по вопросам перевода того или иного слова. Но будьте осторожны при обращении за фактологической информацией, такой как даты, события, здоровье и т. д., лучше прикреплять источник информации для контекста.

Будем признательны, если вы поделитесь своими примерами общения с ботом в комментариях. Ссылка на него — https://t. me/gpt_rubq_bot. Мы ценим ваш фидбэк!

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