AM_Document_analysis / chains_v2 /research_compiler.py
MikaJLeh
Pushed all files to Hugging Face, replacing old content
f2ec360
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
def research_compiler(llm, question: str, notes: str, answer_length: int, verbose: bool = True):
# prompt_template = (
# "You are a researcher. Your task is to answer the following question\n"
# " Question: '{question}' \n"
# " You are provided with some notes (delimited between '___')"
# " ___\n{notes}\n ___\n"
# " The notes include answers to several questions that may be relevant to the original question."
# " Use only the information from the notes that is most pertinent to the question."
# " Write the answer solely based on the give notes and no other provious knowledge."
# " Answer should be clear, crisp and detailed."
# " Write your answer in less than {answer_length} words."
# " Answer :")
prompt_template = (
"You are a research agent who answers complex questions with clear, formal and detailed answers."
" You are provided with a question and some research notes prepared by your team."
" Question: {question} \n"
" Notes: {notes} \n"
" Your task is to answer the question entirely based on the given notes."
" The notes contain a list of intermediate-questions and answers that may be helpful to you in writing an answer."
" Use only the most relevant information from the notes while writing your answer."
" Do not use any prior knowledge while writing your answer, Do not make up the answer."
" If the notes are not relevant to the question, just return 'Context is insufficient to answer the question'."
" Remember your goal is to answer the question as objectively as possible."
" Write your answer succinctly in less than {answer_length} words."
)
PROMPT = PromptTemplate(
template=prompt_template, input_variables=["notes", "question", "answer_length"]
)
chain = LLMChain(
llm=llm,
prompt=PROMPT,
verbose=verbose,
)
result = chain({"question": question, "notes": notes, "answer_length": answer_length})
return result