From aed4313cfcd9127322a7e6c9c867900c653945cb Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Thu, 21 Mar 2024 02:44:42 +0530 Subject: [PATCH] Fix updating specific conversation by id from the chat API endpoint - Use the conversation id of the retrieved conversation rather than the potentially unset conversation id passed via API - await creating new chat when no chat id provided and no existing conversations exist --- src/khoj/database/adapters/__init__.py | 6 +++--- src/khoj/routers/api_chat.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/khoj/database/adapters/__init__.py b/src/khoj/database/adapters/__init__.py index e6927d27..882e8896 100644 --- a/src/khoj/database/adapters/__init__.py +++ b/src/khoj/database/adapters/__init__.py @@ -395,7 +395,7 @@ class ConversationAdapters: @staticmethod def get_conversation_by_user( user: KhojUser, client_application: ClientApplication = None, conversation_id: int = None - ): + ) -> Optional[Conversation]: if conversation_id: conversation = ( Conversation.objects.filter(user=user, client=client_application, id=conversation_id) @@ -437,7 +437,7 @@ class ConversationAdapters: @staticmethod async def aget_conversation_by_user( user: KhojUser, client_application: ClientApplication = None, conversation_id: int = None, title: str = None - ): + ) -> Optional[Conversation]: if conversation_id: return await Conversation.objects.filter(user=user, client=client_application, id=conversation_id).afirst() elif title: @@ -445,7 +445,7 @@ class ConversationAdapters: else: return await ( Conversation.objects.filter(user=user, client=client_application).order_by("-updated_at").afirst() - ) or Conversation.objects.acreate(user=user, client=client_application) + ) or await Conversation.objects.acreate(user=user, client=client_application) @staticmethod async def adelete_conversation_by_user( diff --git a/src/khoj/routers/api_chat.py b/src/khoj/routers/api_chat.py index 7cd04c98..ff83b95e 100644 --- a/src/khoj/routers/api_chat.py +++ b/src/khoj/routers/api_chat.py @@ -330,7 +330,7 @@ async def chat( intent_type=intent_type, inferred_queries=[improved_image_prompt], client_application=request.user.client_app, - conversation_id=conversation_id, + conversation_id=conversation.id, compiled_references=compiled_references, online_results=online_results, ) @@ -347,7 +347,7 @@ async def chat( conversation_commands, user, request.user.client_app, - conversation_id, + conversation.id, location, user_name, )