CSV
CsvTools enable an Agent to read and write CSV files.
Example
The following agent will download the IMDB csv file and allow the user to query it using a CLI app.
cookbook/tools/csv_tools.py
import httpx
from pathlib import Path
from bitca.agent import Agent
from bitca.tools.csv_tools import CsvTools
url = "https://bitca-public.s3.amazonaws.com/demo_data/IMDB-Movie-Data.csv"
response = httpx.get(url)
imdb_csv = Path(__file__).parent.joinpath("wip").joinpath("imdb.csv")
imdb_csv.parent.mkdir(parents=True, exist_ok=True)
imdb_csv.write_bytes(response.content)
agent = Agent(
tools=[CsvTools(csvs=[imdb_csv])],
markdown=True,
show_tool_calls=True,
instructions=[
"First always get the list of files",
"Then check the columns in the file",
"Then run the query to answer the question",
],
)
agent.cli_app(stream=False)
Toolkit Params
csvs
List[Union[str, Path]]
-
A list of CSV files or paths to be processed or read.
row_limit
int
-
The maximum number of rows to process from each CSV file.
read_csvs
bool
True
Enables the functionality to read data from specified CSV files.
list_csvs
bool
True
Enables the functionality to list all available CSV files.
query_csvs
bool
True
Enables the functionality to execute queries on data within CSV files.
read_column_names
bool
True
Enables the functionality to read the column names from the CSV files.
duckdb_connection
Any
-
Specifies a connection instance for DuckDB database operations.
duckdb_kwargs
Dict[str, Any]
-
A dictionary of keyword arguments for configuring DuckDB operations.
Toolkit Functions
list_csv_files
Lists all available CSV files.
read_csv_file
This function reads the contents of a csv file
get_columns
This function returns the columns of a csv file
query_csv_file
This function queries the contents of a csv file
Last updated