Advertisement
Guest User

Untitled

a guest
Mar 11th, 2023
1,045
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.98 KB | None | 0 0
  1. import os
  2.  
  3. print('Бот запущен!')
  4.  
  5. NUMBERS_ROWS = 6
  6.  
  7.  
  8. import openai
  9. import telebot
  10.  
  11. openai.api_key = ""
  12. bot = telebot.TeleBot('')
  13.  
  14. if not os.path.exists("users"):
  15.     os.mkdir("users")
  16.  
  17.  
  18. @bot.message_handler(content_types=['text'])
  19. def msg(message):
  20.     if f"{message.chat.id}.txt" not in os.listdir('users'):
  21.         with open(f"users/{message.chat.id}.txt", "x") as f:
  22.             f.write('')
  23.  
  24.     with open(f'users/{message.chat.id}.txt', 'r', encoding='utf-8') as file:
  25.         oldmes = file.read()
  26.  
  27.     if message.text == '/clear':
  28.         with open(f'users/{message.chat.id}.txt', 'w', encoding='utf-8') as file:
  29.             file.write('')
  30.         return bot.send_message(chat_id=message.chat.id, text='История очищена!')
  31.  
  32.     try:
  33.         send_message = bot.send_message(chat_id=message.chat.id, text='Обрабатываю запрос, пожалуйста подождите!')
  34.         completion = openai.ChatCompletion.create(
  35.             model="gpt-3.5-turbo-0301",
  36.             messages=[{"role": "user", "content": oldmes},
  37.                         {"role": "user","content": f'Предыдущие сообщения: {oldmes}; Запрос: {message.text}'}], presence_penalty=0.6)
  38.  
  39.         bot.edit_message_text(text=completion.choices[0].message["content"], chat_id=message.chat.id, message_id=send_message.message_id)
  40.  
  41.         with open(f'users/{message.chat.id}.txt', 'a+', encoding='utf-8') as file:
  42.             file.write(message.text.replace('\n', ' ') + '\n' + completion.choices[0].message["content"].replace('\n', ' ') + '\n')
  43.  
  44.  
  45.         with open(f'users/{message.chat.id}.txt', 'r', encoding='utf-8') as f:
  46.             lines = f.readlines()
  47.  
  48.         if len(lines) >= NUMBERS_ROWS +1:
  49.             with open(f'users/{message.chat.id}.txt', 'w', encoding='utf-8') as f:
  50.                 f.writelines(lines[2:])
  51.  
  52.     except Exception as e:
  53.         bot.send_message(chat_id=message.chat.id, text=e)
  54.  
  55.  
  56.  
  57. bot.infinity_polling()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement