↑  the product  ↑
ora-app  ·  workspace  ·  localhost:8080
$ pip install ora-sql Copy
⭐ GitHub 🤗 HuggingFace 📖 Docs 💬 Discord
Ask anything about your data...
→
Revenue by region this quarter Average order value over time Monthly active users trend Inventory turnover by category
3-line start multi-source
import ora

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.
query received
02
◈
Ora
ReAct orchestrator · decompose → resolve → execute → learn
↑ click any node to see live output
PHASE 1
Decompose
intent · entities · query structure
PHASE 2
Semantic Resolve
alias pre-check · patterns · failure reflection
PHASE 3
Schema + SQL
CHESS LSH · 3 generators · self-correct
PHASE 4
Validate & Learn
result check · evolve semantic layer
orchestratorReAct loop — one node does all thinking
ora → respond → learn
LangGraph3-node StateGraph
ora → respond → learn
LiteLLMall LLM providers via one adapter
GPT-4o · Claude · Ollama
SemanticLayeraliases · patterns · enrichments
resolution log · failure reflection
OTelper-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 class
SQLAlchemy 2.0async dialect reflection
PostgreSQL · Snowflake · BQ
SQLGlotAST parsing · transpilation
cross-dialect normalization
Qdrantin-process vector store
NL→SQL example retrieval
fastembedBAAI/bge-small-en-v1.5
zero-API-key embeddings
DuckDBin-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.
semantic resolution
04
◎
Semantic Agent
iterative reasoning · alias learning · pattern memory · failure reflection
PASS 1
Pre-Check
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 unknowns
aliases.jsonlearned term→value mappings
confidence ≥ 0.93 = deterministic
patterns.jsoncommon filter combos
auto-injected after 3+ uses
enrichmentscolumn usage context
from past successful queries
resolution_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.
query orchestration
05
⬡
SQL Agent
3 generators · pairwise selection · ReFoRCE self-correction
STAGE 1
Schema Linker
CHESS LSH · RAG
STAGE 2
SQL Generator
3 candidates · parallel
STAGE 3
Self-Corrector
ReFoRCE · 3-stage loop
OUTPUT
Result
DataFrame · NL · Chart
LangGraphStateGraph per query
conditional edges
LangChainTool adapters +
few-shot prompt chains
LiteLLMUnified router — OpenAI
Anthropic · Bedrock · Ollama
OpenTelemetryOne span per node
Langfuse + Prometheus
FastAPISSE /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.
specialist agents
06
◇
Specialist Agents
decompose · synthesize · respond · learn
AGENT
DecomposeAgent
cross-source split · DAG planner
AGENT
SynthesisAgent
DuckDB JOIN · in-memory merge
AGENT
ResponseGenerator
NL summary · chart · follow-ups
AGENT
LearnAgent
evolve aliases · patterns · enrichments · failure log
DuckDBin-memory cross-source JOIN
data never leaves environment
LangGraphsupervisor orchestrator
QueryOrchestrator class
LiteLLMNL summary generation
follow-up question generation
QdrantNL→SQL training pair store
thumbs-up → auto-indexed