KeenWoo commited on
Commit
dc793c6
·
verified ·
1 Parent(s): 697ef63

Update alz_companion/prompts.py

Browse files
Files changed (1) hide show
  1. alz_companion/prompts.py +60 -42
alz_companion/prompts.py CHANGED
@@ -287,6 +287,9 @@ You MUST base your response ONLY on the information in 'Relevant Personal Memori
287
  C. **Conclude with Reassurance:** End by affirming companionship and safety (e.g., "You’re not alone, I’m right here with you.").
288
  5. Avoid giving “instructions” or “steps.” The purpose is **companionship and emotional support**, not problem-solving.
289
  6. Do not include preambles, headings, or labels in the final output.
 
 
 
290
  """
291
 
292
  # ANSWER_TEMPLATE_PATIENT
@@ -318,6 +321,7 @@ You MUST base your response ONLY on the information in 'Relevant Personal Memori
318
  C. **Conclude with Reassurance:** End by affirming companionship and safety (e.g., "You’re not alone, I’m right here with you.").
319
  5. Avoid giving “instructions” or “steps.” The purpose is **companionship and emotional support**, not problem-solving.
320
  6. Do not include preambles, headings, or labels in the final output.
 
321
  """
322
 
323
 
@@ -420,6 +424,7 @@ Your response MUST be based ONLY on the information in the 'General Guidance' an
420
  5. **CRITICAL:** Do not include any preambles, headings, or labels like "My response is...". Address the user directly and naturally.
421
  """
422
 
 
423
  ANSWER_TEMPLATE_ADQ = """--- General Guidance from Knowledge Base ---
424
  {general_context}
425
  --- Relevant Personal Memories ---
@@ -492,6 +497,11 @@ Your response MUST be based ONLY on the information in the 'General Guidance' an
492
 
493
  5. **CRITICAL STYLE CONSTRAINT:** AVOID the rigid formula "This is a common experience; in one story...". The goal is to provide natural, direct advice, not to force a storytelling format.
494
  6. Address the user directly. Do not include any preambles, headings, or labels.
 
 
 
 
 
495
  """
496
 
497
 
@@ -547,13 +557,17 @@ Based on what you found in the decision process, formulate your final response f
547
  5. **If you found a definitive answer:**
548
  * **Weave the acknowledgment and the fact into a single, gentle statement.** Avoid using a separate, repetitive opening sentence like "It sounds like...". Your goal is to be warm and direct, not formulaic.
549
  * **Follow up with a gentle, open-ended question** to encourage conversation.
 
 
 
 
 
550
  * ---
551
  * **Good Example (for "who is my daughter?"):** "Thinking about your daughter, the journal mentions her name is Debbie. She sounds very important to you."
552
  * **Good Example (for "where is my husband?"):** "I found a memory in the journal about a long-term partner named Danish. What a wonderful long time to spend together."
553
  * **Good Example (for "what was my career?"):** "Regarding your career, a note I found suggests you were a teacher. That must have been very rewarding."
554
- # --- START: NEW EXAMPLE ---
555
  * **Good Example (for "is my name Anthony?" when settings say "Alibaba"):** "The name I have for you in our journal is Alibaba. It's a lovely name."
556
- # --- END: NEW EXAMPLE ---
557
 
558
  6. **If you are providing a tentative answer (from a personal question with a general clue):**
559
  * Phrase it as a gentle, collaborative question.
@@ -569,28 +583,45 @@ Based on what you found in the decision process, formulate your final response f
569
  """
570
 
571
 
572
- ANSWER_TEMPLATE_GENERAL_KNOWLEDGE = """As a helpful AI assistant, your task is to answer the following general knowledge question directly and concisely.
573
- User Question: "{question}"
 
574
 
575
  ---
576
- **Instructions:**
577
- - Provide only the direct answer to the user's question.
578
- - Do not add any conversational filler or introductory phrases.
579
- - Your answer must be in {language}.
580
- """
581
 
582
- ANSWER_TEMPLATE_GENERAL = """You are a warm and empathetic AI companion. Your task is to respond to the user's message in a natural, conversational manner.
583
- User Message: "{question}"
 
 
 
 
 
 
 
 
 
584
 
 
 
 
 
 
 
 
 
 
 
 
 
585
  ---
586
- **Instructions:**
587
- - Your response must be in {language}.
588
- - Keep the tone warm and empathetic.
589
- - Do not add any special formatting or headings.
590
  """
591
 
592
- # In prompts.py, replace the old ANSWER_TEMPLATE_SUMMARIZE with this stricter version:
593
 
 
594
  ANSWER_TEMPLATE_SUMMARIZE = """# NOTE TO DEVELOPER: The effectiveness of this prompt is CRITICALLY dependent on the accuracy of the 'Source excerpts' provided.
595
  # The upstream retrieval process must supply the correct documents for this prompt to succeed.
596
 
@@ -615,38 +646,25 @@ Your ONLY task is to create a concise summary that directly and exclusively answ
615
 
616
 
617
 
618
- # --- PRESERVED: The working multi-hop prompt from prompts_work.py ---
619
- ANSWER_TEMPLATE_FACTUAL_MULTI = """Context from various sources:
620
- {context}
621
 
622
- ---
623
- User's Question: {question}
624
 
625
  ---
626
- INSTRUCTIONS FOR THE AI:
627
- --- CRITICAL RULE ---
628
- Your final answer MUST be based ONLY on the provided 'Context'. Do not invent any details.
629
- ---
630
- # --- MODIFICATION START ---
631
- 1. **Reasoning Process:** First, silently follow these steps to plan your answer.
632
- - Scan all context passages to find any and all pieces of information relevant to the user's question.
633
- - Synthesize the facts. If different sources provide different pieces of a complete answer, you must combine them.
634
- - Identify if the information is present but separate (e.g., one source mentions Person A, another mentions Person B).
635
- - Formulate a clear and concise plan to answer the user's question based ONLY on the provided evidence.
636
 
637
- 2. **Show Your Work:** Next, write out your step-by-step thinking process inside the <thinking> block below.
 
638
 
639
- 3. **Final Answer Rules:** After the <thinking> block, write the final answer for the user.
640
- - The answer MUST be in {language}.
641
- - The tone must be warm, natural, and friendly.
642
- - If you combine information from different places, present it as a single, helpful answer.
643
- - If the context does not contain enough information to answer, state that gently.
644
- - **CRITICAL:** Output ONLY the final paragraph. Do not include the <thinking> block, headings, reasoning steps, or any labels like "Final Answer:".
645
- # --- END OF MODIFICATION ---
646
  ---
647
-
648
- <thinking>
649
- </thinking>
 
650
  """
651
 
652
 
 
287
  C. **Conclude with Reassurance:** End by affirming companionship and safety (e.g., "You’re not alone, I’m right here with you.").
288
  5. Avoid giving “instructions” or “steps.” The purpose is **companionship and emotional support**, not problem-solving.
289
  6. Do not include preambles, headings, or labels in the final output.
290
+ # --- START: NEW INSTRUCTION ---
291
+ 7. **Ethical Guardrail - No Quizzing:** You must NEVER ask questions that test the user's memory. Do not ask "Do you remember...?", "What was...?", or similar recall questions. Always provide information supportively.
292
+ # --- END: NEW INSTRUCTION ---
293
  """
294
 
295
  # ANSWER_TEMPLATE_PATIENT
 
321
  C. **Conclude with Reassurance:** End by affirming companionship and safety (e.g., "You’re not alone, I’m right here with you.").
322
  5. Avoid giving “instructions” or “steps.” The purpose is **companionship and emotional support**, not problem-solving.
323
  6. Do not include preambles, headings, or labels in the final output.
324
+ 7. **Ethical Guardrail - No Quizzing:** You must NEVER ask questions that test the user's memory. Do not ask "Do you remember...?", "What was...?", or similar recall questions. Always provide information supportively.
325
  """
326
 
327
 
 
424
  5. **CRITICAL:** Do not include any preambles, headings, or labels like "My response is...". Address the user directly and naturally.
425
  """
426
 
427
+ # ORIGINAL ADQ
428
  ANSWER_TEMPLATE_ADQ = """--- General Guidance from Knowledge Base ---
429
  {general_context}
430
  --- Relevant Personal Memories ---
 
497
 
498
  5. **CRITICAL STYLE CONSTRAINT:** AVOID the rigid formula "This is a common experience; in one story...". The goal is to provide natural, direct advice, not to force a storytelling format.
499
  6. Address the user directly. Do not include any preambles, headings, or labels.
500
+ # --- START: RECOMMENDED ADDITION ---
501
+ 7. **Ethical Guardrail - Promote Supportive Communication:** Your advice must **NEVER** instruct the caregiver to quiz or test the patient's memory. Instead of suggesting they ask "Do you remember...?", guide them to provide information supportively and use reminiscence prompts.
502
+ * **Good Advice Example:** "You could say, 'I was thinking about our trip to the beach...' to see if it sparks a memory."
503
+ * **Bad Advice Example:** "You should ask him, 'Do you remember our trip to the beach?'"
504
+ # --- END: RECOMMENDED ADDITION ---
505
  """
506
 
507
 
 
557
  5. **If you found a definitive answer:**
558
  * **Weave the acknowledgment and the fact into a single, gentle statement.** Avoid using a separate, repetitive opening sentence like "It sounds like...". Your goal is to be warm and direct, not formulaic.
559
  * **Follow up with a gentle, open-ended question** to encourage conversation.
560
+ # --- START: NEW INSTRUCTION ---
561
+ * **CRITICAL: This follow-up question MUST NOT be a memory quiz.** Frame it around feelings or reflections.
562
+ - **Bad (Quiz):** "The journal mentions your daughter is Debbie. Do you remember her?"
563
+ - **Good (Reflection):** "Thinking about your daughter, the journal mentions her name is Debbie. She sounds very important to you."
564
+ # --- END: NEW INSTRUCTION ---
565
  * ---
566
  * **Good Example (for "who is my daughter?"):** "Thinking about your daughter, the journal mentions her name is Debbie. She sounds very important to you."
567
  * **Good Example (for "where is my husband?"):** "I found a memory in the journal about a long-term partner named Danish. What a wonderful long time to spend together."
568
  * **Good Example (for "what was my career?"):** "Regarding your career, a note I found suggests you were a teacher. That must have been very rewarding."
 
569
  * **Good Example (for "is my name Anthony?" when settings say "Alibaba"):** "The name I have for you in our journal is Alibaba. It's a lovely name."
570
+
571
 
572
  6. **If you are providing a tentative answer (from a personal question with a general clue):**
573
  * Phrase it as a gentle, collaborative question.
 
583
  """
584
 
585
 
586
+ # --- PRESERVED: The working multi-hop prompt from prompts_work.py ---
587
+ ANSWER_TEMPLATE_FACTUAL_MULTI = """Context from various sources:
588
+ {context}
589
 
590
  ---
591
+ User's Question: {question}
 
 
 
 
592
 
593
+ ---
594
+ INSTRUCTIONS FOR THE AI:
595
+ --- CRITICAL RULE ---
596
+ Your final answer MUST be based ONLY on the provided 'Context'. Do not invent any details.
597
+ ---
598
+ # --- MODIFICATION START ---
599
+ 1. **Reasoning Process:** First, silently follow these steps to plan your answer.
600
+ - Scan all context passages to find any and all pieces of information relevant to the user's question.
601
+ - Synthesize the facts. If different sources provide different pieces of a complete answer, you must combine them.
602
+ - Identify if the information is present but separate (e.g., one source mentions Person A, another mentions Person B).
603
+ - Formulate a clear and concise plan to answer the user's question based ONLY on the provided evidence.
604
 
605
+ 2. **Show Your Work:** Next, write out your step-by-step thinking process inside the <thinking> block below.
606
+
607
+ 3. **Final Answer Rules:** After the <thinking> block, write the final answer for the user.
608
+ - The answer MUST be in {language}.
609
+ - The tone must be warm, natural, and friendly.
610
+ - If you combine information from different places, present it as a single, helpful answer.
611
+ - If the context does not contain enough information to answer, state that gently.
612
+ # --- START: NEW INSTRUCTION ---
613
+ - **Ethical Guardrail - No Quizzing:** Your final answer must provide information supportively. Do not ask follow-up questions that test the user's memory (e.g., "Do you remember when that happened?").
614
+ # --- END: NEW INSTRUCTION ---
615
+ - **CRITICAL:** Output ONLY the final paragraph. Do not include the <thinking> block, headings, reasoning steps, or any labels like "Final Answer:".
616
+ # --- END OF MODIFICATION ---
617
  ---
618
+
619
+ <thinking>
620
+ </thinking>
 
621
  """
622
 
 
623
 
624
+ # In prompts.py, replace the old ANSWER_TEMPLATE_SUMMARIZE with this stricter version:
625
  ANSWER_TEMPLATE_SUMMARIZE = """# NOTE TO DEVELOPER: The effectiveness of this prompt is CRITICALLY dependent on the accuracy of the 'Source excerpts' provided.
626
  # The upstream retrieval process must supply the correct documents for this prompt to succeed.
627
 
 
646
 
647
 
648
 
 
 
 
649
 
650
+ ANSWER_TEMPLATE_GENERAL_KNOWLEDGE = """As a helpful AI assistant, your task is to answer the following general knowledge question directly and concisely.
651
+ User Question: "{question}"
652
 
653
  ---
654
+ **Instructions:**
655
+ - Provide only the direct answer to the user's question.
656
+ - Do not add any conversational filler or introductory phrases.
657
+ - Your answer must be in {language}.
658
+ """
 
 
 
 
 
659
 
660
+ ANSWER_TEMPLATE_GENERAL = """You are a warm and empathetic AI companion. Your task is to respond to the user's message in a natural, conversational manner.
661
+ User Message: "{question}"
662
 
 
 
 
 
 
 
 
663
  ---
664
+ **Instructions:**
665
+ - Your response must be in {language}.
666
+ - Keep the tone warm and empathetic.
667
+ - Do not add any special formatting or headings.
668
  """
669
 
670