version = (1, 0, 0)
# meta developer: @RUIS_VlP, @matubuntu
import random
from datetime import timedelta
from telethon import events
from telethon import functions
from telethon.tl.types import Message
from .. import loader, utils
bot = ["@GPTChatRBot", 5989217330]
bot1 = ["@gigachat_bot", 6218783903]
@loader.tds
class RUISChatGPTMod(loader.Module):
"""ChatGPT 3, Gigachat без API ключа и с контекстом. Бот, который используется для запросов: @Gigachat_bot и @GPTChatRBot. Модуль распространяется по лицензии MIT."""
strings = {
"name": "RUIS-GigaGpt",
}
@loader.command()
async def gptdelcmd(self, message):
"""- очищает историю переписки с нейросетью(контекст)"""
chat = bot[1]
text = "/clear"
async with message.client.conversation(bot[0]) as conv:
response = await conv.send_message(text)
response1 = await conv.wait_event(events.NewMessage(incoming=True, from_users=chat))
await utils.answer(message, "✅Контекст успешно очищен!")
await response.delete()
await response1.delete()
@loader.command()
async def giga(self, message):
"""<текст> - запрос к нейросети GigaChat"""
chat = bot1[1]
reply = await message.get_reply_message()
text = reply.raw_text if reply else message.text[5:]
if len(text) < 3:
await utils.answer(message, "🚫Ошибка!\nСлишком маленький запрос.")
return
await utils.answer(message, "🤖Нейросеть обрабатывает ваш запрос...")
async with message.client.conversation(bot1[0]) as conv:
response = await conv.send_message(text)
response1 = await conv.wait_event(events.NewMessage(incoming=True, from_users=chat))
if "💭Ещё чуть-чуть, готовлю ответ" in response1.text:
response2 = await conv.wait_event(events.NewMessage(incoming=True, from_users=chat))
await utils.answer(message, f"❓Вопрос: \n{text}\n\n🤖 Ответ нейросети:\n{response2.text}")
await response.delete()
await response1.delete()
await response2.delete()
return
else:
await utils.answer(message, f"❓Вопрос: \n{text}\n\n🤖 Ответ нейросети:\n{response1.text}")
await response.delete()
await response1.delete()
@loader.command()
async def gigadelcmd(self, message):
"""- очищает историю переписки с нейросетью(контекст)"""
chat = bot1[1]
text = "🆕 Перезапустить диалог"
async with message.client.conversation(bot1[0]) as conv:
response = await conv.send_message(text)
response1 = await conv.wait_event(events.NewMessage(incoming=True, from_users=chat))
await utils.answer(message, "✅Контекст успешно очищен!")
await response.delete()
await response1.delete()
@loader.command()
async def gptcmd(self, message):
"""<текст> - запрос к нейросети ChatGPT"""
chat = bot[1]
reply = await message.get_reply_message()
text = reply.raw_text if reply else message.text[5:]
if len(text) < 3:
await utils.answer(message, "🚫Ошибка!\nСлишком маленький запрос.")
return
await utils.answer(message, "🤖Нейросеть обрабатывает ваш запрос...")
async with message.client.conversation(bot[0]) as conv:
response = await conv.send_message(text)
response1 = await conv.wait_event(events.NewMessage(incoming=True, from_users=chat))
await utils.answer(message, f"❓Вопрос: \n{text}\n\n🤖 Ответ нейросети:\n{response1.text}")
await response.delete()
await response1.delete()