Загрузка...

Гопник-чат-бот для Telegram с интеграцией AI

Тема в разделе Нейросети создана пользователем Mon1ogiakhan 28 дек 2024. 159 просмотров

Загрузка...
  1. Mon1ogiakhan
    Mon1ogiakhan Автор темы 28 дек 2024 20 13 ноя 2024
    Этот скрипт подключается к Telegram чату, отслеживает новые сообщения и отвечает как "гопник" (персонаж российской субкультуры). Он использует библиотеку Telethon и GPT для генерации ответов. Бот может отправлять ответы случайным образом, что делает его поведение похожим на реального человека. Также можно редактировать prompt и менять провайдера. Для поддержки *** и списка бесплатных провайдеров см. GitHub: https://github.com/xtekky/gpt4free


    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 = 24555555
    api_hash = '1eabd55555d2977fc66894e3a5555e91'
    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'): # Перед отправкой отправляем команду в чат что мы что-то печатаем, эмулируя поведение живого человека, этот бот у меня мог без банов сраться по 4-5 часов пока всех в конец не заёбывал
    datarand = chat_gpt_response
    await asyncio.sleep(rand.randint(15, 25))
    await event.reply(datarand[13:])

    client.start()
    client.run_until_disconnected()
     
Top