Data Analyst Agent
Query IMDB movie data with a LangDB agent using DuckDbTools.
Code
from textwrap import dedent
from agno.agent import Agent
from agno.models.langdb import LangDB
from agno.tools.duckdb import DuckDbTools
duckdb_tools = DuckDbTools()
duckdb_tools.create_table_from_path(
path="https://agno-public.s3.amazonaws.com/demo_data/IMDB-Movie-Data.csv",
table="movies",
)
agent = Agent(
model=LangDB(id="llama3-1-70b-instruct-v1.0"),
tools=[duckdb_tools],
markdown=True,
additional_context=dedent("""\
You have access to the following tables:
- movies: contains information about movies from IMDB.
"""),
)
agent.print_response("What is the average rating of movies?", stream=False)Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateExport environment variables
export LANGDB_API_KEY="your_langdb_api_key"
export LANGDB_PROJECT_ID="your_langdb_project_id"
export LANGDB_API_BASE_URL="https://api.langdb.ai"Install dependencies
uv pip install -U openai agno duckdbRun Agent
Save the code above as data_analyst.py, then run:
python data_analyst.py