User Interface¶
Configure the Lumen AI chat interface.
ChatUI vs ExplorerUI¶
Lumen provides two interfaces:
- ExplorerUI - Split view with table explorer, multiple explorations, and a navigation tree. Best for most use cases.
- ChatUI - Simple chat-only interface. Best for embedded applications.
Use ExplorerUI unless you specifically need the simpler ChatUI.
Basic configuration¶
Common parameters¶
Load data¶
Configure LLM¶
Add agents¶
Custom agents
ui = lmai.ExplorerUI(
data='penguins.csv',
agents=[MyCustomAgent()] # Adds to 8 default agents
)
Add tools¶
Custom tools
ui = lmai.ExplorerUI(
data='penguins.csv',
tools=[my_function] # Functions become tools automatically
)
Change title¶
Custom suggestions¶
Quick action buttons
ui = lmai.ExplorerUI(
data='penguins.csv',
suggestions=[
("search", "What data is available?"),
("bar_chart", "Show trends"),
] # (1)!
)
- Tuples of (Material icon name, button text)
Advanced parameters¶
Enable chat logging¶
Log conversations
ui = lmai.ExplorerUI(
data='penguins.csv',
logs_db_path='logs.db' # SQLite database for all messages
)
Configure coordinator¶
Coordinator options
ui = lmai.ExplorerUI(
data='penguins.csv',
coordinator_params={
'verbose': True,
'validation_enabled': False
}
)
Custom file handlers¶
Handle custom file types
def handle_hdf5(file_bytes, alias, filename):
# Process file and add to source
return True
ui = lmai.ExplorerUI(
data='penguins.csv',
table_upload_callbacks={'hdf5': handle_hdf5}
)
Provide initial context¶
Pre-populate context
ui = lmai.ExplorerUI(
data='penguins.csv',
context={'company': 'Acme', 'year': 2024} # (1)!
)
- Available to all agents
Custom notebook export¶
Add preamble to exports
ui = lmai.ExplorerUI(
data='penguins.csv',
notebook_preamble='# Analysis by Data Team\n# Generated: 2024'
)
Source controls¶
Source controls provide UI interfaces for loading data from external services like APIs and databases.
See the Source Controls guide for details on building and using controls.
Complete example¶
All parameters¶
Quick reference:
| Parameter | Type | Purpose |
|---|---|---|
data |
str/Path/Source/list | Data sources to load |
llm |
Llm | LLM provider (default: OpenAI) |
agents |
list | Additional agents |
analyses |
list | Custom analyses |
context |
dict | Initial context |
coordinator |
type | Planner or DependencyResolver |
coordinator_params |
dict | Coordinator configuration |
default_agents |
list | Replace default agents |
demo_inputs |
list | Demo prompts for the coordinator |
document_vector_store |
VectorStore | Vector store for document tools |
export_functions |
dict | Map exporter names to export functions |
interface |
type | Chat interface class |
llm_choices |
list | LLM model choices shown in Settings |
log_level |
str | DEBUG/INFO/WARNING/ERROR |
logfire_tags |
list | Log LLM calls to Logfire with tags |
logs_db_path |
str | Chat logging database path |
notebook_preamble |
str | Export header |
provider_choices |
dict | LLM providers shown in Settings |
source_controls |
list | Source control components for data |
suggestions |
list | Quick action buttons |
title |
str | App title |
tools |
list | Custom tools |
upload_handlers |
dict | File extension upload handlers |
vector_store |
VectorStore | Vector store for non-doc tools |
See parameter docstrings in code for complete details.
See also¶
- Data Sources — File and database connections
- Tools — Custom functions for agents
- Building a Census Data Explorer — Complete walkthrough with minimal and full examples