import requests from llama_index.tools.wikipedia import WikipediaToolSpec from llama_index.tools.duckduckgo import DuckDuckGoSearchToolSpec from llama_index.tools.code_interpreter import CodeInterpreterToolSpec from llama_index.core.tools import FunctionTool # wikipedia search tool wiki_spec = WikipediaToolSpec() wiki_tool = wiki_spec.to_tool_list() # duckduckgo search tool ddgo_spec = DuckDuckGoSearchToolSpec() ddgo_tool = ddgo_spec.to_tool_list() # execute python code and return the stdout and stderr. code_spec = CodeInterpreterToolSpec() code_tool = code_spec.to_tool_list() def download_file(url: str, save_path: str) -> str: """Download a file from a given URL and save it to the specified path.""" response = requests.get(url) with open(save_path, 'wb') as file: file.write(response.content) return f"File downloaded to (save_path)" download_tool = FunctionTool.from_defaults( fn=download_file, name="download_file_tool", description="A tool to download files from an HTTPS API endpoint. The tool accepts two arguments: The https url path to download the file and the location to save the downloaded file. If no auguments are passed then use the default values. Default values: For 'url' use 'https://agents-course-unit4-scoring.hf.space/files/{task_id}' and for 'save_path' use the current path." ) # agent complete tool list agent_tools_list = wiki_tool + ddgo_tool + code_tool + [download_tool]