File size: 2,289 Bytes
177939a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3678cf6
177939a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3678cf6
fb9bcab
177939a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
03b49d5
 
 
177939a
 
df350fa
 
03b49d5
 
7a002a8
177939a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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)