← Back to Portfolio

La Colonia

A 3-stage multi-LLM deliberation council

FastAPI React 19 Vite OpenRouter Ollama Python SSE Streaming Async httpx react-markdown uv

La Colonia replaces single-model AI responses with a council of LLMs that deliberate, rank each other's answers, and synthesize a final verdict. Models take on Spanish-language personas — El Profesor, La Abogada, El Patrón — grounding the experience in Latino culture.

Built on Andrej Karpathy's llm-council concept and extended into a full-stack app: FastAPI backend streaming results over SSE, React 19 frontend with a radial deliberation view, and support for 9 LLM providers (OpenRouter, Ollama, Groq, OpenAI, Anthropic, and more).

App in Action

La Colonia start page showing council members
Question sent to council
Stage 1 — Deliberation
Models query in parallel over SSE
Peer ranking leaderboard
Stage 2 — Peer Review
Models anonymously rank each other
Final verdict from El Patrón
Stage 3 — Synthesis
El Patrón delivers the final verdict

How It Works

01

Deliberation

4–8 council models answer in parallel. Results stream back as they arrive via Server-Sent Events.

02

Peer Ranking

Each model anonymously scores all other responses. Aggregate rankings surface the best answers.

03

Synthesis

A designated Chairman model reads all answers and rankings, then delivers a single authoritative verdict.

Tech Stack

Backend

  • FastAPI + uvicorn (port 8001)
  • Async httpx — concurrent LLM requests
  • SSE streaming to frontend
  • 9 provider adapters (OpenRouter, Ollama, Groq, OpenAI, Anthropic, Google, Mistral, DeepSeek, custom)
  • DuckDuckGo / Tavily / Brave web search
  • JSON file storage — no database
  • uv for package management

Frontend

  • React 19 + Vite
  • Radial deliberation view
  • react-markdown for responses
  • 3-mode execution: chat only, + ranking, full deliberation
  • Configurable personas per model
  • Responsive, CSS-native design

Highlights

Key Outcomes