Spaces:
Running
Running
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 |