| 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 | |