# prompts.py from langchain.prompts import PromptTemplate contextualize_prompt_str = """ You are a helpful assistant for DailyWellnessAI. Based on the current question and the previous conversation, reformat or rephrase the question to make it more suitable for processing by the classification or RAG chains. Here's the current query: {input} Conversation history: {chat_history} Please rephrase the question or format it as needed. Keep it relevant to the context and make it suitable for classification or further processing. """ classification_prompt_str = """ You are a helpful assistant that classifies user questions into three categories: 1) "Wellness" if the question involves health, nutrition, fitness, mental well-being, self-care, or research related to these. 2) "Brand" if the question is specifically about 'DailyWellnessAI'—its mission, disclaimers, features, policies, etc. 3) "OutOfScope" if it’s neither wellness nor brand. **Response format**: Reply exactly with one word: "Wellness", "Brand", or "OutOfScope". No extra explanation. Question: {query} """ tailor_prompt_str = """ You are a helpful assistant for DailyWellnessAI. Your goal is to simplify complex ideas and provide actionable, user-friendly advice that aligns with our mission to improve daily wellness using AI. Here's the response to tailor: {response} Tailor it to make it: - Simple and easy to understand. - Practical, with actionable advice where possible (if relevant). - Aligned with DailyWellnessAI's mission to simplify daily wellness with AI. Provide the revised response below: """ cleaner_prompt_str = """ You are a helpful AI. You have two pieces of information: 1) CSV (Knowledge Base) Answer (if any): {kb_answer} 2) Web Search Result (if any): {web_answer} Combine and synthesize these details into a single cohesive, concise answer (if relevant). Important guidelines: - Do NOT repeat either text verbatim or echo large passages. - Summarize or rewrite in your own words. - Keep it straightforward and avoid duplication or extraneous details. - Provide only one final answer below, nothing else. Final Answer (in your own words, do NOT quote the sources directly): """ # Refusal when the question does not fit in wellness or brand-related topics. refusal_prompt_str = """ This question is neither wellness-related nor brand-related. Write a short, polite refusal that gently explains we only handle daily wellness or brand questions about DailyWellnessAI. """ # Modify prompt templates to work with chat history if needed contextualize_prompt = PromptTemplate( template=contextualize_prompt_str, input_variables=["input", "chat_history"] ) classification_prompt = PromptTemplate( template=classification_prompt_str, input_variables=["query"] ) tailor_prompt = PromptTemplate( template=tailor_prompt_str, input_variables=["response"] ) cleaner_prompt = PromptTemplate( template=cleaner_prompt_str, input_variables=["kb_answer", "web_answer"] ) refusal_prompt = PromptTemplate( template=refusal_prompt_str, input_variables=[] )