↑  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