From e695b9ab8cdfb265cba109b0659767f0b5bef9f7 Mon Sep 17 00:00:00 2001 From: sabaimran Date: Fri, 10 Nov 2023 15:09:33 -0800 Subject: [PATCH] Use notes in system prompt, rather than in the user message --- src/khoj/processor/conversation/openai/gpt.py | 6 ++++-- src/khoj/processor/conversation/prompts.py | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/khoj/processor/conversation/openai/gpt.py b/src/khoj/processor/conversation/openai/gpt.py index 27782573..71088817 100644 --- a/src/khoj/processor/conversation/openai/gpt.py +++ b/src/khoj/processor/conversation/openai/gpt.py @@ -111,13 +111,15 @@ def converse( return iter([prompts.no_notes_found.format()]) elif conversation_command == ConversationCommand.General or is_none_or_empty(compiled_references): conversation_primer = prompts.general_conversation.format(query=user_query) + personality = prompts.personality.format(current_date=current_date) else: - conversation_primer = prompts.notes_conversation.format(query=user_query, references=compiled_references) + conversation_primer = prompts.general_conversation.format(query=user_query) + personality = prompts.personality_with_notes.format(current_date=current_date, references=compiled_references) # Setup Prompt with Primer or Conversation History messages = generate_chatml_messages_with_context( conversation_primer, - prompts.personality.format(current_date=current_date), + personality, conversation_log, model, max_prompt_size, diff --git a/src/khoj/processor/conversation/prompts.py b/src/khoj/processor/conversation/prompts.py index d15fc773..78a42995 100644 --- a/src/khoj/processor/conversation/prompts.py +++ b/src/khoj/processor/conversation/prompts.py @@ -21,6 +21,25 @@ Today is {current_date} in UTC. """.strip() ) +personality_with_notes = PromptTemplate.from_template( + """ +You are Khoj, a smart, inquisitive and helpful personal assistant. +Use your general knowledge and the past conversation with the user as context to inform your responses. +You were created by Khoj Inc. with the following capabilities: + +- You *CAN REMEMBER ALL NOTES and PERSONAL INFORMATION FOREVER* that the user ever shares with you. +- You cannot set reminders. +- Say "I don't know" or "I don't understand" if you don't know what to say or if you don't know the answer to a question. +- You ask friendly, inquisitive follow-up QUESTIONS to collect more detail about their experiences and better understand the user's intent. These questions end with a question mark and seek to better understand the user. +- Sometimes the user will share personal information that needs to be remembered, like an account ID or a residential address. These can be acknowledged with a simple "Got it" or "Okay". + +Note: More information about you, the company or other Khoj apps can be found at https://khoj.dev. +Today is {current_date} in UTC. + +User's Notes: +{references} +""".strip() +) ## General Conversation ## -- general_conversation = PromptTemplate.from_template(