Asoba Zorora Documentation

Zorora: Know the Asset Before You Buy It

Zorora gives energy traders and asset investors research reports, acquisition diligence, regulatory monitoring, and market intelligence — from a single interface. Ask a question, get a cited answer.

Analysts spend weeks assembling diligence packages from disconnected sources. Zorora synthesizes regulatory data, market pricing, academic research, and asset performance into structured reports automatically — across seven integrated modes covering the full workflow from initial research through pipeline tracking and investment decision.

Zorora Web UI Zorora Terminal REPL

Zorora offers both Web UI and Terminal REPL interfaces


What is Zorora?

Zorora is an energy intelligence platform with seven integrated modes:

  1. Deep Research — Cited research reports from academic databases, web, and newsroom sources with credibility scoring, citation graphs, and evidence-grounded synthesis. Includes diligence search for brownfield acquisition due diligence with structured data from EIA, utility rate, and World Bank databases.
  2. Digest — Stage articles and market datasets, then synthesize structured energy market and policy digests
  3. Alerts — Monitor topics and sources for new developments with configurable alert rules
  4. Regulatory — Track renewable portfolio standards, utility rates, generation assets, and regulatory environments by jurisdiction across South Africa, Zimbabwe, and the United States
  5. Global View — Interactive country map with geo-tagged articles, topic/source drill-down, and live commodity dataset cards (SAPP DAM prices, Eskom demand, FRED treasuries)
  6. Discovery — Satellite-based geospatial map with 1,144 mineral deposits, 739 generation assets, mining concessions, and transmission infrastructure. One-click research, diligence, or scouting from any asset popup.
  7. Scouting — Kanban pipeline for tracking brownfield, greenfield, and BESS opportunities through five evaluation stages (Identified, Scored, Feasibility, Diligence, Decision) with automated feasibility studies across production, trading, grid, regulatory, and financial dimensions.

Why Zorora Exists

Energy projects fail for reasons that don’t show up in financial models — grid connection delays, municipal tariff disputes, environmental permitting gaps, counterparty exposure to contractors that lost accreditation. The risks that kill energy deals are regulatory, political, and operational. The records are scarce, scattered across government gazettes, regulatory feeds, and local newsrooms in formats no spreadsheet can aggregate.

Zorora surfaces the specific non-financial factors that determine whether a project reaches commercial operation:

Core Value Proposition


Core Features

Platform Modes

Mode What it does
Deep Research Cited research reports: parallel source aggregation (academic, web, newsroom) → credibility scoring → evidence-grounded synthesis with inline citations. Includes diligence search for brownfield due diligence with structured EIA/utility/World Bank data.
Digest Stage articles and market datasets, synthesize structured energy market and policy digests
Alerts Monitor topics and sources for new developments with configurable alert rules
Regulatory Regulatory events (NERSA, ZERA, FERC), renewable portfolio standards, utility rates, and generation data by jurisdiction
Global View Interactive country map with geo-tagged articles, topic/source drill-down, and live commodity dataset cards
Discovery Satellite geospatial map with 1,144 mineral deposits, 739 generation assets, concessions, and transmission infrastructure
Scouting Kanban pipeline for brownfield/greenfield/BESS opportunities with 5-stage tracking and automated feasibility studies

Research Depth Levels

Additional Capabilities


Architecture

Zorora uses deterministic routing with pattern matching instead of LLM-based orchestration. This design choice enables reliable operation with small 4B models while maintaining RAM efficiency.

Design Philosophy

Architecture Diagram

User Query / Slash Command / Web UI Request
    ↓
Pattern Matching (simplified_router.py) / Flask Routes (ui/web/app.py)
    ↓
    ├─→ DEEP RESEARCH (6-phase pipeline)
    │   ├─► Parallel Source Aggregation (academic, web, newsroom)
    │   ├─► Citation Following → Cross-Referencing → Credibility Scoring
    │   ├─► Citation Graph Building
    │   └─► Contract-Based Synthesis (Reasoning Model)
    ├─→ DILIGENCE SEARCH (domain-specific due diligence)
    │   ├─► Query Decomposition (tariffs, regulations, performance, vendors)
    │   ├─► Structured Data (EIA, utility rates, RPS, World Bank, generation assets)
    │   └─► Diligence Report Synthesis with Charts
    ├─→ DIGEST (staged article + dataset synthesis)
    ├─→ ALERTS (topic/source monitoring)
    ├─→ REGULATORY (RPS, utility rates, generation data by jurisdiction)
    ├─→ GLOBAL VIEW (country map + market datasets)
    ├─→ DISCOVERY (geospatial OSINT — deposits, generation, concessions)
    ├─→ SCOUTING (kanban pipeline + feasibility studies)
    ├─→ CODE WORKFLOW (Codestral specialist)
    └─→ DATA ANALYSIS (sandboxed Python + matplotlib)

Key Principles

Core Components

1. Simplified Router (simplified_router.py)

Uses pattern matching to route queries to workflows. No LLM involved - pure pattern matching ensures consistent, fast routing (0ms decision time).

2. Research Engine (engine/research_engine.py)

High-level interface for deep research:

3. Deep Research Workflow (workflows/deep_research/)

Hardcoded pipeline for multi-source research:

4. Storage Layer (engine/storage.py)

Local-first storage:

5. Web UI (ui/web/app.py)

Flask-based web interface with seven modes:


Local-First Design

Storage Architecture

Research Request
    ↓
ResearchEngine.deep_research()
    ↓
DeepResearchWorkflow.execute()
    ↓
LocalStorage.save_research()
    ├─► SQLite Index (~/.zorora/zorora.db)
    │   ├─► research_findings (metadata)
    │   ├─► sources (indexed)
    │   └─► citations (graph)
    └─► JSON Files (~/.zorora/research/findings/<id>.json)
        └─► Full research state (sources, findings, synthesis)

Privacy & Control

Performance


Why This Architecture?

Problem: 4B Models Can’t Orchestrate

Traditional multi-model orchestration requires the LLM to:

4B models fail at all of these. They can’t reliably generate JSON, struggle with function calling, and get stuck in loops.

Solution: Code Handles Complexity

Instead of asking the 4B model to be smart, we made the code smart:

Result: 100% reliability with 4B models, 1/3 the RAM usage of 8B orchestrators, complete privacy with local storage.

Trade-offs

What we lost:

What we gained:


Quick Start

Installation

Install from GitHub:

pip install git+https://github.com/AsobaCloud/zorora.git

Run Your First Query

Terminal:

zorora
[1] ⚙ > What are the latest developments in large language model architectures?

Web UI:

zorora web
# Opens at http://localhost:5000

API:

from engine.research_engine import ResearchEngine

engine = ResearchEngine()
state = engine.deep_research("Your research question", depth=1)
print(state.synthesis)

Next Steps


See Also