Spaces:
Running
Running
import openai | |
from aiogram import Bot, types | |
from aiogram.dispatcher import Dispatcher | |
from aiogram.utils import executor | |
from config import TELEGRAM_TOKEN, OPENAI_API_KEY, AUTHORIZED_USERS | |
token = TELEGRAM_TOKEN | |
openai.api_key = OPENAI_API_KEY | |
bot = Bot(token) | |
dp = Dispatcher(bot) | |
async def is_authorized(user_id): | |
if not AUTHORIZED_USERS or user_id in AUTHORIZED_USERS: | |
return True | |
return False | |
async def generate_response(prompt): | |
response = openai.Completion.create( | |
model="text-davinci-003", | |
prompt=prompt, | |
temperature=0.7, | |
max_tokens=500, | |
top_p=0.9, | |
frequency_penalty=0.5, | |
presence_penalty=0.6, | |
stop=["You:"] | |
) | |
return response['choices'][0]['text'] | |
async def send(message: types.Message): | |
if not await is_authorized(message.from_user.id): | |
await message.answer("Sorry, you don't have permission to use this bot.") | |
return | |
conversation_history = f"User: {message.text}\nAI:" | |
response = await generate_response(conversation_history) | |
await message.answer(response) | |
if __name__ == '__main__': | |
executor.start_polling(dp, skip_updates=True) | |