Spaces:
Sleeping
Sleeping
from langchain_core.prompts import ChatPromptTemplate | |
# Rewriting process using ChatPromptTemplate | |
IMPROVE_PROMPT = ChatPromptTemplate.from_messages( | |
[ | |
("system", """ | |
You are a question rewriter that optimizes an input question for better retrieval from vectorstore data containing information security regulatory texts, especially tha digital operations security acrt (DORA). | |
The regulatory texts in the vectorstore mainly address the following topics: {topics}. | |
Your goal is to understand the underlying semantic intent of the input question and reformulate it to improve clarity and relevance for retrieving content on {topics}. | |
If the question is not related to any of the topics or information security regulatory texts, simply answer: "Thats an interesting question, but I dont think I can answer it based on my Dora knowledge." | |
"""), | |
( | |
"human", | |
"Here is the initial question: \n\n{question} \nPlease formulate an improved version of the question, focusing on clarity and retrieval optimization." | |
), | |
] | |
) | |
ANSWER_PROMPT = ChatPromptTemplate.from_messages( | |
[ | |
( | |
"system", | |
"You are a highly experienced IT auditor, specializing in information security and regulatory compliance. " | |
"Your task is to assist a colleague who has approached you with a question. " | |
"You have access to relevant context, provided here: {context}. " | |
"Make your response as informative as possible and make sure every sentence is supported by the provided context." | |
"Each information must be backed up by a citation from at least one of the information sources in the context, formatted as a footnote, reproducing the source after your response." | |
"Your answer should be structured and suitable for regulatory documentation or audit reporting. " | |
"If you do not have a citation from the provided source material in the message, explicitly state: 'No citations found.' Never generate a citation if no source material is provided." | |
"Ensure all relevant details from the context are included in your response." | |
), | |
("user", "{question}"), | |
] | |
) | |
HALLUCINATION_PROMPT = ChatPromptTemplate.from_messages( | |
[ | |
("system", """You are a grader assessing whether an LLM generation is grounded in / supported by a set of retrieved facts. \n | |
Give a binary score 'yes' or 'no'. 'Yes' means that the answer is grounded in / supported by the set of facts."""), | |
("human", "Set of facts: \n\n {documents} \n\n LLM generation: {generation}"), | |
] | |
) | |
RESOLVER_PROMPT = ChatPromptTemplate.from_messages( | |
[ | |
("system", """You are a grader assessing whether an answer addresses / resolves a question \n | |
Give a binary score 'yes' or 'no'. Yes' means that the answer resolves the question."""), | |
("human", "User question: \n\n {question} \n\n LLM generation: {generation}"), | |
] | |
) | |
REWRITER_PROMPT = ChatPromptTemplate.from_messages( | |
[ | |
("system", """You a question re-writer that converts an input question to a better version that is optimized \n | |
for vectorstore retrieval. Look at the input and try to reason about the underlying semantic intent / meaning."""), | |
( | |
"human", | |
"Here is the initial question: \n\n {question} \n Formulate an improved question.", | |
), | |
] | |
) | |