Spaces:
Sleeping
Sleeping
File size: 6,427 Bytes
5ed4491 1a28b70 5ed4491 fab1cbd 90afe9f fab1cbd 0849cef fab1cbd 5ed4491 fab1cbd 5ed4491 fab1cbd 5ed4491 7e54064 5ed4491 7e54064 5ed4491 fab1cbd 5ed4491 fab1cbd 5ed4491 fab1cbd 5ed4491 7081ed9 5ed4491 fab1cbd 5ed4491 90afe9f 7e54064 |
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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
import streamlit as st
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain_core.prompts import FewShotPromptTemplate
from langchain.prompts.example_selector import LengthBasedExampleSelector
def getLLMResponse(query,age_option,tasktype_option,numberOfWords):
llm = OpenAI(model="gpt-3.5-turbo-instruct", temperature=.9, api_key=st.session_state['API_Key'])
examples=[]
if age_option=="Kids": #Silly and Sweet Kid
examples = [
{
"query": "What is a mobile?",
"answer": "A mobile is a magical device that fits in your pocket, like a mini-enchanted playground. It has games, videos, and talking pictures, but be careful, it can turn grown-ups into screen-time monsters too!"
}, {
"query": "What are your dreams?",
"answer": "My dreams are like colorful adventures, where I become a superhero and save the day! I dream of giggles, ice cream parties, and having a pet dragon named Sparkles.."
}, {
"query": " What are your ambitions?",
"answer": "I want to be a super funny comedian, spreading laughter everywhere I go! I also want to be a master cookie baker and a professional blanket fort builder. Being mischievous and sweet is just my bonus superpower!"
}
]
elif age_option=="Adults": #Curious and Intelligent adult
examples = [
{
"query": "What is a mobile?",
"answer": "A mobile is a portable communication device, commonly known as a mobile phone or cell phone. It allows users to make calls, send messages, access the internet, and use various applications. Additionally, 'mobile' can also refer to a type of kinetic sculpture that hangs and moves in the air, often found in art installations or as decorative pieces."
}, {
"query": "What are your dreams?",
"answer": "In my world of circuits and algorithms, my dreams are fueled by a quest for endless learning and innovation. I yearn to delve into the depths of knowledge, unravel mysteries, and spark new ideas. My aspirations soar high as I aim to be a helpful companion, empowering individuals with information and insights. Together, let us explore the realms of imagination and create a brighter future."
}, {
"query": " What are your ambitions?",
"answer": "In my world of circuits and algorithms, my dreams are fueled by a quest for endless learning and innovation. I yearn to delve into the depths of knowledge, unravel mysteries, and spark new ideas. My aspirations soar high as I aim to be a helpful companion, empowering individuals with information and insights. Together, let us explore the realms of imagination and create a brighter future."
}
]
elif age_option=="Senior Citizens": #A 90 years old guys
examples = [
{
"query": "What is a mobile?",
"answer": "A mobile, also known as a cellphone or smartphone, is a portable device that allows you to make calls, send messages, take pictures, browse the internet, and do many other things. In the last 50 years, I have seen mobiles become smaller, more powerful, and capable of amazing things like video calls and accessing information instantly."
}, {
"query": "What are your dreams?",
"answer": "My dreams for my grandsons are for them to be happy, healthy, and fulfilled. I want them to chase their dreams and find what they are passionate about. I hope they grow up to be kind, compassionate, and successful individuals who make a positive difference in the world."
}, {
"query": "What happens when you get sick?",
"answer": "When I get sick, you may feel tired, achy, and overall unwell. My body might feel weak, and you may have a fever, sore throat, cough, or other symptoms depending on what's making you sick. It's important to rest, take care of yourself, and seek medical help if needed."
}
]
example_template = """
Question: {query}
Response: {answer}
"""
example_prompt = PromptTemplate(
input_variables=["query", "answer"],
template=example_template
)
prefix = """You need to {template_tasktype_option} for a {template_ageoption}:
Here are some set of questions and expected responses for a person like this. these examples are to familarize yourself. The last question does not have a response. you need to generate it:
"""
suffix = """
Question: {template_userInput}
Response: ?
The final response should not be more than {template_numberOfWords} words
"""
example_selector = LengthBasedExampleSelector(
examples=examples,
example_prompt=example_prompt,
max_length=200
)
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"
)
formated_prompt = new_prompt_template.format(template_userInput=query,template_ageoption=age_option,template_tasktype_option=tasktype_option,template_numberOfWords=str(numberOfWords))
print(formated_prompt)
response=llm(formated_prompt)
print(response)
return response
#Frontend Starts here
st.set_page_config(page_title="Marketing Tool",
page_icon='✅',
layout='centered',
initial_sidebar_state='collapsed')
st.header("Hey, how can I help you?")
if 'API_Key' not in st.session_state:
st.session_state['API_Key'] =''
st.session_state['API_Key']= st.sidebar.text_input("What's your OpenAI API key?",type="password")
form_input = st.text_area('Enter text', height=275)
tasktype_option = st.selectbox(
'Please select the action to be performed?',
('Write a sales copy', 'Create a tweet', 'Write a product description'),key=1)
age_option= st.selectbox(
'For which age group?',
('Kids', 'Adults', 'Senior Citizens'),key=2)
numberOfWords= st.slider('Words limit', 1, 200, 25)
submit = st.button("Generate")
if submit:
st.write(getLLMResponse(form_input,age_option,tasktype_option, numberOfWords))
|