File size: 1,454 Bytes
1da91a9
5164dc5
 
1da91a9
 
5164dc5
1da91a9
5164dc5
1da91a9
5164dc5
1da91a9
5164dc5
1da91a9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5164dc5
1da91a9
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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]