@utsiye

Как использовать gpt в потоках и в telebot?

У меня есть бот в телеграмм, который отвечает на вопросы, через библиотеку openai. Но проблема в том, что пока он обрабатывает задачу, весь бот стопориться. Почему и как исправить?

Вот функция запроса:
def do_gpt(text,history):
    messages_do_gpt=history.copy()
    messages_do_gpt.append({"role": "user", "content": text})
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages_do_gpt,
    )
    return response.choices[0].message.content.strip()


Вот момент с запросом:
@bot.message_handler(content_types=['text'])
def text_handler(mes):
    if mes.chat.id not in users:
        result=do_gpt(mes.text,data['history'])[:4000]
        print(result)
  • Вопрос задан
  • 59 просмотров
Решения вопроса 1
@utsiye Автор вопроса
Пришлось вызывать функцию через threading и обрабатывать результат уже в ней, то есть:
def do_gpt(text,history):
    messages_do_gpt=history.copy()
    messages_do_gpt.append({"role": "user", "content": text})
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=messages_do_gpt,
    )
    result=response.choices[0].message.content.strip()
    #ДЕЙСТВИЯ С result
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы