import streamlit as st from langchain.llms import OpenAI from langchain.prompts import PromptTemplate from langchain import FewShotPromptTemplate from langchain.prompts.example_selector import LengthBasedExampleSelector from dotenv import load_dotenv load_dotenv() # load the env-sample.txt file def getLLMResponse(query, age_option,tasktype_option): examples = [] llm = OpenAI(temperature=.9, model="gpt-3.5-turbo-instruct") example_template = """ Question: {query} Response: {answer} """ example_prompt = PromptTemplate( input_variables=["query", "answer"], template=example_template ) prefix = """You are a {template_ageoption}, and you are going to {template_tasktype_option} , you give one answer for each query. it is strictly limited to 1 answer only, and the answer MUST be LESS THAN 200 words. For a tweet, you SHOULD NOT give more than 280 characters. If it is not to write for a tweet, DO NOT give a tweet suggestion in your answer. """ suffix = """ Question: {template_userInput} Response: """ example_selector = LengthBasedExampleSelector( examples=examples, example_prompt=example_prompt, max_length = numberOfWords ) new_prompt_template = FewShotPromptTemplate( example_selector=example_selector, # use example_selector instead of examples example_prompt=example_prompt, prefix=prefix, suffix=suffix, input_variables=["template_userInput","template_ageoption","template_tasktype_option"], example_separator="\n" ) print(new_prompt_template.format(template_userInput=query,template_ageoption=age_option,template_tasktype_option=tasktype_option)) response=llm(new_prompt_template.format(template_userInput=query,template_ageoption=age_option,template_tasktype_option=tasktype_option)) print(response) return response #UI Starts here st.set_page_config(page_title="PitchPal: Your Friendly Copy Assistant", page_icon='💻', layout='centered', initial_sidebar_state='collapsed') # Custom CSS for styling st.markdown( """ """, unsafe_allow_html=True) st.markdown("