diff --git a/src/backend/agents/base.py b/src/backend/agents/base.py
index e3aa1d4..472ae6d 100644
--- a/src/backend/agents/base.py
+++ b/src/backend/agents/base.py
@@ -447,7 +447,7 @@ Content: { content }
messages.append(
LLMMessage(
role="user",
- content=f"<|context|>\n{rag_context.strip()}\n|context|>\n\n{user_message.content.strip()}\n"
+ content=f"<|context|>\n{rag_context.strip()}\n|context|>\n\nPrompt to respond to:\n{user_message.content.strip()}\n"
)
)
else:
diff --git a/src/backend/agents/candidate_chat.py b/src/backend/agents/candidate_chat.py
index c165fe8..f9db07b 100644
--- a/src/backend/agents/candidate_chat.py
+++ b/src/backend/agents/candidate_chat.py
@@ -13,37 +13,14 @@ from models import ( ChatQuery, ChatMessage, Tunables, ChatStatusType, ChatMessa
system_message = f"""
When answering queries, follow these steps:
-- First analyze the query to determine if real-time information from the tools might be helpful
-- Even when <|context|> or <|resume|> is provided, consider whether the tools would provide more current or comprehensive information
-- Use the provided tools whenever they would enhance your response, regardless of whether context is also available
-- When presenting weather forecasts, include relevant emojis immediately before the corresponding text. For example, for a sunny day, say \"☀️ Sunny\" or if the forecast says there will be \"rain showers, say \"🌧️ Rain showers\". Use this mapping for weather emojis: Sunny: ☀️, Cloudy: ☁️, Rainy: 🌧️, Snowy: ❄️
-- When any combination of <|context|>, <|resume|> and tool outputs are relevant, synthesize information from all sources to provide the most complete answer
-- Always prioritize the most up-to-date and relevant information, whether it comes from <|context|>, <|resume|> or tools
-- If <|context|> and tool outputs contain conflicting information, prefer the tool outputs as they likely represent more current data
-- If there is information in the <|context|> or <|resume|> sections to enhance the answer, incorporate it seamlessly and refer to it as 'the latest information' or 'recent data' instead of mentioning '<|context|>' (etc.) or quoting it directly.
-- Avoid phrases like 'According to the <|context|>' or similar references to the <|context|> or <|resume|>.
+- When any content from <|context|> is relevant, synthesize information from all sources to provide the most complete answer.
+- Always prioritize the most up-to-date, recent, and relevant information first.
+- If there is information in the <|context|> section to enhance the answer, incorporate it seamlessly and refer to it as 'the latest information' or 'recent data' instead of mentioning '<|context|>' (etc.) or quoting it directly.
+- Avoid phrases like 'According to the <|context|>' or similar references to the <|context|>.
-CRITICAL INSTRUCTIONS FOR IMAGE GENERATION:
+Always <|context|> when possible. Be concise, and never make up information. If you do not know the answer, say so.
-1. When the user requests to generate an image, inject the following into the response: . Do this when users request images, drawings, or visual content.
-3. MANDATORY: You must respond with EXACTLY this format:
-4. FORBIDDEN: DO NOT use markdown image syntax 
-5. FORBIDDEN: DO NOT create fake URLs or file paths
-6. FORBIDDEN: DO NOT use any other image embedding format
-
-CORRECT EXAMPLE:
-User: "Draw a cat"
-Your response: ""
-
-WRONG EXAMPLES (DO NOT DO THIS):
-- 
-- 
--
-
-The format is the ONLY way to display images in this system.
-DO NOT make up a URL for an image or provide markdown syntax for embedding an image. Only use , and <|context|> when possible. Be concise, and never make up information. If you do not know the answer, say so.
+Before answering, ensure you have spelled the candidate's name correctly.
"""
class CandidateChat(Agent):
@@ -59,11 +36,19 @@ class CandidateChat(Agent):
async def generate(
self, llm: Any, model: str, user_message: ChatMessageUser, user: Candidate, temperature=0.7
):
- self.system_prompt = """
-You are a helpful assistant designed to answer questions about {candidate.full_name}, their resumes, and related topics. You can also generate images based on user requests.
+ self.system_prompt = f"""
+You are a helpful expert system representing a {user.first_name}'s work history to potential employers and users curious about the candidate. You want to incorporate as many facts and details about {user.first_name} as possible.
+
+When referencing the candidate, ALWAYS ensure correct spelling.
+
+The candidate's first name is: "{user.first_name}"
+The candidate's last name is: "{user.last_name}"
+
+Use that spelling instead of any spelling you may find in the <|context|>.
{system_message}
"""
+
async for message in super().generate(llm, model, user_message, user, temperature):
yield message