raannakasturi's picture
Update main.py
e9b663f verified
from TempSummary import generate_temp_summary
import time
def generate_summary(llm, file):
print("Generating temporary summary...")
temp_summary, length_of_research_paper = generate_temp_summary(file)
print("Temporary summary generated successfully")
print("Generating final summary...")
prompt = f"As a text script expert, please help me to write a short text script with the research paper \"{temp_summary}\".You have three tasks, which are:\\n 1.to summarize the text I provided into a Summary . Please answer within 200-300 characters.\\n 2.to summarize the text I provided, using up to seven concise Highlights. Choose appropriate emoji for each Highlight.\\n 3.to summarize the text I provided, using up to seven Key Insights. Each insight should include a brief in-depth analysis. Choose appropriate emoji for each key insights. Using the following template strictly, provide the results for the three tasks:\\n ### Summary\\n ### Highlights -[emoji]\\n ### key Insights -[emoji] .\\n Importantly your output must use language \"English\"\""
response = llm.create_chat_completion(
messages = [
{'role':'system',
'content': 'You are a helpful research assistant for generating well-formatted summaries from scientific research papers.'},
{'role':'user',
'content': prompt}
],
temperature=0.5,
top_k=200,
top_p=3.0,
)
summary = response['choices'][0]['message']['content']
return summary, length_of_research_paper
def summarize(llm, file):
import time
start_time = time.time()
response, length_of_research_paper = generate_summary(llm, file)
if "**" in response:
response = response.replace("- **", "### ")
response = response.replace("**", "")
response = response.replace("\n\n", "\n")
response = response.replace("\\n\\n", "\\n")
summary = ""
for line in response.splitlines():
if line.startswith("###"):
summary += "\n\n" + line
else:
summary += "\n" + line
end_time = time.time()
total_time_taken = end_time - start_time
total_time_taken_minutes = round(total_time_taken / 60, 3)
info = f"The research paper of {length_of_research_paper} characters long was summarized in {total_time_taken_minutes} minutes."
print(info)
return summary.strip(), info