From 892e4d40771a7338e573596038d812ff3bad58c1 Mon Sep 17 00:00:00 2001 From: Debanjum Date: Sun, 24 Aug 2025 18:22:31 -0700 Subject: [PATCH] Fix system prompt construction for gemini models System prompt was duplicating instructions for gemini models previously --- src/khoj/processor/conversation/google/gemini_chat.py | 6 +++--- src/khoj/processor/conversation/google/utils.py | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/khoj/processor/conversation/google/gemini_chat.py b/src/khoj/processor/conversation/google/gemini_chat.py index e9e7736c..a9bd96a5 100644 --- a/src/khoj/processor/conversation/google/gemini_chat.py +++ b/src/khoj/processor/conversation/google/gemini_chat.py @@ -106,14 +106,14 @@ async def converse_gemini( day_of_week=current_date.strftime("%A"), ) - system_prompt += f"{system_prompt}\n\n{prompts.gemini_verbose_language_personality}" + system_prompt += f"\n\n{prompts.gemini_verbose_language_personality}" if location_data: location_prompt = prompts.user_location.format(location=f"{location_data}") - system_prompt = f"{system_prompt}\n{location_prompt}" + system_prompt += f"\n{location_prompt}" if user_name: user_name_prompt = prompts.user_name.format(name=user_name) - system_prompt = f"{system_prompt}\n{user_name_prompt}" + system_prompt += f"\n{user_name_prompt}" context_message = "" if not is_none_or_empty(references): diff --git a/src/khoj/processor/conversation/google/utils.py b/src/khoj/processor/conversation/google/utils.py index 4f47364e..877ee664 100644 --- a/src/khoj/processor/conversation/google/utils.py +++ b/src/khoj/processor/conversation/google/utils.py @@ -472,9 +472,12 @@ def format_messages_for_gemini( for message in messages.copy(): if message.role == "system": if isinstance(message.content, list): - system_prompt += "\n".join([part["text"] for part in message.content if part["type"] == "text"]) + system_prompt += "\n\n" + "\n".join( + [part["text"] for part in message.content if part["type"] == "text"] + ) else: - system_prompt += message.content + system_prompt += "\n\n" + message.content + system_prompt = system_prompt.strip() messages.remove(message) system_prompt = None if is_none_or_empty(system_prompt) else system_prompt