bstraehle commited on
Commit
88ad70a
·
verified ·
1 Parent(s): 1a5cbf8

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -30
app.py CHANGED
@@ -8,7 +8,7 @@
8
 
9
  import gradio as gr
10
 
11
- import os
12
 
13
  from assistants import (
14
  set_openai_client,
@@ -34,37 +34,37 @@ def chat(message, history, openai_api_key):
34
  if not message:
35
  raise gr.Error("Message is required.")
36
 
37
- text_values, image_values = [], []
38
- download_link = ""
39
-
40
- try:
41
- # TODO: Use Gradio session
42
- if os.environ["OPENAI_API_KEY"] != openai_api_key:
43
- os.environ["OPENAI_API_KEY"] = openai_api_key
44
-
45
- set_openai_client()
46
-
47
- #set_assistant(create_assistant()) # first run
48
- set_assistant(load_assistant()) # subsequent runs
49
-
50
- if get_thread() == None or len(history) == 0:
51
- set_thread(create_thread())
 
 
 
 
 
 
 
 
52
 
53
- create_message(get_thread(), message)
54
- run = create_run(get_assistant(), get_thread())
55
- run = wait_on_run(get_thread(), run)
56
- run_steps = get_run_steps(get_thread(), run)
57
- recurse_execute_tool_calls(get_thread(), run, run_steps, 0)
58
- messages = get_messages(get_thread())
59
- text_values, image_values = extract_content_values(messages)
60
-
61
- # TODO: Handle multiple images and other file types
62
- if len(image_values) > 0:
63
- download_link = f"<hr>[Download](https://platform.openai.com/storage/files/{image_values[0]})"
64
- except Exception as e:
65
- raise gr.Error(e)
66
 
67
- return f"{'<hr>'.join(list(reversed(text_values))[1:])}{download_link}"
68
 
69
  gr.ChatInterface(
70
  fn=chat,
 
8
 
9
  import gradio as gr
10
 
11
+ import os, threading
12
 
13
  from assistants import (
14
  set_openai_client,
 
34
  if not message:
35
  raise gr.Error("Message is required.")
36
 
37
+ with lock:
38
+ text_values, image_values = [], []
39
+ download_link = ""
40
+
41
+ try:
42
+ if os.environ["OPENAI_API_KEY"] != openai_api_key:
43
+ os.environ["OPENAI_API_KEY"] = openai_api_key
44
+
45
+ set_openai_client()
46
+
47
+ #set_assistant(create_assistant()) # first run
48
+ set_assistant(load_assistant()) # subsequent runs
49
+
50
+ if get_thread() == None or len(history) == 0:
51
+ set_thread(create_thread())
52
+
53
+ create_message(get_thread(), message)
54
+ run = create_run(get_assistant(), get_thread())
55
+ run = wait_on_run(get_thread(), run)
56
+ run_steps = get_run_steps(get_thread(), run)
57
+ recurse_execute_tool_calls(get_thread(), run, run_steps, 0)
58
+ messages = get_messages(get_thread())
59
+ text_values, image_values = extract_content_values(messages)
60
 
61
+ # TODO: Handle multiple images and other file types
62
+ if len(image_values) > 0:
63
+ download_link = f"<hr>[Download](https://platform.openai.com/storage/files/{image_values[0]})"
64
+ except Exception as e:
65
+ raise gr.Error(e)
 
 
 
 
 
 
 
 
66
 
67
+ return f"{'<hr>'.join(list(reversed(text_values))[1:])}{download_link}"
68
 
69
  gr.ChatInterface(
70
  fn=chat,