Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -11,11 +11,9 @@ import gradio as gr
|
|
| 11 |
import os
|
| 12 |
|
| 13 |
from assistants import (
|
| 14 |
-
|
| 15 |
set_openai_client,
|
| 16 |
-
get_assistant,
|
| 17 |
set_assistant,
|
| 18 |
-
get_thread,
|
| 19 |
set_thread,
|
| 20 |
create_assistant,
|
| 21 |
load_assistant,
|
|
@@ -35,29 +33,32 @@ def chat(message, history, openai_api_key):
|
|
| 35 |
if not message:
|
| 36 |
raise gr.Error("Message is required.")
|
| 37 |
|
| 38 |
-
|
| 39 |
-
set_openai_client(openai_api_key)
|
| 40 |
-
|
| 41 |
-
if get_assistant() == None:
|
| 42 |
-
#set_assistant(create_assistant())
|
| 43 |
-
set_assistant(load_assistant())
|
| 44 |
-
|
| 45 |
-
if get_thread() == None or len(history) == 0:
|
| 46 |
-
set_thread(create_thread())
|
| 47 |
-
|
| 48 |
-
create_message(get_thread(), message)
|
| 49 |
-
run = create_run(get_assistant(), get_thread())
|
| 50 |
-
run = wait_on_run(get_thread(), run)
|
| 51 |
-
run_steps = get_run_steps(get_thread(), run)
|
| 52 |
-
recurse_execute_tool_calls(get_thread(), run, run_steps, 0)
|
| 53 |
-
messages = get_messages(get_thread())
|
| 54 |
-
text_values, image_values = extract_content_values(messages)
|
| 55 |
-
|
| 56 |
download_link = ""
|
| 57 |
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 61 |
|
| 62 |
return f"{'<hr>'.join(list(reversed(text_values))[1:])}{download_link}"
|
| 63 |
#return f"{text_values[0]}{download_link}"
|
|
|
|
| 11 |
import os
|
| 12 |
|
| 13 |
from assistants import (
|
| 14 |
+
get_thread,
|
| 15 |
set_openai_client,
|
|
|
|
| 16 |
set_assistant,
|
|
|
|
| 17 |
set_thread,
|
| 18 |
create_assistant,
|
| 19 |
load_assistant,
|
|
|
|
| 33 |
if not message:
|
| 34 |
raise gr.Error("Message is required.")
|
| 35 |
|
| 36 |
+
text_values, image_values = [], []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
download_link = ""
|
| 38 |
|
| 39 |
+
try:
|
| 40 |
+
# TODO: Use Gradio session
|
| 41 |
+
if get_thread() == None or len(history) == 0:
|
| 42 |
+
set_openai_client(openai_api_key)
|
| 43 |
+
|
| 44 |
+
#set_assistant(create_assistant()) # first run
|
| 45 |
+
set_assistant(load_assistant()) # subsequent runs
|
| 46 |
+
|
| 47 |
+
set_thread(create_thread())
|
| 48 |
+
|
| 49 |
+
create_message(get_thread(), message)
|
| 50 |
+
run = create_run(get_assistant(), get_thread())
|
| 51 |
+
run = wait_on_run(get_thread(), run)
|
| 52 |
+
run_steps = get_run_steps(get_thread(), run)
|
| 53 |
+
recurse_execute_tool_calls(get_thread(), run, run_steps, 0)
|
| 54 |
+
messages = get_messages(get_thread())
|
| 55 |
+
text_values, image_values = extract_content_values(messages)
|
| 56 |
+
|
| 57 |
+
# TODO: Handle multiple images and other file types
|
| 58 |
+
if len(image_values) > 0:
|
| 59 |
+
download_link = f"<hr>[Download](https://platform.openai.com/storage/files/{image_values[0]})"
|
| 60 |
+
except Exception as e:
|
| 61 |
+
raise gr.Error(e)
|
| 62 |
|
| 63 |
return f"{'<hr>'.join(list(reversed(text_values))[1:])}{download_link}"
|
| 64 |
#return f"{text_values[0]}{download_link}"
|