Spaces:
Running
Running
formality and translation removal
Browse files
app.py
CHANGED
@@ -7,16 +7,21 @@ from langchain.chains import LLMChain
|
|
7 |
import datetime
|
8 |
|
9 |
NUM_WORDS_DEFAULT = 0
|
10 |
-
FORMALITY_DEFAULT = "Casual"
|
11 |
TEMPERATURE_DEFAULT = 0.5
|
12 |
EMOTION_DEFAULT = "N/A"
|
13 |
-
TRANSLATE_TO_DEFAULT = "Don't translate"
|
14 |
LITERARY_STYLE_DEFAULT = "Poetry"
|
15 |
CHARACTER_DEFAULT = "The Old Lady Who Swallowed A Fly"
|
|
|
|
|
|
|
|
|
|
|
16 |
PROMPT_TEMPLATE = PromptTemplate(
|
17 |
-
input_variables=["original_words", "num_words", "
|
18 |
-
template="Express {num_words}
|
19 |
-
"{emotions}{
|
20 |
)
|
21 |
|
22 |
|
@@ -33,10 +38,15 @@ def set_openai_api_key(api_key, openai_api_key, temperature, llm_chain):
|
|
33 |
return openai_api_key, llm_chain
|
34 |
|
35 |
|
36 |
-
def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, formality,
|
37 |
-
|
38 |
-
|
39 |
-
|
|
|
|
|
|
|
|
|
|
|
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 |
|
@@ -45,7 +55,7 @@ def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, form
|
|
45 |
num_words_prompt = "using up to " + str(num_words) + " words, "
|
46 |
|
47 |
# Change some arguments to lower case
|
48 |
-
formality = formality.lower()
|
49 |
anticipation_level = anticipation_level.lower()
|
50 |
joy_level = joy_level.lower()
|
51 |
trust_level = trust_level.lower()
|
@@ -83,9 +93,9 @@ def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, form
|
|
83 |
else:
|
84 |
emotions_str = "with emotions of " + ", ".join(emotions[:-1]) + " and " + emotions[-1] + ", "
|
85 |
|
86 |
-
translate_to_str = ""
|
87 |
-
if translate_to != TRANSLATE_TO_DEFAULT:
|
88 |
-
|
89 |
|
90 |
literary_style_str = ""
|
91 |
if literary_style != LITERARY_STYLE_DEFAULT:
|
@@ -109,19 +119,32 @@ def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, form
|
|
109 |
elif character == "Humpty-Dumpty":
|
110 |
character_str = "as if written 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 |
-
|
123 |
-
|
124 |
-
'
|
|
|
125 |
|
126 |
# replace all newlines with <br> in generated_text
|
127 |
generated_text = generated_text.replace("\n", "<br>")
|
@@ -148,7 +171,7 @@ with block:
|
|
148 |
temperature_state = gr.State(TEMPERATURE_DEFAULT)
|
149 |
llm_chain_state = gr.State()
|
150 |
num_words_state = gr.State(NUM_WORDS_DEFAULT)
|
151 |
-
formality_state = gr.State(FORMALITY_DEFAULT)
|
152 |
anticipation_level_state = gr.State(EMOTION_DEFAULT)
|
153 |
joy_level_state = gr.State(EMOTION_DEFAULT)
|
154 |
trust_level_state = gr.State(EMOTION_DEFAULT)
|
@@ -157,7 +180,7 @@ with block:
|
|
157 |
sadness_level_state = gr.State(EMOTION_DEFAULT)
|
158 |
disgust_level_state = gr.State(EMOTION_DEFAULT)
|
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 |
|
@@ -184,15 +207,29 @@ with block:
|
|
184 |
inputs=[num_words_slider, num_words_state],
|
185 |
outputs=[num_words_state])
|
186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
187 |
# formality_radio = gr.Radio(label="Formality:", choices=["Casual", "Polite", "Honorific"],
|
188 |
# value=FORMALITY_DEFAULT)
|
|
|
189 |
# formality_radio.change(update_foo,
|
190 |
# inputs=[formality_radio, formality_state],
|
191 |
# outputs=[formality_state])
|
192 |
|
193 |
# translate_to_radio = gr.Radio(label="Translate to:", choices=[TRANSLATE_TO_DEFAULT, "emojis", "Gen Z slang", "how the stereotypical Karen would say it", "Pirate"], value=TRANSLATE_TO_DEFAULT)
|
194 |
|
195 |
-
|
196 |
# translate_to_radio = gr.Radio(label="Translate to:", choices=[
|
197 |
# TRANSLATE_TO_DEFAULT, "Arabic", "British English", "Chinese (Simplified)", "Chinese (Traditional)",
|
198 |
# "Czech", "Danish", "Dutch", "emojis", "English", "Finnish", "French", "Gen Z slang", "German", "Greek",
|
@@ -201,25 +238,10 @@ with block:
|
|
201 |
# "Klingon", "Korean", "Norwegian", "Old English", "Pirate", "Polish", "Portuguese", "Romanian",
|
202 |
# "Russian", "Spanish", "Strange Planet expospeak technical talk", "Swedish", "Thai", "Turkish", "Vietnamese", "Yoda"], value=TRANSLATE_TO_DEFAULT)
|
203 |
|
204 |
-
character_radio = gr.Radio(label="As if written by:", choices=["The Old Lady Who Swallowed A Fly", "The Old Woman Who Lived In A Shoe", "Mary Had A Little Lamb", "Humpty-Dumpty"],
|
205 |
-
value=CHARACTER_DEFAULT)
|
206 |
-
character_radio.change(update_foo,
|
207 |
-
inputs=[character_radio, character_state],
|
208 |
-
outputs=[character_state])
|
209 |
-
|
210 |
# translate_to_radio.change(update_foo,
|
211 |
# inputs=[translate_to_radio, translate_to_state],
|
212 |
# outputs=[translate_to_state])
|
213 |
-
|
214 |
-
literary_style_radio = gr.Radio(label="Literary style:", choices=[
|
215 |
-
LITERARY_STYLE_DEFAULT, "Poetry", "Haiku", "Limerick", "Joke", "Knock-knock"],
|
216 |
-
value=LITERARY_STYLE_DEFAULT)
|
217 |
-
|
218 |
-
literary_style_radio.change(update_foo,
|
219 |
-
inputs=[literary_style_radio, literary_style_state],
|
220 |
-
outputs=[literary_style_state])
|
221 |
-
|
222 |
-
|
223 |
gr.Examples(
|
224 |
examples=[
|
225 |
"My armpits are sweating gravy",
|
@@ -293,23 +315,38 @@ with block:
|
|
293 |
|
294 |
gr.HTML("<center>Powered by <a href='https://github.com/hwchase17/langchain'>LangChain 🦜️🔗</a></center>")
|
295 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
296 |
submit.click(transform_text,
|
297 |
inputs=[
|
298 |
request, openai_api_key_state, temperature_state, llm_chain_state, num_words_state,
|
299 |
-
formality_state,
|
300 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
301 |
-
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
302 |
-
translate_to_state, literary_style_state, character_state],
|
303 |
outputs=[output])
|
304 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
305 |
request.submit(transform_text,
|
306 |
inputs=[
|
307 |
request, openai_api_key_state, temperature_state, llm_chain_state, num_words_state,
|
308 |
-
formality_state,
|
309 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
310 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
311 |
-
|
312 |
-
outputs=[output])
|
313 |
|
314 |
openai_api_key_textbox.change(set_openai_api_key,
|
315 |
inputs=[openai_api_key_textbox, openai_api_key_state, temperature_state,
|
|
|
7 |
import datetime
|
8 |
|
9 |
NUM_WORDS_DEFAULT = 0
|
10 |
+
# FORMALITY_DEFAULT = "Casual"
|
11 |
TEMPERATURE_DEFAULT = 0.5
|
12 |
EMOTION_DEFAULT = "N/A"
|
13 |
+
# TRANSLATE_TO_DEFAULT = "Don't translate"
|
14 |
LITERARY_STYLE_DEFAULT = "Poetry"
|
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 |
PROMPT_TEMPLATE = PromptTemplate(
|
22 |
+
input_variables=["original_words", "num_words", "emotions", "literary_style", "character"],
|
23 |
+
template="Express {num_words}, "
|
24 |
+
"{emotions}{literary_style}{character} the following: \n{original_words}\n",
|
25 |
)
|
26 |
|
27 |
|
|
|
38 |
return openai_api_key, llm_chain
|
39 |
|
40 |
|
41 |
+
# def transform_text(desc, openai_api_key, temperature, llm_chain, num_words, formality,
|
42 |
+
# anticipation_level, joy_level, trust_level,
|
43 |
+
# fear_level, surprise_level, sadness_level, disgust_level, anger_level,
|
44 |
+
# translate_to, literary_style, character):
|
45 |
+
|
46 |
+
def transform_text(desc, openai_api_key, temperature, llm_chain, num_words,
|
47 |
+
anticipation_level, joy_level, trust_level, fear_level,
|
48 |
+
surprise_level, sadness_level, disgust_level, anger_level,
|
49 |
+
literary_style, character):
|
50 |
if not openai_api_key or openai_api_key == "":
|
51 |
return "<pre>Please paste your OpenAI API key (see https://beta.openai.com)</pre>"
|
52 |
|
|
|
55 |
num_words_prompt = "using up to " + str(num_words) + " words, "
|
56 |
|
57 |
# Change some arguments to lower case
|
58 |
+
# formality = formality.lower()
|
59 |
anticipation_level = anticipation_level.lower()
|
60 |
joy_level = joy_level.lower()
|
61 |
trust_level = trust_level.lower()
|
|
|
93 |
else:
|
94 |
emotions_str = "with emotions of " + ", ".join(emotions[:-1]) + " and " + emotions[-1] + ", "
|
95 |
|
96 |
+
# translate_to_str = ""
|
97 |
+
# if translate_to != TRANSLATE_TO_DEFAULT:
|
98 |
+
# translate_to_str = "translated to " + translate_to + ", "
|
99 |
|
100 |
literary_style_str = ""
|
101 |
if literary_style != LITERARY_STYLE_DEFAULT:
|
|
|
119 |
elif character == "Humpty-Dumpty":
|
120 |
character_str = "as if written by Humpty Dumpty, "
|
121 |
|
122 |
+
# formatted_prompt = PROMPT_TEMPLATE.format(
|
123 |
+
# original_words=desc,
|
124 |
+
# num_words=num_words_prompt,
|
125 |
+
# formality=formality,
|
126 |
+
# emotions=emotions_str,
|
127 |
+
# translate_to=translate_to_str,
|
128 |
+
# literary_style=literary_style_str,
|
129 |
+
# character=character_str,
|
130 |
+
# )
|
131 |
+
|
132 |
formatted_prompt = PROMPT_TEMPLATE.format(
|
133 |
original_words=desc,
|
134 |
num_words=num_words_prompt,
|
|
|
135 |
emotions=emotions_str,
|
|
|
136 |
literary_style=literary_style_str,
|
137 |
character=character_str,
|
138 |
+
)
|
139 |
+
|
140 |
+
# generated_text = llm_chain.run({'original_words': desc, 'num_words': num_words_prompt, 'formality': formality,
|
141 |
+
# 'emotions': emotions_str, 'translate_to': translate_to_str,
|
142 |
+
# 'literary_style': literary_style_str, 'character': character_str}).strip()
|
143 |
|
144 |
+
|
145 |
+
generated_text = llm_chain.run({'original_words': desc, 'num_words': num_words_prompt,
|
146 |
+
'emotions': emotions_str, 'literary_style': literary_style_str,
|
147 |
+
'character': character_str}).strip()
|
148 |
|
149 |
# replace all newlines with <br> in generated_text
|
150 |
generated_text = generated_text.replace("\n", "<br>")
|
|
|
171 |
temperature_state = gr.State(TEMPERATURE_DEFAULT)
|
172 |
llm_chain_state = gr.State()
|
173 |
num_words_state = gr.State(NUM_WORDS_DEFAULT)
|
174 |
+
# formality_state = gr.State(FORMALITY_DEFAULT)
|
175 |
anticipation_level_state = gr.State(EMOTION_DEFAULT)
|
176 |
joy_level_state = gr.State(EMOTION_DEFAULT)
|
177 |
trust_level_state = gr.State(EMOTION_DEFAULT)
|
|
|
180 |
sadness_level_state = gr.State(EMOTION_DEFAULT)
|
181 |
disgust_level_state = gr.State(EMOTION_DEFAULT)
|
182 |
anger_level_state = gr.State(EMOTION_DEFAULT)
|
183 |
+
# translate_to_state = gr.State(TRANSLATE_TO_DEFAULT)
|
184 |
literary_style_state = gr.State(LITERARY_STYLE_DEFAULT)
|
185 |
character_state = gr.State(CHARACTER_DEFAULT)
|
186 |
|
|
|
207 |
inputs=[num_words_slider, num_words_state],
|
208 |
outputs=[num_words_state])
|
209 |
|
210 |
+
character_radio = gr.Radio(label="As if written by:", choices=["The Old Lady Who Swallowed A Fly", "The Old Woman Who Lived In A Shoe", "Mary Had A Little Lamb", "Humpty-Dumpty"],
|
211 |
+
value=CHARACTER_DEFAULT)
|
212 |
+
character_radio.change(update_foo,
|
213 |
+
inputs=[character_radio, character_state],
|
214 |
+
outputs=[character_state])
|
215 |
+
|
216 |
+
literary_style_radio = gr.Radio(label="Literary style:", choices=[
|
217 |
+
LITERARY_STYLE_DEFAULT, "Poetry", "Haiku", "Limerick", "Joke", "Knock-knock"],
|
218 |
+
value=LITERARY_STYLE_DEFAULT)
|
219 |
+
|
220 |
+
literary_style_radio.change(update_foo,
|
221 |
+
inputs=[literary_style_radio, literary_style_state],
|
222 |
+
outputs=[literary_style_state])
|
223 |
+
|
224 |
# formality_radio = gr.Radio(label="Formality:", choices=["Casual", "Polite", "Honorific"],
|
225 |
# value=FORMALITY_DEFAULT)
|
226 |
+
|
227 |
# formality_radio.change(update_foo,
|
228 |
# inputs=[formality_radio, formality_state],
|
229 |
# outputs=[formality_state])
|
230 |
|
231 |
# translate_to_radio = gr.Radio(label="Translate to:", choices=[TRANSLATE_TO_DEFAULT, "emojis", "Gen Z slang", "how the stereotypical Karen would say it", "Pirate"], value=TRANSLATE_TO_DEFAULT)
|
232 |
|
|
|
233 |
# translate_to_radio = gr.Radio(label="Translate to:", choices=[
|
234 |
# TRANSLATE_TO_DEFAULT, "Arabic", "British English", "Chinese (Simplified)", "Chinese (Traditional)",
|
235 |
# "Czech", "Danish", "Dutch", "emojis", "English", "Finnish", "French", "Gen Z slang", "German", "Greek",
|
|
|
238 |
# "Klingon", "Korean", "Norwegian", "Old English", "Pirate", "Polish", "Portuguese", "Romanian",
|
239 |
# "Russian", "Spanish", "Strange Planet expospeak technical talk", "Swedish", "Thai", "Turkish", "Vietnamese", "Yoda"], value=TRANSLATE_TO_DEFAULT)
|
240 |
|
|
|
|
|
|
|
|
|
|
|
|
|
241 |
# translate_to_radio.change(update_foo,
|
242 |
# inputs=[translate_to_radio, translate_to_state],
|
243 |
# outputs=[translate_to_state])
|
244 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
245 |
gr.Examples(
|
246 |
examples=[
|
247 |
"My armpits are sweating gravy",
|
|
|
315 |
|
316 |
gr.HTML("<center>Powered by <a href='https://github.com/hwchase17/langchain'>LangChain 🦜️🔗</a></center>")
|
317 |
|
318 |
+
# submit.click(transform_text,
|
319 |
+
# inputs=[
|
320 |
+
# request, openai_api_key_state, temperature_state, llm_chain_state, num_words_state,
|
321 |
+
# formality_state,
|
322 |
+
# anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
323 |
+
# surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
324 |
+
# translate_to_state, literary_style_state, character_state],
|
325 |
+
# outputs=[output])
|
326 |
+
|
327 |
submit.click(transform_text,
|
328 |
inputs=[
|
329 |
request, openai_api_key_state, temperature_state, llm_chain_state, num_words_state,
|
|
|
330 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
331 |
+
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state, literary_style_state, character_state],
|
|
|
332 |
outputs=[output])
|
333 |
|
334 |
+
# request.submit(transform_text,
|
335 |
+
# inputs=[
|
336 |
+
# request, openai_api_key_state, temperature_state, llm_chain_state, num_words_state,
|
337 |
+
# formality_state,
|
338 |
+
# anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
339 |
+
# surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
340 |
+
# translate_to_state, literary_style_state, character_state],
|
341 |
+
# outputs=[output])
|
342 |
+
|
343 |
request.submit(transform_text,
|
344 |
inputs=[
|
345 |
request, openai_api_key_state, temperature_state, llm_chain_state, num_words_state,
|
|
|
346 |
anticipation_level_state, joy_level_state, trust_level_state, fear_level_state,
|
347 |
surprise_level_state, sadness_level_state, disgust_level_state, anger_level_state,
|
348 |
+
literary_style_state, character_state],
|
349 |
+
outputs=[output])
|
350 |
|
351 |
openai_api_key_textbox.change(set_openai_api_key,
|
352 |
inputs=[openai_api_key_textbox, openai_api_key_state, temperature_state,
|