Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pickle | |
#from Summarizer_Helper import Summary_Gen | |
from gpt4all import GPT4All | |
import textwrap | |
with open('examples.pkl', 'rb') as f: | |
example_list = pickle.load(f) | |
# Model initialization (assuming the model is already downloaded) | |
from huggingface_hub import hf_hub_download | |
model_path = "models" | |
model_name = "Llama-2-7b-MOM_Summar.Q2_K.gguf" | |
# hf_hub_download(repo_id="sasvata/Llama2-7b-MOM-Summary-Finetuned-GGUF", filename=model_name, local_dir=model_path, local_dir_use_symlinks=False) | |
print("Start the model init process") | |
model = GPT4All(model_name, model_path, allow_download = False, device="cpu") | |
print("Finish the model init process") | |
## Function to convert plain text to markdown format | |
def to_markdown(text): | |
text = text.replace('•', ' *') | |
return textwrap.indent(text, '> ', predicate=lambda _: True) | |
# Default system prompt for generating conversation summaries | |
DEFAULT_SYSTEM_PROMPT = """ | |
Below is a conversation between a human and an AI agent. Write a summary of the conversation. | |
""".strip() | |
def generate_prompt( | |
Transcript: str, system_prompt: str = DEFAULT_SYSTEM_PROMPT | |
) -> str: | |
return f"""### Instruction: {system_prompt} | |
### Input: | |
{Transcript.strip()} | |
### Response: | |
""".strip() | |
# Function to generate summary with the help of fine-tuned model | |
def Summary_Gen(Transcript): | |
prompt = generate_prompt(Transcript) | |
summary = model.generate(prompt=prompt,max_tokens=1024) | |
return summary | |
# Function for text summarization | |
def summarize_text(text): | |
summarized_text = Summary_Gen(text) | |
return summarized_text | |
st.set_page_config(layout="wide", page_title="MOM-Summary-Generator📑", page_icon="📑") | |
st.title("Minutes Of Meeting (MOM) - Summary Generator 📑") | |
# Text input and output elements | |
option = st.selectbox( | |
"Choose Example", | |
example_list, | |
index=None, | |
placeholder="Choose Example", | |
) | |
col1, col2 = st.columns(2) | |
col1.title('Input') | |
col2.title('Output') | |
col1.container(height=500, border=True).text_area("", option, height=1000) | |
if col1.button("Summarize"): | |
with st.spinner('Wait for it...'): | |
summary_output = summarize_text(option) | |
col2.container(height=500, border=True).markdown(summary_output, unsafe_allow_html=True) | |
with st.expander("Results Overview"): | |
# Text input and output elements | |
option = st.selectbox( | |
"Choose Example 2", | |
example_list, | |
index=1, | |
placeholder="Choose Example", | |
) | |
col1, col2 = st.columns(2) | |
col1.title('Input') | |
col1.container(height=500, border=True).markdown(option, unsafe_allow_html=True) | |
col2.title('Output') | |
col2.container(height=500, border=True).markdown(option, unsafe_allow_html=True) | |