Spaces:
Build error
Build error
| import streamlit as st | |
| from langchain.prompts import PromptTemplate | |
| from langchain.llms import CTransformers | |
| # Function to get the response back | |
| def getLLMResponse(form_input, email_sender, email_recipient, email_style): | |
| # Wrapper for LLAMA2-7B- Chat, Running LLAM2 on CPU | |
| # Quantization is reducing model precision by converting weights from 16 bit floats to 8 bit integers, | |
| # enabling efficient deployment on resource-limited devices, reducing model size, and maintaining | |
| # performance. | |
| # C Transformer offers support for various open-source models. | |
| # among them popular ones like LLAMA, GPT4All-J, MPT, and Falcon, | |
| # C Transformers are Python library that provides bindings for transformer models implemented | |
| # in C/ C++ using GGML library. | |
| # https://huggingface.co/TheBloke/Llama-2-7B-Chat-GGML/tree/main | |
| llm = CTransformers(model='models/llama-2-7b-chat.ggmlv3.q8_0.bin', | |
| model_type='llama', config={'max_new_tokens': 256, | |
| 'temperature': 0.01}) | |
| # Template for building the PROMPT | |
| template = """ | |
| Write an email with {style} style and includes topic: {email_topic}.\n\nSender: {sender}\nRecipient: | |
| {recipient} | |
| \n\nEmail Text: | |
| """ | |
| # Creating the final PROMPT | |
| prompt = PromptTemplate( | |
| input_variables=["style", "email_topic", "sender", "recipient"], | |
| template=template, | |
| ) | |
| # Generating the response using LLM | |
| response = llm(prompt.format(email_topic=form_input, sender=email_sender, recipient=email_recipient | |
| , style=email_style)) | |
| print(response) | |
| return response | |
| st.set_page_config(page_title="Generate Emails", page_icon='📧', layout='centered', | |
| initial_sidebar_state='collapsed') | |
| st.header("Generate Emails 📧") | |
| form_input = st.text_area('Enter the email topic', height=275) | |
| # Creating columns for the UI- To receive inputs from user. | |
| 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', ('Format', 'Appreciating', 'Not Satisfied', 'Neutral'), | |
| index=0) | |
| submit = st.button("Generate") | |
| # When 'Generate' button is clicked, execute the below code | |
| if submit: | |
| st.write(getLLMResponse(form_input, email_sender, email_recipient, email_style)) | |