Spaces:
Running
Running
Character radio add
Browse files
app.py
CHANGED
@@ -12,10 +12,11 @@ TEMPERATURE_DEFAULT = 0.5
|
|
12 |
EMOTION_DEFAULT = "N/A"
|
13 |
TRANSLATE_TO_DEFAULT = "Don't translate"
|
14 |
LITERARY_STYLE_DEFAULT = "Prose"
|
|
|
15 |
PROMPT_TEMPLATE = PromptTemplate(
|
16 |
-
input_variables=["original_words", "num_words", "formality", "emotions", "translate_to", "literary_style"],
|
17 |
-
template="Express {num_words}in a {formality} manner, "
|
18 |
-
"{emotions}{translate_to}{literary_style}the following: \n{original_words}\n",
|
19 |
)
|
20 |
|
21 |
|
@@ -35,7 +36,7 @@ def set_openai_api_key(api_key, openai_api_key, temperature, llm_chain):
|
|
35 |
def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, formality,
|
36 |
anticipation_level, joy_level, trust_level,
|
37 |
fear_level, surprise_level, sadness_level, disgust_level, anger_level,
|
38 |
-
|
39 |
if not openai_api_key or openai_api_key == "":
|
40 |
return "<pre>Please paste your OpenAI API key (see https://beta.openai.com)</pre>"
|
41 |
|
@@ -99,18 +100,28 @@ def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, form
|
|
99 |
elif literary_style == "Knock-knock":
|
100 |
literary_style_str = "as a very funny knock-knock joke, "
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
formatted_prompt = PROMPT_TEMPLATE.format(
|
103 |
original_words=desc,
|
104 |
num_words=num_words_prompt,
|
105 |
formality=formality,
|
106 |
emotions=emotions_str,
|
107 |
translate_to=translate_to_str,
|
108 |
-
literary_style=literary_style_str
|
|
|
109 |
)
|
110 |
|
111 |
generated_text = llm_chain.run({'original_words': desc, 'num_words': num_words_prompt, 'formality': formality,
|
112 |
'emotions': emotions_str, 'translate_to': translate_to_str,
|
113 |
-
'literary_style': literary_style_str}).strip()
|
114 |
|
115 |
# replace all newlines with <br> in generated_text
|
116 |
generated_text = generated_text.replace("\n", "<br>")
|
@@ -148,6 +159,7 @@ with block:
|
|
148 |
anger_level_state = gr.State(EMOTION_DEFAULT)
|
149 |
translate_to_state = gr.State(TRANSLATE_TO_DEFAULT)
|
150 |
literary_style_state = gr.State(LITERARY_STYLE_DEFAULT)
|
|
|
151 |
|
152 |
with gr.Row():
|
153 |
temperature_slider = gr.Slider(label="GPT Temperature", value=TEMPERATURE_DEFAULT, minimum=0.0, maximum=1.0,
|
@@ -178,6 +190,12 @@ with block:
|
|
178 |
inputs=[formality_radio, formality_state],
|
179 |
outputs=[formality_state])
|
180 |
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
translate_to_radio = gr.Radio(label="Translate to:", choices=[
|
182 |
TRANSLATE_TO_DEFAULT, "Arabic", "British English", "Chinese (Simplified)", "Chinese (Traditional)",
|
183 |
"Czech", "Danish", "Dutch", "emojis", "English", "Finnish", "French", "Gen Z slang", "German", "Greek",
|
@@ -277,7 +295,7 @@ with block:
|
|
277 |
formality_state,
|
278 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
279 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
280 |
-
translate_to_state, literary_style_state],
|
281 |
outputs=[output])
|
282 |
|
283 |
request.submit(transform_text,
|
@@ -286,7 +304,7 @@ with block:
|
|
286 |
formality_state,
|
287 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
288 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
289 |
-
translate_to_state, literary_style_state],
|
290 |
outputs=[output])
|
291 |
|
292 |
openai_api_key_textbox.change(set_openai_api_key,
|
|
|
12 |
EMOTION_DEFAULT = "N/A"
|
13 |
TRANSLATE_TO_DEFAULT = "Don't translate"
|
14 |
LITERARY_STYLE_DEFAULT = "Prose"
|
15 |
+
CHARACTER_DEFAULT = "The Old Lady Who Swallowed A Fly"
|
16 |
PROMPT_TEMPLATE = PromptTemplate(
|
17 |
+
input_variables=["original_words", "num_words", "formality", "emotions", "translate_to", "literary_style", "character"],
|
18 |
+
template="Express {num_words} in a {formality} manner, "
|
19 |
+
"{emotions}{translate_to}{literary_style}{character} the following: \n{original_words}\n",
|
20 |
)
|
21 |
|
22 |
|
|
|
36 |
def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, formality,
|
37 |
anticipation_level, joy_level, trust_level,
|
38 |
fear_level, surprise_level, sadness_level, disgust_level, anger_level,
|
39 |
+
translate_to, literary_style, character):
|
40 |
if not openai_api_key or openai_api_key == "":
|
41 |
return "<pre>Please paste your OpenAI API key (see https://beta.openai.com)</pre>"
|
42 |
|
|
|
100 |
elif literary_style == "Knock-knock":
|
101 |
literary_style_str = "as a very funny knock-knock joke, "
|
102 |
|
103 |
+
character_str = ""
|
104 |
+
if character != CHARACTER_DEFAULT:
|
105 |
+
if character == "The Old Woman Who Lived In A Shoe":
|
106 |
+
character_str = "by the Old Woman Who Lived In A Shoe, "
|
107 |
+
elif character == "Mary Had A Little Lamb":
|
108 |
+
character_str = "by Mary from Mary Had A Little Lamb, "
|
109 |
+
elif character == "Humpty-Dumpty":
|
110 |
+
character_str = "by Humpty Dumpty, "
|
111 |
+
|
112 |
formatted_prompt = PROMPT_TEMPLATE.format(
|
113 |
original_words=desc,
|
114 |
num_words=num_words_prompt,
|
115 |
formality=formality,
|
116 |
emotions=emotions_str,
|
117 |
translate_to=translate_to_str,
|
118 |
+
literary_style=literary_style_str,
|
119 |
+
character=character_str,
|
120 |
)
|
121 |
|
122 |
generated_text = llm_chain.run({'original_words': desc, 'num_words': num_words_prompt, 'formality': formality,
|
123 |
'emotions': emotions_str, 'translate_to': translate_to_str,
|
124 |
+
'literary_style': literary_style_str, 'character': character_str}).strip()
|
125 |
|
126 |
# replace all newlines with <br> in generated_text
|
127 |
generated_text = generated_text.replace("\n", "<br>")
|
|
|
159 |
anger_level_state = gr.State(EMOTION_DEFAULT)
|
160 |
translate_to_state = gr.State(TRANSLATE_TO_DEFAULT)
|
161 |
literary_style_state = gr.State(LITERARY_STYLE_DEFAULT)
|
162 |
+
character_state = gr.State(CHARACTER_DEFAULT)
|
163 |
|
164 |
with gr.Row():
|
165 |
temperature_slider = gr.Slider(label="GPT Temperature", value=TEMPERATURE_DEFAULT, minimum=0.0, maximum=1.0,
|
|
|
190 |
inputs=[formality_radio, formality_state],
|
191 |
outputs=[formality_state])
|
192 |
|
193 |
+
character_radio = gr.Radio(label="From the perspective of:", choices=["The Old Lady Who Swallowed A Fly", "The Old Woman Who Lived In A Shoe", "Mary Had A Little Lamb", "Humpty-Dumpty"],
|
194 |
+
value=CHARACTER_DEFAULT)
|
195 |
+
formality_radio.change(update_foo,
|
196 |
+
inputs=[character_radio, character_state],
|
197 |
+
outputs=[character_state])
|
198 |
+
|
199 |
translate_to_radio = gr.Radio(label="Translate to:", choices=[
|
200 |
TRANSLATE_TO_DEFAULT, "Arabic", "British English", "Chinese (Simplified)", "Chinese (Traditional)",
|
201 |
"Czech", "Danish", "Dutch", "emojis", "English", "Finnish", "French", "Gen Z slang", "German", "Greek",
|
|
|
295 |
formality_state,
|
296 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
297 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
298 |
+
translate_to_state, literary_style_state, character_state],
|
299 |
outputs=[output])
|
300 |
|
301 |
request.submit(transform_text,
|
|
|
304 |
formality_state,
|
305 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
306 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
307 |
+
translate_to_state, literary_style_state, character_state],
|
308 |
outputs=[output])
|
309 |
|
310 |
openai_api_key_textbox.change(set_openai_api_key,
|