Created
February 14, 2023 18:12
-
-
Save Aqendo/11fc69dc681f9cd392565d309d80eb9a to your computer and use it in GitHub Desktop.
шок слив сурсы бота chatgpt
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# requires: openai python-dotenv aiogram==3.0.0b6 | |
import os | |
import openai | |
import logging | |
import traceback | |
from aiogram import Bot, Dispatcher, types | |
from aiogram.filters import Command | |
from aiogram.types import Message | |
import asyncio | |
from dotenv import load_dotenv, find_dotenv | |
load_dotenv(find_dotenv()) | |
TOKEN = os.getenv("BOT_TOKEN") | |
openai.api_key = os.getenv("OPEN_AI_TOKEN") | |
dp = Dispatcher() | |
logger = logging.getLogger(__name__) | |
awaiting = {} | |
from functools import wraps, partial | |
def wrap(func): | |
@wraps(func) | |
async def run(*args, loop=None, executor=None, **kwargs): | |
if loop is None: | |
loop = asyncio.get_event_loop() | |
pfunc = partial(func, *args, **kwargs) | |
return await loop.run_in_executor(executor, pfunc) | |
return run | |
@dp.message(Command(commands=["start"])) | |
async def command_start_handler(message: Message) -> None: | |
await message.answer(f"Привет, пиши свой запрос, на него ответят...наверное...") | |
@dp.message() | |
async def text_listener(message: types.Message) -> None: | |
if message.from_user.id in awaiting: | |
return | |
awaiting[message.from_user.id] = 1 | |
messag = await message.reply("Падажжите, всё буде...") | |
query = message.text | |
try: | |
response = await wrap(openai.Completion.create)( | |
model="text-davinci-003", | |
prompt=query, | |
temperature=0.9, | |
max_tokens=500, | |
top_p=1, | |
frequency_penalty=0, | |
presence_penalty=0.6) | |
await messag.edit_text(response.choices[0].text.strip()) | |
except: | |
traceback.print_exc() | |
await messag.edit_text("Чёто пошло не так.") | |
del awaiting[message.from_user.id] | |
if __name__ == "__main__": | |
bot = Bot(TOKEN, parse_mode="HTML") | |
dp.run_polling(bot) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment