From c337c53452c36b62ab3576949c27c3159285cbd3 Mon Sep 17 00:00:00 2001 From: Debanjum Date: Tue, 25 Mar 2025 15:29:56 +0530 Subject: [PATCH] Fix to use agent chat model for research model planning Previously the research mode planner ignored the current agent or conversation specific chat model the user was chatting with. Only the server chat settings, user default chat model, first created chat model were considered to decide the planner chat model. This change considers the agent chat model to be used for the planner as well. The actual chat model picked is decided by the existing prioritization of server > agent > user > first chat model. --- src/khoj/database/adapters/__init__.py | 2 +- src/khoj/routers/research.py | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/khoj/database/adapters/__init__.py b/src/khoj/database/adapters/__init__.py index 572e1f83..2280ea60 100644 --- a/src/khoj/database/adapters/__init__.py +++ b/src/khoj/database/adapters/__init__.py @@ -1182,7 +1182,7 @@ class ConversationAdapters: @staticmethod async def aget_default_chat_model(user: KhojUser = None, fallback_chat_model: Optional[ChatModel] = None): - """Get default conversation config. Prefer chat model by server admin > user > first created chat model""" + """Get default conversation config. Prefer chat model by server admin > agent > user > first created chat model""" # Get the server chat settings server_chat_settings: ServerChatSettings = ( await ServerChatSettings.objects.filter() diff --git a/src/khoj/routers/research.py b/src/khoj/routers/research.py index 330d669e..d534e812 100644 --- a/src/khoj/routers/research.py +++ b/src/khoj/routers/research.py @@ -113,6 +113,7 @@ async def apick_next_tool( today = datetime.today() location_data = f"{location}" if location else "Unknown" + agent_chat_model = agent.chat_model if agent else None personality_context = ( prompts.personality_context.format(personality=agent.personality) if agent and agent.personality else "" ) @@ -140,6 +141,7 @@ async def apick_next_tool( user=user, query_images=query_images, query_files=query_files, + agent_chat_model=agent_chat_model, tracer=tracer, ) except Exception as e: