Всем привет, решил тут недавно порофлить в каналах политических срачей, и написал простенького бота на основе 4GPTfree, отвечает в грубой форме, но Prompt вы всегда сможете изменить на ваше усмотрение. Также если в будущем провайдер который прописан в коде будет не работать, нужно будет изменить переменную:
Актуальный список фришных провайдеров которые находятся в активе здесь (но из России очень много не работают, придется использовать VPN или прокси который нужно дописать в код):
github.com
Устанавливаем:
pip install telethon
pip install g4f
P.S. Перед каждым новым входом удаляйте файл *.session который создается в корне скрипта.
Код:
provider=g4f.Provider.Blackbox
GitHub - xtekky/gpt4free: The official gpt4free repository | various collection of powerful language models | o4, o3 and deepseek r1, gpt-4.1, gemini 2.5
The official gpt4free repository | various collection of powerful language models | o4, o3 and deepseek r1, gpt-4.1, gemini 2.5 - xtekky/gpt4free
Устанавливаем:
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 который создается в корне скрипта.
Последнее редактирование:
