Make bot truly async

This commit is contained in:
Karim Iskakov
2023-03-08 04:49:50 -06:00
parent aedb94c0ef
commit 3624ee0dc9
2 changed files with 5 additions and 4 deletions
+2 -1
View File
@@ -110,7 +110,7 @@ async def message_handle(update: Update, context: CallbackContext, message=None,
message = message or update.message.text
chatgpt_instance = chatgpt.ChatGPT(use_chatgpt_api=config.use_chatgpt_api)
answer, n_used_tokens, n_first_dialog_messages_removed = chatgpt_instance.send_message(
answer, n_used_tokens, n_first_dialog_messages_removed = await chatgpt_instance.send_message(
message,
dialog_messages=db.get_dialog_messages(user_id, dialog_id=None),
chat_mode=db.get_user_attribute(user_id, "current_chat_mode"),
@@ -241,6 +241,7 @@ def run_bot() -> None:
application = (
ApplicationBuilder()
.token(config.telegram_token)
.concurrent_updates(True)
.build()
)
+3 -3
View File
@@ -43,7 +43,7 @@ class ChatGPT:
def __init__(self, use_chatgpt_api=True):
self.use_chatgpt_api = use_chatgpt_api
def send_message(self, message, dialog_messages=[], chat_mode="assistant"):
async def send_message(self, message, dialog_messages=[], chat_mode="assistant"):
if chat_mode not in CHAT_MODES.keys():
raise ValueError(f"Chat mode {chat_mode} is not supported")
@@ -53,7 +53,7 @@ class ChatGPT:
try:
if self.use_chatgpt_api:
messages = self._generate_prompt_messages_for_chatgpt_api(message, dialog_messages, chat_mode)
r = openai.ChatCompletion.create(
r = await openai.ChatCompletion.acreate(
model="gpt-3.5-turbo",
messages=messages,
**OPENAI_COMPLETION_OPTIONS
@@ -61,7 +61,7 @@ class ChatGPT:
answer = r.choices[0].message["content"]
else:
prompt = self._generate_prompt(message, dialog_messages, chat_mode)
r = openai.Completion.create(
r = await openai.Completion.acreate(
engine="text-davinci-003",
prompt=prompt,
**OPENAI_COMPLETION_OPTIONS