Spaces:
Paused
Paused
| import gradio as gr | |
| import random | |
| import os | |
| from smolagents import DuckDuckGoSearchTool, CodeAgent, WikipediaSearchTool, LiteLLMModel | |
| from tools import DownloadTaskAttachmentTool, VisitWebpageTool | |
| class MyAgent: | |
| def __init__(self): | |
| self.agent = CodeAgent( | |
| model=LiteLLMModel(model_id="openrouter/meta-llama/llama-4-maverick:free", api_key=os.getenv("OPENROUTER_KEY")), | |
| tools=[DuckDuckGoSearchTool(), WikipediaSearchTool(), VisitWebpageTool(), DownloadTaskAttachmentTool()], | |
| add_base_tools=True, | |
| additional_authorized_imports=['pandas', 'numpy', 'csv', 'subprocess', 'exec'] | |
| ) | |
| print("MyAgent initialized.") | |
| def __call__(self, question: str) -> str: | |
| print(f"Agent received question (first 50 chars): {question[:50]}...") | |
| agent_answer = self.agent.run(question) | |
| print(f"Agent answer: {agent_answer}") | |
| return agent_answer | |
| def download_file(self, task_id: str) -> str: | |
| """ | |
| Downloads a file associated with the given task ID. | |
| Returns the file path where the file is saved locally. | |
| """ | |
| file_url = f"{DEFAULT_API_URL}/files/{task_id}" | |
| local_file_path = f"downloads/{task_id}.file" | |
| print(f"Downloading file for task ID {task_id} from {file_url}...") | |
| try: | |
| response = requests.get(file_url, stream=True, timeout=15) | |
| response.raise_for_status() | |
| os.makedirs("downloads", exist_ok=True) | |
| with open(local_file_path, "wb") as file: | |
| for chunk in response.iter_content(chunk_size=8192): | |
| file.write(chunk) | |
| print(f"File downloaded successfully: {local_file_path}") | |
| return local_file_path | |
| except requests.exceptions.RequestException as e: | |
| print(f"Error downloading file for task {task_id}: {e}") | |
| raise | |
| def launch_ui(self): | |
| GradioUI(self.agent).launch() | |
| # if __name__ == "__main__": | |
| # my_agent = MyAgent() | |
| # my_agent.launch_ui() | |