Documentation Index
Fetch the complete documentation index at: https://spacesail.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
The CSV Reader with asynchronous processing allows you to handle CSV files and integrate them with knowledge bases efficiently.
Code
examples/concepts/knowledge/readers/csv_reader_async.py
import asyncio
from pathlib import Path
from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.pgvector import PgVector
db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"
knowledge = Knowledge(
vector_db=PgVector(
table_name="csv_documents",
db_url=db_url,
),
max_results=5, # Number of results to return on search
)
# Initialize the Agent with the knowledge
agent = Agent(
knowledge=knowledge,
search_knowledge=True,
)
if __name__ == "__main__":
# Comment out after first run
asyncio.run(knowledge.add_content_async(path=Path("data/csv")))
# Create and use the agent
asyncio.run(agent.aprint_response("What is the csv file about", markdown=True))
Usage
Create a virtual environment
Open the Terminal and create a python virtual environment.python3 -m venv .venv
source .venv/bin/activate
Install libraries
pip install -U pandas sqlalchemy psycopg pgvector agno
Run PgVector
docker run -d \
-e POSTGRES_DB=ai \
-e POSTGRES_USER=ai \
-e POSTGRES_PASSWORD=ai \
-e PGDATA=/var/lib/postgresql/data/pgdata \
-v pgvolume:/var/lib/postgresql/data \
-p 5532:5432 \
--name pgvector \
agno/pgvector:16
Run Agent
python examples/concepts/knowledge/readers/csv_reader_async.py
Params
| Parameter | Type | Default | Description |
file | Union[Path, IO[Any]] | Required | Path to CSV file or file-like object |
delimiter | str | "," | Character used to separate fields in the CSV |
quotechar | str | '"' | Character used to quote fields in the CSV |