llama-index-integrations/tools/llama-index-tools-python-file/README.md
This tool loads a python file and extracts function names, arguments and descriptions automatically. This tool is particular useful for automatically creating custom Tool Specs when you already have well documented python functions.
This tool has more extensive example usage documented in a Jupyter notebook here
Here's an example usage of the PythonFileToolSpec.
from llama_index.tools.python_file import PythonFileToolSpec
from llama_index.core.agent.workflow import FunctionAgent
from llama_index.llms.openai import OpenAI
pyfile = PythonFileToolSpec("./numpy_linalg.py")
agent = FunctionAgent(
tools=pyfile.to_tool_list(),
llm=OpenAI(model="gpt-4.1"),
)
print(
await agent.run(
"""Load the eig, transpose and solve functions from the python file,
and then write a function definition using only builtin python types (List, float, Tuple)
with a short 5-10 line doc string tool prompts for the functions that only has a small description and arguments
"""
)
)
function_definitions: Get all of the function definitions from the Python file
get_function: Get a specific function definition from the Python file
get_functions: Get a list of functions from the python file
This loader is designed to be used as a way to load data as a Tool in a Agent.