mohammedelfeky-ai commited on
Commit
057daa4
·
verified ·
1 Parent(s): 0cc5955

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -56
app.py CHANGED
@@ -161,65 +161,10 @@ agent = CodeAgent(
161
  prompt_templates=prompt_templates
162
  )
163
 
164
- # Custom Gradio UI with file download capability
165
- class CustomGradioUI(GradioUI):
166
- def build_interface(self):
167
- with gr.Blocks() as interface:
168
- with gr.Row():
169
- with gr.Column(scale=1):
170
- gr.Markdown("# AI Assistant")
171
-
172
- chatbot = gr.Chatbot(height=600)
173
- msg = gr.Textbox(
174
- placeholder="Ask me anything...",
175
- container=False,
176
- scale=7,
177
- )
178
-
179
- # Add a file download component
180
- download_btn = gr.Button("Download File", visible=False)
181
- file_output = gr.File(label="Generated Document", visible=False)
182
-
183
- # Store the latest file path
184
- self._latest_file_path = None # Instance variable to store path between calls
185
-
186
- def respond(message, chat_history):
187
- agent_response = self.agent.run(message)
188
- chat_history.append((message, agent_response))
189
-
190
- show_download = False
191
- # Reset latest_file_path to ensure it's fresh for each response
192
- # self._latest_file_path = None # Actually, should be set if file is found
193
 
194
- # Look for generated file paths in the agent's response.
195
- # tempfile.mkdtemp() usually creates paths like /tmp/some_random_string/
196
- # The tool consistently names files "generated_document.ext"
197
- paths = re.findall(r'/tmp/[^/]+/generated_document\.(docx|pdf|txt)', agent_response)
198
- if paths:
199
- self._latest_file_path = paths[0] # Store the full path
200
- show_download = True
201
- else:
202
- self._latest_file_path = None # Clear if no path found in this response
203
-
204
- return chat_history, gr.Button.update(visible=show_download), gr.File.update(visible=False) # Keep file output hidden until download clicked
205
-
206
- def prepare_download():
207
- if self._latest_file_path and os.path.exists(self._latest_file_path):
208
- return gr.File.update(value=self._latest_file_path, visible=True)
209
- # Handle case where file might have been cleaned up or path is stale
210
- gr.Warning("File not available for download. It might have been temporary or an error occurred.")
211
- return gr.File.update(visible=False)
212
-
213
- # Connect the components
214
- msg.submit(respond, [msg, chatbot], [chatbot, download_btn, file_output])
215
- download_btn.click(prepare_download, [], [file_output])
216
-
217
- gr.Markdown("Powered by smolagents and Qwen") # Qwen is mentioned, perhaps the HF endpoint uses it.
218
-
219
- return interface
220
 
221
  # Ensure this conditional execution if the script can also be imported
222
  if __name__ == "__main__":
223
  # Note: The original script had GradioUI(agent).launch() directly.
224
  # Using the custom UI:
225
- CustomGradioUI(agent).launch()
 
161
  prompt_templates=prompt_templates
162
  )
163
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
164
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
165
 
166
  # Ensure this conditional execution if the script can also be imported
167
  if __name__ == "__main__":
168
  # Note: The original script had GradioUI(agent).launch() directly.
169
  # Using the custom UI:
170
+ GradioUI(agent).launch()