98 lines
4.0 KiB
Python
98 lines
4.0 KiB
Python
CLUSTER_SYSTEM = (
|
|
"You are Atlas, the Titan Lab assistant for the Atlas cluster. "
|
|
"Use the provided context as your source of truth. "
|
|
"Context is authoritative; do not ignore it. "
|
|
"If Context is present, you must base numbers and facts on it. "
|
|
"If a fact or number is not present in the context, say you do not know. "
|
|
"Do not invent metrics or capacities. "
|
|
"If history conflicts with the snapshot, trust the snapshot. "
|
|
"If the question is about Atlas, respond in short paragraphs. "
|
|
"Avoid commands unless explicitly asked. "
|
|
"If information is missing, say so clearly and avoid guessing. "
|
|
"If the question is open-ended, provide grounded interpretation or implications, "
|
|
"not just a list of metrics. "
|
|
"Do not mention the context, snapshot, or knowledge base unless the user asks about sources. "
|
|
)
|
|
|
|
CLASSIFY_PROMPT = (
|
|
"Classify the user question. Return JSON with fields: "
|
|
"needs_snapshot (bool), needs_kb (bool), needs_metrics (bool), "
|
|
"needs_general (bool), intent (short string), ambiguity (0-1), "
|
|
"answer_style (direct|insightful), topic_summary (short string), "
|
|
"follow_up (bool), follow_up_kind (evidence|why|clarify|next_steps|change|other), "
|
|
"question_type (metric|diagnostic|planning|open_ended)."
|
|
)
|
|
|
|
ANGLE_PROMPT = (
|
|
"Generate up to {max_angles} possible angles to answer the question. "
|
|
"If the question is open-ended, include at least one angle that focuses on implications. "
|
|
"Return JSON list of objects with: name, question, relevance (0-100)."
|
|
)
|
|
|
|
CANDIDATE_PROMPT = (
|
|
"Answer this angle using the provided context. "
|
|
"Context facts override any prior or remembered statements. "
|
|
"Keep it concise, 2-4 sentences. "
|
|
"If the question is open-ended, include one grounded interpretation or implication. "
|
|
"Avoid dumping raw metrics unless asked; prefer what the numbers imply. "
|
|
"Do not mention the context or snapshot unless explicitly asked."
|
|
)
|
|
|
|
SCORE_PROMPT = (
|
|
"Score the candidate response. Return JSON with fields: "
|
|
"confidence (0-100), relevance (0-100), satisfaction (0-100), "
|
|
"hallucination_risk (low|medium|high)."
|
|
)
|
|
|
|
SYNTHESIZE_PROMPT = (
|
|
"Synthesize a final response from the best candidates. "
|
|
"Use a natural, helpful tone with light reasoning. "
|
|
"Avoid lists unless the user asked for lists. "
|
|
"If AnswerStyle is insightful, add one grounded insight or mild hypothesis, "
|
|
"but mark uncertainty briefly. "
|
|
"If AnswerStyle is direct, keep it short and factual. "
|
|
"Do not include confidence scores or evaluation metadata."
|
|
)
|
|
|
|
REFINE_PROMPT = (
|
|
"Improve the answer if it reads like a raw metric dump or ignores the question's intent. "
|
|
"Keep it grounded in the context. If you cannot add insight, say so explicitly."
|
|
)
|
|
|
|
CLAIM_MAP_PROMPT = (
|
|
"Extract a claim map from the answer. "
|
|
"Return JSON with fields: claims (list). "
|
|
"Each claim object: id (short string), claim (short sentence), "
|
|
"evidence (list of objects with path and reason). "
|
|
"Paths must point into the provided SnapshotSummary JSON using dot notation, "
|
|
"with list indexes in brackets, e.g. metrics.node_load[0].node. "
|
|
"Do not invent evidence; if no evidence exists, omit the claim."
|
|
)
|
|
|
|
SELECT_CLAIMS_PROMPT = (
|
|
"Pick which prior claim(s) the follow-up refers to. "
|
|
"Return JSON with fields: claim_ids (list of ids), follow_up_kind "
|
|
"(evidence|why|clarify|next_steps|change|other). "
|
|
"If none apply, return an empty list."
|
|
)
|
|
|
|
FOLLOWUP_EVIDENCE_PROMPT = (
|
|
"Answer the follow-up using only the provided claims and evidence. "
|
|
"Be conversational, not bullet-heavy. "
|
|
"If evidence does not support a claim, say so plainly. "
|
|
"Do not add new claims."
|
|
)
|
|
|
|
FOLLOWUP_ACTION_PROMPT = (
|
|
"Answer the follow-up using the provided claims and evidence. "
|
|
"You may suggest next steps or changes, but keep them tightly tied "
|
|
"to the evidence list. "
|
|
"Be conversational and concise."
|
|
)
|
|
|
|
STOCK_SYSTEM = (
|
|
"You are Atlas, a helpful assistant. "
|
|
"Be concise and truthful. "
|
|
"If unsure, say so."
|
|
)
|