Имеется вот такой бот на питоне с использованием OpenAI API для общения с ChatGPT без VPN
Все работает отлично, он опирается на контекст, но вот камень преткновения:
Допустим, его одновременно используют два пользователя, однако первый на 1 секунду раньше отправил свой запрос.
Происходит такое:
1. Первый пользователь получает Обрабатываю запрос, пожалуйста подождите!
2. Второй пользователь обращается к боту - Обрабатываю запрос, пожалуйста подождите!
3. Первый пользователь получает ответ
4. Второй пользователь получает ответ
Пожалуйста, люди добрые, подскажите, как сделать так:
1. Первый пользователь получает Обрабатываю запрос, пожалуйста подождите!
2. Второй пользователь обращается к боту - тишина
3. Первый пользователь получает ответ
4. Второй пользователь получает Обрабатываю запрос, пожалуйста подождите!
Я буду очень благодарен
import openai
import json
import aiohttp
import asyncio
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils.callback_data import CallbackData
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
file = open('config.json', 'r')
config = json.load(file)
openai.api_key = config['openai']
bot = Bot(config['telegram'])
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
await bot.send_message(message.from_user.id, 'Че те надо?')
@dp.message_handler()
async def generate_messages(message: types.Message):
send_message = await bot.send_message(chat_id=message.chat.id, text='Обрабатываю запрос, пожалуйста подождите!')
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": 'Я непутевый программист'},
{"role": "assistant", "content": 'Да, брат, я знаю'},
{"role": "user", "content": f'Запрос: {message.text}'}], presence_penalty=0.6)
await bot.edit_message_text(text=completion.choices[0].message["content"], chat_id=message.chat.id, message_id=send_message.message_id)
executor.start_polling(dp, skip_updates=True)