-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
61 lines (45 loc) · 2.08 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import os
import logging
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
import openai
logging.basicConfig(level=logging.INFO)
openai.api_key = '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'
dp = Dispatcher(Bot("6111409589:AAFP5sGZl-sJ_0yOGYBgvGWEhXGYmLGWBvc"))
if not openai.api_key:
logging.error("OpenAI API key not found in environment variable")
async def generate_poem(name: str) -> str:
prompt = (
f'Создайте стихотворение на русском языке для человеческого имени "{name}" в 4 строчки. Стихотворение должно быть написано в стиле классической поэзии и следовать рифме "АБАБ". \n',
"Стихотворение должно быть длиной [не больше 4 строчек], следуя рифме. \n",
"Красиво оформленный, без ненужных абзацев.",
)
try:
response = await asyncio.to_thread(
openai.Completion.create,
engine="text-davinci-003",
prompt=prompt,
max_tokens=250,
n=1,
stop=None,
temperature=0.5,
)
poem = response["choices"][0]["text"]
except Exception as e:
logging.error(f"Failed to generate poem for {name}: {e}")
poem = "Произошла ошибка при генерации стихотворения."
return poem
@dp.message_handler(commands=["start"])
async def start(message: types.Message):
await message.answer("Введите ваше имя.")
@dp.message_handler()
async def send(message: types.Message):
name = message.text.strip()
if not name:
await message.answer("Пожалуйста, введите ваше имя.")
return
poem = await generate_poem(name)
await message.answer(poem)
if __name__ == "__main__":
executor.start_polling(dp, skip_updates=True)