Загрузка...

Gopnik chatbot for Telegram with AI integration

Thread in Neural networks created by Mon1ogiakhan Dec 28, 2024. 205 views

  1. Mon1ogiakhan
    Mon1ogiakhan Topic starter Dec 28, 2024 20 Nov 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()
     
Loading...
Top