Юзербот для телеграма на основе GPT4free, Telethon

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Всем привет, решил тут недавно порофлить в каналах политических срачей, и написал простенького бота на основе 4GPTfree, отвечает в грубой форме, но Prompt вы всегда сможете изменить на ваше усмотрение. Также если в будущем провайдер который прописан в коде будет не работать, нужно будет изменить переменную:
Код: Скопировать в буфер обмена
provider=g4f.Provider.Blackbox
Актуальный список фришных провайдеров которые находятся в активе здесь (но из России очень много не работают, придется использовать VPN или прокси который нужно дописать в код):

Устанавливаем:
pip install telethon
pip install g4f

Python: Скопировать в буфер обмена
Код:
import asyncio
from telethon import TelegramClient, events, sync, utils
from telethon.errors import SessionPasswordNeededError
import g4f
import random as rand

# Получаем параметры для подключения к API по адресу:
# api_hash from https://my.telegram.org, under API Development, данные в переменных ниже указаны левые для понимания что нужно вписывать.
api_id = 24555512
api_hash = '1eabd55555d2977fc66894e3a1373e91'
chat = -1001455572595 # Чат айди сами загуглите как искать (или с клиента Telegram на PC заходите в продвинутые настройки-экспериментальные настройки-включаете отображение ID в профиле и прибавляете -100 в начале, если не сработает прописываете айди которое указано в профиле)

client = TelegramClient('komandos_kolya', api_id, api_hash, device_model="AMD B550", system_version="Windows 10")
client.connect()
phone = input("Enter phone: ")
client.send_code_request(phone, force_sms=False)
value = input("Enter login code: ")
try:
    me = client.sign_in(phone, code=value)
#Если на акке выставленно 2Ф, будет запрос на авторизацию
except SessionPasswordNeededError:
    password = input("Enter password: ")
    me = client.sign_in(password=password)


@client.on(events.NewMessage(chats=[chat]))
async def handler(event):
    user_text = event.raw_text
    print(event.raw_text) # Выводим все что пишут в чат
    try:
        response = await g4f.ChatCompletion.create_async(
            model=g4f.models.default,
            messages=[
                {"role": "system", "content": "Привет! Общайся как гопник и сильно груби матами"},
                {"role": "user", "content": user_text}],
            provider=g4f.Provider.Blackbox,
        )
        chat_gpt_response = response
    except Exception as e:
        print(f"{g4f.Provider.Blackbox.__name__}:", e)
        chat_gpt_response = "Извините, произошла ошибка."

    print(chat_gpt_response)

    kakashka = rand.randint(1, 500)
    if kakashka < 100: # В зависимости от того какое число выпадет в переменную "kakashka" и зависит отправка текстового сообщения в чат
        async with client.action(chat, 'typing'):
            datarand = chat_gpt_response
            await asyncio.sleep(rand.randint(15, 25))
            await event.reply(datarand[13:])

client.start()
client.run_until_disconnected()

P.S. Перед каждым новым входом удаляйте файл *.session который создается в корне скрипта.

View hidden content is available for registered users!
 
Сверху Снизу