Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -92,10 +92,9 @@ Start generating the files now.
|
|
92 |
if token:
|
93 |
full_raw_response += token
|
94 |
yield {
|
95 |
-
live_output: gr.update(value=full_raw_response)
|
96 |
}
|
97 |
except Exception as e:
|
98 |
-
print(f"Error during AI streaming: {e}")
|
99 |
error_message = f"Error during AI generation: {e}\n\nPartial Response (if any):\n{full_raw_response}"
|
100 |
error_occurred = True
|
101 |
yield {
|
@@ -104,16 +103,19 @@ Start generating the files now.
|
|
104 |
}
|
105 |
if error_occurred:
|
106 |
final_tabs_update = gr.Tabs(tabs=[
|
107 |
-
gr.TabItem(label="Error", children=[gr.Textbox(value=error_message,
|
108 |
])
|
109 |
else:
|
110 |
files = parse_files(full_raw_response)
|
111 |
if not files:
|
112 |
no_files_msg = "AI finished, but did not return recognizable file content or the response was empty. See raw output above."
|
113 |
final_tabs_update = gr.Tabs(tabs=[
|
114 |
-
gr.TabItem(label="Output", children=[gr.Textbox(value=no_files_msg
|
115 |
])
|
116 |
-
yield {
|
|
|
|
|
|
|
117 |
return
|
118 |
tabs_content = []
|
119 |
for name, content in files:
|
@@ -138,17 +140,16 @@ Start generating the files now.
|
|
138 |
lang = "bash"
|
139 |
elif name.endswith((".xml", ".xaml", ".svg")):
|
140 |
lang = "xml"
|
141 |
-
elif name.endswith(".yaml"
|
142 |
lang = "yaml"
|
143 |
elem_id = f"tab_{re.sub(r'[^a-zA-Z0-9_-]', '_', name)}"
|
144 |
tab_item = gr.TabItem(label=name, elem_id=elem_id, children=[
|
145 |
gr.Code(value=content, language=lang, label=name, interactive=False)
|
146 |
])
|
147 |
tabs_content.append(tab_item)
|
148 |
-
if
|
149 |
-
|
150 |
-
|
151 |
-
final_tabs_update = gr.Tabs(tabs=tabs_content)
|
152 |
yield {
|
153 |
live_output: gr.update(value=full_raw_response if not error_occurred else error_message),
|
154 |
final_tabs: final_tabs_update
|
@@ -169,7 +170,7 @@ with gr.Blocks(css=".gradio-container { max-width: 95% !important; }") as demo:
|
|
169 |
generate_button = gr.Button("✨ Generate Code ✨", variant="primary")
|
170 |
with gr.Column(scale=3):
|
171 |
gr.Markdown("#### Live Raw Output Stream")
|
172 |
-
live_output = gr.
|
173 |
gr.Markdown("---")
|
174 |
gr.Markdown("#### Final Generated Files (Tabs)")
|
175 |
final_tabs = gr.Tabs(elem_id="output_tabs")
|
|
|
92 |
if token:
|
93 |
full_raw_response += token
|
94 |
yield {
|
95 |
+
live_output: gr.update(value=full_raw_response)
|
96 |
}
|
97 |
except Exception as e:
|
|
|
98 |
error_message = f"Error during AI generation: {e}\n\nPartial Response (if any):\n{full_raw_response}"
|
99 |
error_occurred = True
|
100 |
yield {
|
|
|
103 |
}
|
104 |
if error_occurred:
|
105 |
final_tabs_update = gr.Tabs(tabs=[
|
106 |
+
gr.TabItem(label="Error", children=[gr.Textbox(value=error_message, lines=10)])
|
107 |
])
|
108 |
else:
|
109 |
files = parse_files(full_raw_response)
|
110 |
if not files:
|
111 |
no_files_msg = "AI finished, but did not return recognizable file content or the response was empty. See raw output above."
|
112 |
final_tabs_update = gr.Tabs(tabs=[
|
113 |
+
gr.TabItem(label="Output", children=[gr.Textbox(value=no_files_msg)])
|
114 |
])
|
115 |
+
yield {
|
116 |
+
live_output: gr.update(value=full_raw_response + "\n\n" + no_files_msg),
|
117 |
+
final_tabs: final_tabs_update
|
118 |
+
}
|
119 |
return
|
120 |
tabs_content = []
|
121 |
for name, content in files:
|
|
|
140 |
lang = "bash"
|
141 |
elif name.endswith((".xml", ".xaml", ".svg")):
|
142 |
lang = "xml"
|
143 |
+
elif name.endswith((".yaml", ".yml")):
|
144 |
lang = "yaml"
|
145 |
elem_id = f"tab_{re.sub(r'[^a-zA-Z0-9_-]', '_', name)}"
|
146 |
tab_item = gr.TabItem(label=name, elem_id=elem_id, children=[
|
147 |
gr.Code(value=content, language=lang, label=name, interactive=False)
|
148 |
])
|
149 |
tabs_content.append(tab_item)
|
150 |
+
final_tabs_update = gr.Tabs(tabs=tabs_content) if tabs_content else gr.Tabs(tabs=[
|
151 |
+
gr.TabItem(label="Output", children=[gr.Textbox(value="No valid files generated after filtering.")])
|
152 |
+
])
|
|
|
153 |
yield {
|
154 |
live_output: gr.update(value=full_raw_response if not error_occurred else error_message),
|
155 |
final_tabs: final_tabs_update
|
|
|
170 |
generate_button = gr.Button("✨ Generate Code ✨", variant="primary")
|
171 |
with gr.Column(scale=3):
|
172 |
gr.Markdown("#### Live Raw Output Stream")
|
173 |
+
live_output = gr.Textbox(label="Raw AI Stream", lines=20, interactive=False)
|
174 |
gr.Markdown("---")
|
175 |
gr.Markdown("#### Final Generated Files (Tabs)")
|
176 |
final_tabs = gr.Tabs(elem_id="output_tabs")
|