dlflannery commited on
Commit
560c73e
·
verified ·
1 Parent(s): 839c46d

Update app.py

Browse files

First image version

Files changed (1) hide show
  1. app.py +34 -2
app.py CHANGED
@@ -11,6 +11,10 @@ import queue
11
  import threading
12
  from glob import glob
13
  import copy
 
 
 
 
14
 
15
  load_dotenv(override=True)
16
  key = os.getenv('OPENAI_API_KEY')
@@ -130,7 +134,7 @@ def genUsageStats(do_reset=False):
130
 
131
  def new_conversation(user):
132
  clean_up(user)
133
- return [None, [], None, []]
134
 
135
  def updatePassword(txt):
136
  password = txt.lower().strip()
@@ -267,6 +271,10 @@ def final_clean_up(user):
267
  except:
268
  continue
269
 
 
 
 
 
270
 
271
  def list_permanent_files():
272
  flist = os.listdir(dataDir)
@@ -284,6 +292,26 @@ def list_permanent_files():
284
  other_cnt = len(others)
285
  return (str(log_cnt), str(wav_cnt), str(other_cnt), str(others))
286
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
287
 
288
  with gr.Blocks() as demo:
289
  history = gr.State([])
@@ -406,13 +434,15 @@ with gr.Blocks() as demo:
406
  clear_button = gr.Button(value="Restart Conversation")
407
  # gpt_chooser=gr.Radio(choices=[("GPT-3.5","gpt-3.5-turbo"),("GPT-4o","gpt-4o-mini")],
408
  # value="gpt-3.5-turbo", label="GPT Model", interactive=True)
 
409
  submit_button = gr.Button(value="Submit Prompt/Question")
410
  speak_output = gr.Button(value="Speak Dialog", visible=False)
411
  prompt_window = gr.Textbox(label = "Prompt or Question")
412
  output_window = gr.Textbox(label = "Dialog")
 
413
  submit_button.click(chat, inputs=[prompt_window, user_window, password, history, output_window, model],
414
  outputs=[history, output_window, prompt_window, model])
415
- clear_button.click(fn=new_conversation, inputs=user_window, outputs=[prompt_window, history, output_window])
416
  audio_widget.stop_recording(fn=transcribe, inputs=[user_window, password, audio_widget],
417
  outputs=[prompt_window])
418
  audio_widget.pause_recording(fn=pause_message, outputs=[prompt_window])
@@ -421,5 +451,7 @@ with gr.Blocks() as demo:
421
  audio_out.stop(fn=gen_output_audio, inputs=[q, user_window], outputs = [audio_out, q])
422
  speak_output.click(fn=initial_audio_output, inputs=[output_window, user_window], outputs=[audio_out, q])
423
  output_window.change(fn=set_speak_button, inputs=output_window,outputs=speak_output)
 
 
424
  # demo.unload(final_clean_up(user))
425
  demo.launch(share=True)
 
11
  import threading
12
  from glob import glob
13
  import copy
14
+ import base64
15
+ import json
16
+ from PIL import Image
17
+ from io import BytesIO
18
 
19
  load_dotenv(override=True)
20
  key = os.getenv('OPENAI_API_KEY')
 
134
 
135
  def new_conversation(user):
136
  clean_up(user)
137
+ return [None, [], None, None]
138
 
139
  def updatePassword(txt):
140
  password = txt.lower().strip()
 
271
  except:
272
  continue
273
 
274
+ def delete_image(user):
275
+ fpath = dataDir + user + '.png'
276
+ if os.path.exists(fpath):
277
+ os.remove(fpath)
278
 
279
  def list_permanent_files():
280
  flist = os.listdir(dataDir)
 
292
  other_cnt = len(others)
293
  return (str(log_cnt), str(wav_cnt), str(other_cnt), str(others))
294
 
295
+ def make_image(prompt, user, pwd):
296
+ user = user.lower().strip()
297
+ msg = 'Error: unable to create image.'
298
+ fpath = None
299
+ if user in unames and pwd == pwdList[unames.index(user)]:
300
+ response = client.images.generate(model='dall-e-2', prompt=prompt,size='512x512',
301
+ quality='standard', response_format='b64_json')
302
+ try:
303
+ image_data = response.data[0].b64_json
304
+ image = Image.open(BytesIO(base64.b64decode(image_data)))
305
+ fpath = dataDir + user + '.png'
306
+ image.save(fpath)
307
+ msg = 'Image created!'
308
+ except:
309
+ return [gr.Image(value=None), msg]
310
+ else:
311
+ msg = 'Incorrect user name or password'
312
+ return [gr.Image(value=None), msg]
313
+ return [fpath, msg]
314
+
315
 
316
  with gr.Blocks() as demo:
317
  history = gr.State([])
 
434
  clear_button = gr.Button(value="Restart Conversation")
435
  # gpt_chooser=gr.Radio(choices=[("GPT-3.5","gpt-3.5-turbo"),("GPT-4o","gpt-4o-mini")],
436
  # value="gpt-3.5-turbo", label="GPT Model", interactive=True)
437
+ button_do_image = gr.Button(value='Make Image')
438
  submit_button = gr.Button(value="Submit Prompt/Question")
439
  speak_output = gr.Button(value="Speak Dialog", visible=False)
440
  prompt_window = gr.Textbox(label = "Prompt or Question")
441
  output_window = gr.Textbox(label = "Dialog")
442
+ image_window = gr.Image()
443
  submit_button.click(chat, inputs=[prompt_window, user_window, password, history, output_window, model],
444
  outputs=[history, output_window, prompt_window, model])
445
+ clear_button.click(fn=new_conversation, inputs=user_window, outputs=[prompt_window, history, output_window, image_window])
446
  audio_widget.stop_recording(fn=transcribe, inputs=[user_window, password, audio_widget],
447
  outputs=[prompt_window])
448
  audio_widget.pause_recording(fn=pause_message, outputs=[prompt_window])
 
451
  audio_out.stop(fn=gen_output_audio, inputs=[q, user_window], outputs = [audio_out, q])
452
  speak_output.click(fn=initial_audio_output, inputs=[output_window, user_window], outputs=[audio_out, q])
453
  output_window.change(fn=set_speak_button, inputs=output_window,outputs=speak_output)
454
+ button_do_image.click(fn=make_image, inputs=[prompt_window,user_window, password],outputs=[image_window, output_window])
455
+ image_window.change(fn=delete_image, inputs=[user])
456
  # demo.unload(final_clean_up(user))
457
  demo.launch(share=True)