Перейти к содержанию
  • Язык

Пишем и подключаем ChatGPT к профилю Telegram с Premium

Featured Replies

Опубликовано
  • Комсомольцы

image.thumb.png.64bacaf8398fb3a8c303f63675bcbf66.png


1. Покупаем Telegram Premium, если его у вас еще нет.
2. Создаем бота в https://t.me/BotFather и включаем в нём Business mode:

image.png.224f1a51fe8f20a0ef718326135ac313.png

3. Подключаем своего бота к профилю Telegram и выбираем чаты, где он будет работать (или же ничего не делаем и он будет отвечать всем кто ему пишет):

image.png.ee206a1820653af35ac0d72a22551eff.png
 

Пишем код на Python

1. Скачиваем Python: https://www.python.org/downloads (у меня установлена версия Python 3.11.6) (ПРИ УСТАНОВКЕ PYTHON НЕ ЗАБУДЬТЕ ПОСТАВИТЬ ГАЛОЧКУ ADD TO PATH).
2. Открываем консоль и устанавливаем необходимые модули:
 

⁡ ⁡pip install aiogram ⁡

⁡ ⁡pip install g4f ⁡

3. Создаем файл с расширением .py и вставляем мой тестовый код:
 

import asyncio

from g4f.client import AsyncClient
from g4f.Provider import Aichatos

from aiogram import (Router, Bot, Dispatcher,
                     F, types)
import logging

router = Router(name=__name__)
lock = asyncio.Lock()

logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)


async def response_gpt(message):
    client = AsyncClient(
        provider=Aichatos
    )

    try:
        completion = await client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=message,
        )

        return completion.choices[0].message.content

    except Exception as ex:
        print(ex)
        return None


@router.business_message(F.text)
async def handler_message(message: types.Message):
    async with lock:
        user_id = message.chat.id
        logger.info(f"Received business message from {user_id}: {message.text}")

        messages = [
            {"role": "system",
             "content": "Привет! Ты - ИИ-помощник для бизнеса в Telegram. Отвечай на вопросы пользователей"},
            {"role": "user", "content": message.text}
        ]

        response = await response_gpt(messages)

        if response is None:
            await message.answer("Я не понимаю вас. Попробуй еще раз.")
        else:
            logger.info(f"Response sent to business chat: {response}")
            await message.answer(response)


async def main() -> None:
    bot = Bot(token="TOKEN")
    dp = Dispatcher()

    dp.include_router(router)

    await bot.delete_webhook(drop_pending_updates=True)
    await dp.start_polling(bot)


asyncio.run(main())

4. Вместо ⁡bot = Bot(token="TOKEN") ⁡, там где TOKEN - вставляем токен вашего бота, который вы получили у BotFather

5. Запускаем скрипт и проверяем. Можно написать с другого аккаунта или же с вашего аккаунта, так как боту без разницы, он ловит все сообщения, даже от вашего лица.

Консоль:

image.thumb.png.dd769e3b8fe69bedb0308bf25a30488d.png

6. Для теста можете добавить уже созданного бота в настройках Telegram Business.

Важная информация:
По хорошему лучше подключать оригинальный ChatGPT, а не китайские аналоги, но увы возиться с лимитами и прочей ерундой я не хотел. Можете в GitHub модуля G4F поискать более лучшие провайдеры, чем установил в коде я: https://github.com/xtekky/gpt4free.

Опубликовано
  • Граждане

Ого, статья просто супер интересная, спасибо большое за инфу!

Если будет время/возможность, можешь ещё, пожалуйста, прокомментировать, что происходит в коде по строкам? 

С наилучшими пожеланиями, 

Скорбная Лиса 🦊

Для публикации сообщений создайте учётную запись или авторизуйтесь

Последние посетители 0

  • Ни одного делегата форума не просматривает данную страницу

Важная сводка

Мы разместили cookie-файлы на твоё устройство, чтобы помочь сделать этот форум лучше. Ты можешь корректировать своё управление cookie-файлами, или же продолжить без каких-либо корректировок.

Иконка перчаток с несколькими звуками
Иконка перчаток

Досье

Навигация

Розыск

Розыск

Настройка push-извещений браузера

Chrome (Android)
  1. Нажми на значок замка рядом с адресной строкой.
  2. Нажми Разрешения → Извещения.
  3. Корректируй свои предпочтения.
Chrome (Desktop)
  1. Нажми на значок замка в адресной строке.
  2. Выбери Управление сайта.
  3. Разыщи Изввещения и корректируй свои предпочтения.