Добро пожаловать! Игровой форум WLUX.NET - Игры, Читы, Скрипты, Статьи, Софт, Курсы.

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы на существующие темы, повышать репутацию участников, скачивать вложения и файлы и многое, многое другое. Так чего же вы ждете?

Добро пожаловать гость!

Приветствуем вас на нашем форуме! Мы очень рады вас видеть и с большим удовольствием поделимся всей информацией нашего форума!

Мы уважаем своих пользователей и так же ждем от вас приятного общения.

Система наград, ежедневное пополнения тем!

Общайся, получай награды.

Статьи, гайды, софт

У нас вы можете скачать бесплатно читы для игр. Полезные гайды на любые темы и схемы заработка. Есть раздел халявы!

FAQ по форуму

Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

  • Добро пожаловать на сайт - wlux.net!

    FAQ по форуму

    1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа

    2. Сообщения учитываються в следующих разделах: Читать

    3.Что-бы скачать вложение нужно 2 сообщения.

    4.Личные переписки работают только с Администрацией форума

    5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта

    6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!

    5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

python Гайд Discord-бот на основе GPT-4 [Переработанный телеграм-бот под дискорд]

wlux.net Оффлайн

wlux.net

Где волчьи уши, там волчьи зубы.
Команда форума
LV
7
 
20.06.2022
23 848
218
36
Награды
10
Пол
Муж.

Репутация:

  • Автор темы
  • Администратор
  • Модератор
  • Команда форума
  • #1
Из этого гайда вы узнаете:

1. Как получить токен бота дискорд
2. Дам код бота на python для запуска нашего AI в дискорд
3. Помогу запустить бота


Как получить токен бота Discord и настроить что надо
1. Заходим на

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

и входим в аккаунт дискорд если еще не вошли.
2. Нажимаем на New Application в верхнем правом углу, даем имя приложению и нажимаем на галочку ниже, создаем приложение

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


3. У нас открывается управление приложением, переводим взгляд влево и находим вкладку Bot

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Нажимаем туда и добавляем бота кнопкой Add Bot, вводим двухэтапку если надо.

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Копируем токен под названием бота кнопкой Copy и оставляем желательно в текстовом документе чтобы потом не ресетать токен.

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Скроллим ниже и включаем эти три тумблера, сохраняем изменения.

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Теперь снова смотрим левее, находим OAuth2 и жмем туда.

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Выбираем URL Generator

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Откроется такое окошко, выбираем тут Bot и Administrator, скроллим ниже и копируем ссылку, вставляем ссылку в браузере и приглашаем бота на сервер.


Код, запуск и использование
Первым делом копируем код ниже и создаем папку а в ней файл main.py, вставляем туда код

Python:
import os
import re
import discord
from discord.ext import commands
from EdgeGPT import Chatbot

BOT_TOKEN = 'token' # Вместо "token" вставить токен Discord бота, который получили ранее
bot = commands.Bot(command_prefix='!', intents=discord.Intents.all())

async def bing_chat(prompt):
    # Надо создать файл cookies.json в папке. ПУТЬ НЕ МЕНЯТЬ, ФАЙЛ cookies.json ДОЛЖЕН БЫТЬ В ПАПКЕ С СКРИПТОМ!
    gbot = Chatbot(cookiePath='./cookies.json')
    response_dict = await gbot.ask(prompt=prompt)
    return re.sub(r'\[\^\d\^\]', '', response_dict['item']['messages'][1]['text'])

@bot.command(name='ask', help='Спросить что-то у бота')
async def ask(ctx, *args):
    try:
        prompt = ' '.join(args)
        if not prompt:
            await ctx.send("Пустой запрос")
        else:
            message = await ctx.send("Обработка запроса, ожидайте")
            bot_response = await bing_chat(prompt)
            await message.edit(content=bot_response.replace('?\n\n', ''))
    except Exception as e:
        await ctx.send("Bing по каким-то причинам решил остановить с вами диалог! Проверьте cookie!") # Такое случается, когда поднимается тема, которую Bing не хочет обсуждать

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user} (ID: {bot.user.id})')

if __name__ == "__main__":
    bot.run(BOT_TOKEN)

Вставляем токен бота в ковычки заместо token, сохраняем и закрываем main.py
Создаем в папке с main.py файл под названием cookies.json и вставляем куки(что да как указано в ориг теме, ссылка выше)
Открываем консоль и вписываем команды по очереди:

Код:
pip install py-cord==2.4.0

pip install discord

pip install EdgeGPT

Готово, открываем консоль в папке с ботом и прописываем команду ниже, ждем несколько секунд и бот запущен

Код:
py main.py

*как открыть консоль в папке:

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


Жмем на эту строку

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


вводим туда cmd и нажимаем Enter.
Заходим на сервер где добавлен наш бот и пишем команду !ask промпт

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.



Ниже кидаю обновленный код:

Внимание! Этот код использует Disnake заместо Discord.py, а также библиотеку asyncio, перед первым запуском нового кода пропишите в консоль команды ниже:

Код:
pip install disnake
pip install asyncio

Теперь бот использует слеш-команду /ask заместо команды с префиксом, оставил старый код для тех кому не по нраву слеш-команды, а также бот имеет 2 статуса активности "Играет в Bing" и "Играет в GPT-4" которые меняют друг друга каждые 15 сек, если они вам не нужны или хотите заменить на свои то уберите или меняйте, код ниже:

Python:
import os
import re
import disnake
from disnake import ApplicationCommandInteraction
from disnake.ext import commands
from EdgeGPT import Chatbot
import asyncio

BOT_TOKEN = 'token' # Вместо "token" вставить токен Discord бота, который получили ранее
bot = commands.Bot(command_prefix='!', intents=disnake.Intents.all())

async def bing_chat(prompt):
    # Надо создать файл cookies.json в папке. ПУТЬ НЕ МЕНЯТЬ, ФАЙЛ cookies.json ДОЛЖЕН БЫТЬ В ПАПКЕ С СКРИПТОМ!
    gbot = Chatbot(cookiePath='./cookies.json')
    response_dict = await gbot.ask(prompt=prompt)
    return re.sub(r'\[\^\d\^\]', '', response_dict['item']['messages'][1]['text'])

async def change_status():
    await bot.wait_until_ready()
    while not bot.is_closed():
        await bot.change_presence(activity=disnake.Activity(type=disnake.ActivityType.playing, name="Bing"))
        await asyncio.sleep(15)
        await bot.change_presence(activity=disnake.Activity(type=disnake.ActivityType.playing, name="GPT-4"))
        await asyncio.sleep(15)

@bot.slash_command(name='ask', description='Спросить что-то у бота')
async def ask(interaction: ApplicationCommandInteraction, prompt: str):
    try:
        if not prompt:
            await interaction.response.send_message("Пустой запрос")
        else:
            await interaction.response.defer()
            bot_response = await bing_chat(prompt)
            await interaction.followup.send(bot_response.replace('?\n\n', ''))
    except Exception as e:
        await interaction.response.send_message("Bing по каким-то причинам решил остановить с вами диалог! Проверьте cookie!") # Такое случается, когда поднимается тема, которую Bing не хочет обсуждать

@bot.event
async def on_ready():
    print(f'Logged in as {bot.user} (ID: {bot.user.id})')
    bot.loop.create_task(change_status())

if __name__ == "__main__":
    bot.run(BOT_TOKEN)
 
L Оффлайн

l4437887

Участник
LV
0
 
22.06.2023
15
0
2
24

Репутация:

Прикольная тема, надо будет заценить, пасиб
 
iwanttodie Оффлайн

iwanttodie

Местный
Участник
LV
3
 
13.09.2023
99
0
36
Награды
5
25
Пол
Муж.

Репутация:

Спасибо автору данного поста. +реп
 
K Оффлайн

kshish

Участник
LV
0
 
20.10.2024
2
0
6
24

Репутация:

Спасибо за инфу, может воспользуюсь
 

Поиск по форуму

Похожие темы:

shape1
shape2
shape3
shape4
shape7
shape8
Верх