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.
Installation
Section titled “Installation”# Core library onlypip install udiagent
# With the reference FastAPI serverpip install udiagent[server]
# With LangFuse observabilitypip install udiagent[langfuse]
# With Amazon Bedrock IAM-role (SigV4) authenticationpip install udiagent[bedrock]
# With benchmarking toolspip install udiagent[benchmark]
# Everythingpip install udiagent[all]For local development with uv:
uv sync --extra server --extra langfuse --extra test --extra bedrock # server + devQuick start
Section titled “Quick start”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):
INSECURE_DEV_MODE=1 uv run --extra server fastapi dev src/udiagent/server/app.py --port 8007Documentation
Section titled “Documentation”- Library usage: configuration, template sets, reasoning models, OpenAI-compatible backends, Amazon Bedrock, LangFuse.
- Running the server: environment variables, identity providers, server-side query backends, Docker.
- Deployment guide: standing the server up on a host.
- How the agent works: the request flow, chart templates, filters, and regenerating the generated template files.
- Benchmarking: measuring a server configuration.
- Server-side data: compiling the grammar to SQL.
- Reference: the Python API
and the HTTP API
(from
openapi.json).
License
Section titled “License”MIT