Spaces:
Build error
Build error
| 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() |