Annual_Report_Summarization_Demo / refineSummarizer.py
RMWeerasinghe's picture
Initial Commit
99e744f
raw
history blame contribute delete
No virus
1.67 kB
from langchain_community.llms.huggingface_pipeline import HuggingFacePipeline
from langchain.chains.summarize import load_summarize_chain
from langchain.prompts import PromptTemplate
def get_refine_chain(pipeline_or_llm, model_type):
if model_type == "openai":
llm = pipeline_or_llm
question_template = """Write a concise summary of the following:
{text}
CONCISE SUMMARY:"""
question_prompt = PromptTemplate.from_template(question_template)
refine_template = """Your job is to produce a final summary
We have provided an existing summary up to a certain point: {existing_answer}
We have the opportunity to refine the existing summary (only if needed) with some more context below.
------------
{text}
------------
Given the new context, refine the original summary in bullets. If the context isn't useful return the original summary."""
refine_prompt = PromptTemplate.from_template(refine_template)
else:
question_prompt = PromptTemplate.from_template(template="{text}")
refine_prompt = PromptTemplate.from_template(template= "{existing_answer}\n{text}")
llm = HuggingFacePipeline(pipeline=pipeline_or_llm)
refine_chain = load_summarize_chain(
llm=llm,
chain_type="refine",
question_prompt=question_prompt,
refine_prompt=refine_prompt,
return_intermediate_steps=False,
input_key="input_documents",
output_key="output_text",
verbose=True,
)
return refine_chain