Revenue by region this quarterAverage order value over timeMonthly active users trendInventory turnover by category
3-line startmulti-source
importora
db = ora.connect("postgresql://localhost/mydb")
result = db.query("Show me top 10 customers by revenue")
✓ DataFrame · 1.2s · $0.003 · BIRD 65%+Copy
↓ speak to your data ↓
Your workspaces
Loading…
01
◉
Data Layer
connected sources · any dialect · SQLAlchemy 2.0
PostgreSQL
Snowflake
BigQuery
DuckDB
MySQL
Redshift
CSV / XLSX
Query Received
User's natural language query arrives — Ora runs the full ReAct loop: decompose, semantic resolution with alias pre-check and pattern memory, schema context, SQL generation with self-correction, validation, and semantic layer evolution.
orchestratorReAct loop — one node does all thinking ora → respond → learnLangGraph3-node StateGraph ora → respond → learnLiteLLMall LLM providers via one adapter GPT-4o · Claude · OllamaSemanticLayeraliases · patterns · enrichments resolution log · failure reflectionOTelper-phase tracing Prometheus metrics
Schema Analysis
SchemaAgent introspects the DB → builds KnowledgeGraph → detects FK topology → serializes to M-Schema for token-efficient prompting.
schema analysis
03
◈
Schema Agent
knowledge construction · graph topology · vector indexing
↑ click any node to see live output
STAGE 1
DB Introspect
DDL · FK · cardinality
STAGE 2
Knowledge Graph
nodes · edges · layers
STAGE 3
FK Topology
Merkle · 3-pass detect
STAGE 4
Vector Index
M-Schema · NL→SQL
LangGraph5-node agent StateGraph SchemaAgent classSQLAlchemy 2.0async dialect reflection PostgreSQL · Snowflake · BQSQLGlotAST parsing · transpilation cross-dialect normalizationQdrantin-process vector store NL→SQL example retrievalfastembedBAAI/bge-small-en-v1.5 zero-API-key embeddingsDuckDBin-memory cross-source JOIN data never leaves environment
Semantic Resolution
Multi-pass iterative reasoning: pre-checks high-confidence aliases (≥0.93), loads known patterns and column enrichments, avoids past failures, then calls LLM only for truly unknown entities. Schema Agent searches DB for unresolved terms.
high-confidence aliases · known patterns · past failures
PASS 2
LLM Reasoning
entity mapping · column meanings · enrichments
PASS 3
Schema Search
targeted DB lookup for unresolved entities
OUTPUT
Resolution
filters · confidence · log entry
LiteLLMmulti-pass reasoning only calls LLM for unknownsaliases.jsonlearned term→value mappings confidence ≥ 0.93 = deterministicpatterns.jsoncommon filter combos auto-injected after 3+ usesenrichmentscolumn usage context from past successful queriesresolution_logtracks every resolution failures become anti-patterns
SQL Execution
Ora builds the query spec and dispatches to SQL Agent: CHESS schema pruning → parallel SQL generation (3 candidates) → pairwise selection → ReFoRCE 3-stage self-correction → validated result.
LangGraphStateGraph per query conditional edgesLangChainTool adapters + few-shot prompt chainsLiteLLMUnified router — OpenAI Anthropic · Bedrock · OllamaOpenTelemetryOne span per node Langfuse + PrometheusFastAPISSE /query/stream live trace events to UI
Specialist Agents
Decompose cross-source queries → fan out to each DB → DuckDB in-memory synthesis → NL response generation → LearnAgent evolves aliases, patterns, enrichments, and records failures for reflection.