dlflannery commited on
Commit
4c6a845
·
verified ·
1 Parent(s): 1ed2e33

Update app.py

Browse files

OpenAI client no longer global.

Files changed (1) hide show
  1. app.py +16 -13
app.py CHANGED
@@ -37,7 +37,7 @@ else:
37
 
38
  speak_file = dataDir + "speek.wav"
39
 
40
- client = OpenAI(api_key = key)
41
 
42
  #digits = ['zero: ','one: ','two: ','three: ','four: ','five: ','six: ','seven: ','eight: ','nine: ']
43
 
@@ -52,7 +52,9 @@ class Step(BaseModel):
52
  class MathReasoning(BaseModel):
53
  steps: list[Step]
54
  final_answer: str
55
-
 
 
56
 
57
  def solve(prompt, chatType):
58
  tokens_in = 0
@@ -63,7 +65,7 @@ def solve(prompt, chatType):
63
  elif chatType == "logic":
64
  instruction = "you are an expert in logic and reasoning. Guide the user through the solution step by step"
65
  try:
66
- completion = client.beta.chat.completions.parse(
67
  model = 'gpt-4o-2024-08-06',
68
  messages = [
69
  {"role": "system", "content": instruction},
@@ -277,7 +279,7 @@ def chat(prompt, user_window, pwd_window, past, response, gptModel, uploaded_ima
277
  (reply, tokens_in, tokens_out, tokens) = solve(prompt, chatType)
278
  reporting_model = image_gen_model
279
  elif not gen_image:
280
- completion = client.chat.completions.create(model=gptModel,
281
  messages=past)
282
  reporting_model = gptModel
283
  else:
@@ -335,7 +337,7 @@ def transcribe(user, pwd, fpath):
335
  with open(dataDir + user + '_audio.txt','a') as f:
336
  f.write(f'audio:{str(duration)}\n')
337
  with open(fpath,'rb') as audio_file:
338
- transcript = client.audio.transcriptions.create(
339
  model='whisper-1', file = audio_file ,response_format = 'text' )
340
  reply = transcript
341
  return str(reply)
@@ -346,7 +348,7 @@ def pause_message():
346
  # def gen_output_audio(txt):
347
  # if len(txt) < 10:
348
  # txt = "This dialog is too short to mess with!"
349
- # response = client.audio.speech.create(model="tts-1", voice="fable", input=txt)
350
  # with open(speak_file, 'wb') as fp:
351
  # fp.write(response.content)
352
  # return speak_file
@@ -370,7 +372,7 @@ def update_user(user_win):
370
  def speech_worker(chunks=[],q=[]):
371
  for chunk in chunks:
372
  fpath = q.pop(0)
373
- response = client.audio.speech.create(model="tts-1", voice="fable", input=chunk, speed=0.85, response_format='wav')
374
  with open(fpath, 'wb') as fp:
375
  fp.write(response.content)
376
 
@@ -431,7 +433,7 @@ def make_image(prompt, user, pwd):
431
  if len(prompt.strip()) == 0:
432
  return [gr.Image(value=None, visible=False), 'You must provide a prompt describing image you desire']
433
  try:
434
- response = client.images.generate(model='dall-e-2', prompt=prompt,size='512x512',
435
  quality='standard', response_format='b64_json')
436
  except Exception as ex:
437
  msg = ex.message
@@ -520,7 +522,7 @@ def analyze_image(user, model, prompt):
520
  status = "base64 image file not found"
521
  return [None, status]
522
 
523
- completion = client.chat.completions.create(
524
  model=model,
525
  messages=[
526
  { "role": "user",
@@ -640,7 +642,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
640
  fname = q.pop(0)
641
  if len(chunklist) > 0:
642
  threading.Thread(target=speech_worker, daemon=True, args=(chunklist[1:],fname_list[1:])).start()
643
- response = client.audio.speech.create(model="tts-1", voice="fable", input=chunk, speed=0.85, response_format='wav')
644
  with open(fname, 'wb') as fp:
645
  fp.write(response.content)
646
  return [fname, q]
@@ -654,7 +656,7 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
654
  if not os.path.exists(fname):
655
  sleep(3)
656
  if not os.path.exists(fname):
657
- response = client.audio.speech.create(model="tts-1", voice="fable",
658
  input='Sorry, text-to-speech is responding too slow right now', speed=0.85, response_format='wav')
659
  with open(fname, 'wb') as fp:
660
  fp.write(response.content)
@@ -689,8 +691,9 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
689
  image_window2 = gr.Image(visible=False, interactive=True, label='Image to Analyze', type='filepath')
690
  with gr.Column():
691
  image_window = gr.Image(visible=False, label='Generated Image')
692
- submit_button.click(chat, inputs=[prompt_window, user_window, password, history, output_window, model, uploaded_image_file],
693
- outputs=[history, output_window, prompt_window, model, uploaded_image_file])
 
694
  clear_button.click(fn=new_conversation, inputs=user_window,
695
  outputs=[prompt_window, history, output_window, image_window, image_window2, uploaded_image_file])
696
  audio_widget.stop_recording(fn=transcribe, inputs=[user_window, password, audio_widget],
 
37
 
38
  speak_file = dataDir + "speek.wav"
39
 
40
+ # client = OpenAI(api_key = key)
41
 
42
  #digits = ['zero: ','one: ','two: ','three: ','four: ','five: ','six: ','seven: ','eight: ','nine: ']
43
 
 
52
  class MathReasoning(BaseModel):
53
  steps: list[Step]
54
  final_answer: str
55
+
56
+ def Client():
57
+ return OpenAI(api_key = key)
58
 
59
  def solve(prompt, chatType):
60
  tokens_in = 0
 
65
  elif chatType == "logic":
66
  instruction = "you are an expert in logic and reasoning. Guide the user through the solution step by step"
67
  try:
68
+ completion = Client().beta.chat.completions.parse(
69
  model = 'gpt-4o-2024-08-06',
70
  messages = [
71
  {"role": "system", "content": instruction},
 
279
  (reply, tokens_in, tokens_out, tokens) = solve(prompt, chatType)
280
  reporting_model = image_gen_model
281
  elif not gen_image:
282
+ completion = Client().chat.completions.create(model=gptModel,
283
  messages=past)
284
  reporting_model = gptModel
285
  else:
 
337
  with open(dataDir + user + '_audio.txt','a') as f:
338
  f.write(f'audio:{str(duration)}\n')
339
  with open(fpath,'rb') as audio_file:
340
+ transcript = Client().audio.transcriptions.create(
341
  model='whisper-1', file = audio_file ,response_format = 'text' )
342
  reply = transcript
343
  return str(reply)
 
348
  # def gen_output_audio(txt):
349
  # if len(txt) < 10:
350
  # txt = "This dialog is too short to mess with!"
351
+ # response = Client().audio.speech.create(model="tts-1", voice="fable", input=txt)
352
  # with open(speak_file, 'wb') as fp:
353
  # fp.write(response.content)
354
  # return speak_file
 
372
  def speech_worker(chunks=[],q=[]):
373
  for chunk in chunks:
374
  fpath = q.pop(0)
375
+ response = Client().audio.speech.create(model="tts-1", voice="fable", input=chunk, speed=0.85, response_format='wav')
376
  with open(fpath, 'wb') as fp:
377
  fp.write(response.content)
378
 
 
433
  if len(prompt.strip()) == 0:
434
  return [gr.Image(value=None, visible=False), 'You must provide a prompt describing image you desire']
435
  try:
436
+ response = Client().images.generate(model='dall-e-2', prompt=prompt,size='512x512',
437
  quality='standard', response_format='b64_json')
438
  except Exception as ex:
439
  msg = ex.message
 
522
  status = "base64 image file not found"
523
  return [None, status]
524
 
525
+ completion = Client().chat.completions.create(
526
  model=model,
527
  messages=[
528
  { "role": "user",
 
642
  fname = q.pop(0)
643
  if len(chunklist) > 0:
644
  threading.Thread(target=speech_worker, daemon=True, args=(chunklist[1:],fname_list[1:])).start()
645
+ response = Client().audio.speech.create(model="tts-1", voice="fable", input=chunk, speed=0.85, response_format='wav')
646
  with open(fname, 'wb') as fp:
647
  fp.write(response.content)
648
  return [fname, q]
 
656
  if not os.path.exists(fname):
657
  sleep(3)
658
  if not os.path.exists(fname):
659
+ response = Client().audio.speech.create(model="tts-1", voice="fable",
660
  input='Sorry, text-to-speech is responding too slow right now', speed=0.85, response_format='wav')
661
  with open(fname, 'wb') as fp:
662
  fp.write(response.content)
 
691
  image_window2 = gr.Image(visible=False, interactive=True, label='Image to Analyze', type='filepath')
692
  with gr.Column():
693
  image_window = gr.Image(visible=False, label='Generated Image')
694
+ submit_button.click(chat,
695
+ inputs=[prompt_window, user_window, password, history, output_window, model, uploaded_image_file],
696
+ outputs=[history, output_window, prompt_window, model, uploaded_image_file])
697
  clear_button.click(fn=new_conversation, inputs=user_window,
698
  outputs=[prompt_window, history, output_window, image_window, image_window2, uploaded_image_file])
699
  audio_widget.stop_recording(fn=transcribe, inputs=[user_window, password, audio_widget],