From 6540b28437577841ce47b6f55b9565ee0611c6fd Mon Sep 17 00:00:00 2001 From: OlegGoless Date: Tue, 16 Apr 2024 14:56:04 +0200 Subject: [PATCH] fix bug in context --- .DS_Store | Bin 0 -> 6148 bytes bot/bot.py | 2 +- bot/openai_utils.py | 29 ++++++++++++++++++----------- 3 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f758a93d2f16ce9225865c3eecb81718125deb49 GIT binary patch literal 6148 zcmeHKOHRWu5Pfc|(!!=<#Re%CAQCr7OS`B9Ea(LwX+af9%cqrKmpymj3Y?D>ys@n+ zabXD(Xhs@8d;G?ZU!+V7zzo*YW1t71Ll)gU#1+%a%z7; z0eN>#q*!7#&TH?l&zbncnmtGx8CeTlV~(4E`xbEbF(o&{EoOMYkAd@LJKJ z$J5Mkk2Rl0dIf!f6;BnjecIAcbgAaI$z0)zK1WvH%bvf=WvZGgpbDr0KcoO_wpeG+ zp|+}kDxeB%6p-&jL>EjvmJaQwgN?lc5L*meW8eP#6C()_6OW}sMrg*R5?!kCR}ACt z4#uT(KJon0p-YFcJ98bsv+*|+4rV2|D*5k|MestsRF9N zzf!=ohLhodNAk6G>u^$QBl;y>On9ZkO$s}<6q75Z_<(MW@klzv#AE4@5t{x8SQ)fY I1%6e5PuXC3$p8QV literal 0 HcmV?d00001 diff --git a/bot/bot.py b/bot/bot.py index 2d9a758..0336397 100644 --- a/bot/bot.py +++ b/bot/bot.py @@ -429,7 +429,7 @@ async def message_handle(update: Update, context: CallbackContext, message=None, prev_answer = answer # update user data - new_dialog_message = {"user": _message, "bot": answer, "date": datetime.now()} + new_dialog_message = {"user": [{"type": "text", "text": _message}], "bot": answer, "date": datetime.now()} db.set_dialog_messages( user_id, diff --git a/bot/openai_utils.py b/bot/openai_utils.py index cf19257..005f801 100644 --- a/bot/openai_utils.py +++ b/bot/openai_utils.py @@ -254,25 +254,32 @@ class ChatGPT: prompt = config.chat_modes[chat_mode]["prompt_start"] messages = [{"role": "system", "content": prompt}] - user_messages = {"role": "user", "content": []} for dialog_message in dialog_messages: - user_messages["content"].extend(dialog_message["user"]) + messages.append({"role": "user", "content": dialog_message["user"]}) messages.append({"role": "assistant", "content": dialog_message["bot"]}) - - - user_messages["content"].append({"type": "text", "text": message}) - + if image_buffer is not None: - user_messages["content"].append( + messages.append( { - "type": "image", - "image": self._encode_image(image_buffer), + "role": "user", + "content": [ + { + "type": "text", + "text": message, + }, + { + "type": "image", + "image": self._encode_image(image_buffer), + } + ] } + ) + else: + messages.append({"role": "user", "content": message}) - response = messages + ([user_messages] if len(user_messages["content"]) > 0 else []) - return response + return messages def _postprocess_answer(self, answer): answer = answer.strip()