Skip to content

Copilot

The copilot is an assistant that knows your sources: it searches for tables, reads their descriptions, writes Trino SQL, and suggests questions, dashboards or table descriptions to you. It opens from the Copilot button in the top bar, from the home page (Ask the copilot), in the SQL editor, a question, a dashboard or the Structure screen.

It is optional: without a configured provider, its buttons do not appear.

The panel keeps the context of the screen it is opened from:

ScreenWhat you might ask it
Home, or all data“What is the revenue by region over the last 6 months?”
SQL editorwrite a query; Fix with the copilot passes it the Trino error
Questionmodify or explain the current question
Dashboard“Build a customer service dashboard”, or add cards
StructureDescribe with the copilot: labels, descriptions and semantic types of a table

To do so, it has tools:

ToolRole
search_schemasearch for tables, models and metrics by keywords
describe_tableread a table: columns, Trino types, semantic types, descriptions, values, relationships
list_metricslist the metrics and models defined by the team
run_queryrun a read-only query, under your permissions — if you allow it
propose_questionsuggest a question: SQL and visualization
propose_dashboardsuggest a dashboard, or cards to add to the open dashboard
propose_metadatasuggest metadata for a table

The descriptions, semantic types and values you enter in Structure are part of its context: the better your tables are described, the more accurate its answers.

Answers arrive continuously (streaming), and conversations are kept per person: New conversation starts another one.

The copilot changes nothing by itself. A suggestion appears in the panel with an Apply (or Open) button: the question opens in the editor, the cards are added to the dashboard, the description is written into Structure — only when you click.

  • It reads under your permissions. run_query goes through Trino under your identity, like any other query: your row rules apply, hidden columns do not exist for it, and masked columns reach it masked.
  • It runs nothing without your consent. The Allow running queries (with your permissions) switch, off by default, applies to the conversation. When it is off, the copilot writes queries without running them.
  • It only receives an excerpt of each result: 40 rows at most.
  • A quota limits the number of messages per person per hour.
  • Every call is logged: provider, model, screen, tokens consumed, tools used, duration, any error.

Its queries appear in the history with the origin “copilot”.

The copilot is configured through the API and worker environment variables:

VariableDefaultRole
AI_PROVIDERanthropic if ANTHROPIC_API_KEY is set, otherwise openai if OPENAI_API_KEY is, otherwise noneanthropic, openai, mistral, openai-compatible or none
AI_API_KEYANTHROPIC_API_KEY, otherwise OPENAI_API_KEYthe provider’s key
AI_MODELclaude-sonnet-5-5 (Anthropic), mistral-large-latest (Mistral), gpt-4.1 (the others)the model
AI_BASE_URLthe provider’s URLrequired for openai-compatible
AI_HOURLY_QUOTA60messages per person per hour
AI_PROVIDER_SSL_VERIFYtruefalse: the provider’s certificate is not checked

A few examples:

Fenêtre de terminal
# Anthropic
AI_PROVIDER=anthropic
AI_API_KEY=sk-ant-…
# Mistral
AI_PROVIDER=mistral
AI_API_KEY=…
# An OpenAI-compatible server (gateway, local model…)
AI_PROVIDER=openai-compatible
AI_BASE_URL=https://llm.example.com/v1
AI_API_KEY=…
AI_MODEL=my-model

Administration › Settings shows the provider, the model, the quota and whether the configuration is complete. When a person reaches their quota, the copilot tells them so and invites them to try again later.

eodia insights is free software by Eodia.