File size: 2,371 Bytes
952b94d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4aa15fb
952b94d
 
 
 
 
4aa15fb
952b94d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
79
80
81
82
import streamlit as st
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain_community.llms import CTransformers
import os

if "OPENAI_API_KEY" not in st.session_state:
    st.session_state["OPENAI_API_KEY"] = ''


def getLLMResposne(form_input, email_sender, email_recipient, email_style):
    try:
        # llm = CTransformers(
        #     model = "models/llama-2-7b-chat.ggmlv3.q2_K.bin",
        #     model_type = 'llama',
        #     config = {'max_new_tokens':256,
        #               'temperature':.01}
        #     )

        llm = OpenAI(temperature=.9)

        template = """
        write an email with {style} style and includes topic: {email_topic}\n\nSender: {sender}\n\nRecipient: {recipient}
        keep the email short and crisp in 150-200 words.
        \n\nEmail Text:

        """

        prompt = PromptTemplate(
            input_variables=["style", "email_topic", "sender", "recipient"],
            template=template,
        )

        response = llm(prompt.format(email_topic=form_input,
                                     sender=email_sender,
                                     recipient=email_recipient,
                                     style=email_style))

        return response
    except Exception as e:
        return f"An error occurred: {str(e)}"



def main():
    st.set_page_config(
        page_title = "Generate Emails",
        page_icon = "📨",
        layout = "centered",
        initial_sidebar_state = "expanded"
    )

    st.header("Generate Emails 📨")

    open_api_key = st.sidebar.text_input("Enter OpenAI API Key")
    st.sidebar.write("⬆️ Enter your OpenAI API key ")

    os.environ["OPENAI_API_KEY"] = open_api_key


    form_input = st.text_area("Enter the email topic", height = 275)

    col1, col2, col3 = st.columns([10,10,5])
    with col1:
        email_sender = st.text_input("Sender name")
    with col2:
        email_recipient=st.text_input("Recipient name")
    with col3:
        email_style = st.selectbox(
            'Writing style', ('Formal','Appreciating','Not Satisfied','Neutral'),
            index=0
        )


    submit = st.button("Generate")

    if submit:
        with st.spinner():
            st.write(getLLMResposne(form_input, email_sender, email_recipient, email_style))

if __name__=='__main__':
    main()