Skip to content

Agent overview (udiagent)

LLM-powered data visualization orchestration library for the Universal Discovery Interface (UDI).

UDIAgent orchestrates LLM calls to generate data visualization specs from natural language queries. It can be used as a standalone Python library or deployed as a FastAPI microservice.

Terminal window
# Core library only
pip install udiagent
# With the reference FastAPI server
pip install udiagent[server]
# With LangFuse observability
pip install udiagent[langfuse]
# With Amazon Bedrock IAM-role (SigV4) authentication
pip install udiagent[bedrock]
# With benchmarking tools
pip install udiagent[benchmark]
# Everything
pip install udiagent[all]

For local development with uv:

Terminal window
uv sync --extra server --extra langfuse --extra test --extra bedrock # server + dev

As a library:

from udiagent import UDIAgent, Orchestrator
agent = UDIAgent(gpt_model_name="gpt-5.4", openai_api_key="sk-...")
result = Orchestrator(agent).run(
messages=[{"role": "user", "content": "Show me a bar chart of donors by sex"}],
data_schema='{"resources": [...]}',
data_domains='[{"entity": "donors", "field": "sex", ...}]',
)
# result.tool_calls: the tool calls to apply (RenderVisualization, FilterData, ...)

As a server, for local development (from packages/agent):

Terminal window
INSECURE_DEV_MODE=1 uv run --extra server fastapi dev src/udiagent/server/app.py --port 8007

MIT