Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -21,23 +21,17 @@ interpreter.llm.model = "gpt-4-turbo"
|
|
21 |
interpreter.custom_instructions = "First ask the user what they want to do. Based on the input, describe the next steps. If user agrees, proceed; if not, ask what they want next.If it is anything to display , always at the end open up the file."
|
22 |
|
23 |
def json_to_markdown(json_data):
|
24 |
-
full_message =
|
25 |
images = []
|
26 |
-
# Regex to detect URLs; this is a simple version and might need to be adapted
|
27 |
-
url_pattern = r'(http[s]?://\S+|sandbox:/\S+)'
|
28 |
-
|
29 |
for item in json_data:
|
30 |
-
if item['role'] == 'assistant'
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
if content:
|
39 |
-
full_message.append(content)
|
40 |
-
return full_message, images
|
41 |
|
42 |
def list_png_files(directory):
|
43 |
"""List .png files in a given directory, sorted by modification time."""
|
@@ -81,11 +75,22 @@ def create_chat_widget():
|
|
81 |
return chatblock
|
82 |
|
83 |
def update_bot(text, chatbot):
|
|
|
|
|
84 |
response_json = interpreter.chat(text, stream=True, display=False)
|
85 |
-
formatted_response = json_to_markdown(response_json)
|
86 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
87 |
return chatbot, ""
|
88 |
|
|
|
89 |
with gr.Blocks() as demo:
|
90 |
with gr.Tab("HEXON Chatbot Assignment"):
|
91 |
chat_interface = create_chat_widget()
|
|
|
21 |
interpreter.custom_instructions = "First ask the user what they want to do. Based on the input, describe the next steps. If user agrees, proceed; if not, ask what they want next.If it is anything to display , always at the end open up the file."
|
22 |
|
23 |
def json_to_markdown(json_data):
|
24 |
+
full_message = ""
|
25 |
images = []
|
|
|
|
|
|
|
26 |
for item in json_data:
|
27 |
+
if item['role'] == 'assistant':
|
28 |
+
if item['type'] == 'message':
|
29 |
+
content = item.get('content', " ")
|
30 |
+
full_message += content + " "
|
31 |
+
elif item['type'] == 'image' and 'path' in item:
|
32 |
+
images.append(item['path'])
|
33 |
+
return full_message.strip(), images
|
34 |
+
|
|
|
|
|
|
|
35 |
|
36 |
def list_png_files(directory):
|
37 |
"""List .png files in a given directory, sorted by modification time."""
|
|
|
75 |
return chatblock
|
76 |
|
77 |
def update_bot(text, chatbot):
|
78 |
+
if text: # Append user input to the chat first
|
79 |
+
chatbot.append(("User", text))
|
80 |
response_json = interpreter.chat(text, stream=True, display=False)
|
81 |
+
formatted_response, images = json_to_markdown(response_json)
|
82 |
+
# Append text response if it exists
|
83 |
+
if formatted_response.strip():
|
84 |
+
chatbot.append(("Assistant", formatted_response))
|
85 |
+
# Append images if any
|
86 |
+
for img_path in images:
|
87 |
+
if os.path.exists(img_path) and img_path.endswith('.png'):
|
88 |
+
chatbot.append(("Assistant", img_path)) # Assuming the path is accessible
|
89 |
+
else:
|
90 |
+
chatbot.append(("Assistant", "Image not found or path is invalid."))
|
91 |
return chatbot, ""
|
92 |
|
93 |
+
|
94 |
with gr.Blocks() as demo:
|
95 |
with gr.Tab("HEXON Chatbot Assignment"):
|
96 |
chat_interface = create_chat_widget()
|