Because AI Should See All of Us
An open-source research platform for evaluating AI bias, fairness, and cultural alignment across African languages and heritage contexts.
Features · Getting Started · Architecture · Contributing · Community · License
Most AI fairness tools are designed for Western contexts. African languages, cultures, and knowledge systems remain underrepresented in mainstream AI evaluation. UBUNTU-XAI addresses this gap by providing a purpose-built platform to:
- Detect cultural bias in large language models when processing African heritage content
- Evaluate fairness across demographic groups using metrics like Demographic Parity and Equalized Odds
- Surface interpretable rules that explain why a model fails — not just that it fails
- Compare models side-by-side across multiple dimensions of cultural sensitivity
The name reflects the Ubuntu philosophy: "I am because we are." AI systems should reflect the full diversity of human experience.
- Multi-Step Evaluation Wizard — Configure benchmarks, select models, choose languages, and pick evaluation templates through a guided setup flow
- Fairness Dashboard — Interactive charts (bar charts, radar plots, progress bars) visualizing Demographic Parity, Equalized Odds, and overall fairness scores
- Interpretable Rules Engine — Automatically extracted fuzzy rules that explain model behavior in human-readable language (e.g., "If Language is Yoruba AND Topic is Proverbs → Accuracy 87%")
- Model Directory — Browse and compare AI models with cultural alignment and bias scores
- Benchmark Datasets — Standardized evaluation suites (IrokoBench, INJONGO) covering 12+ African languages
- Presentation Mode — Figma-like canvas view with realistic iPhone 14 Pro mockup frames and export to PNG, PDF, and PPTX
- Full-Stack Architecture — PostgreSQL database, Express API, React frontend with TanStack Query
- Node.js 18+
- PostgreSQL 14+
- npm or yarn
# Clone the repository
git clone https://github.com/ubuntu-xai/ubuntu-xai.git
cd ubuntu-xai
# Install dependencies
npm install
# Set up your database
export DATABASE_URL="postgresql://user:password@localhost:5432/ubuntu_xai"
# Push the database schema
npm run db:push
# Start the development server
npm run devThe application will be available at http://localhost:5000.
- Home (
/) — Landing page introducing the platform - Evaluate (
/evaluate) — 4-step wizard to configure a new evaluation run - Dashboard (
/dashboard) — View fairness analysis results with charts and interpretable rules - Models (
/models) — Browse the AI model directory - Benchmarks (
/benchmark) — Explore available evaluation datasets - Presentation (
/presentation) — Export-ready design views
| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Yes |
PORT |
Server port (default: 5000) | No |
ubuntu-xai/
├── client/ # React frontend (Vite)
│ └── src/
│ ├── pages/ # Page components
│ ├── components/ui/ # shadcn/ui components
│ └── lib/ # Query client, utilities
├── server/ # Express backend
│ ├── index.ts # Server entry point
│ ├── routes.ts # API route handlers
│ ├── storage.ts # Database access layer (Drizzle ORM)
│ ├── seed.ts # Initial seed data
│ └── db.ts # Database connection
├── shared/
│ └── schema.ts # Drizzle schema + Zod validation
└── attached_assets/ # Static assets (logos, images)
| Layer | Technology |
|---|---|
| Frontend | React, Vite, TanStack Query, Wouter, Recharts, shadcn/ui, Tailwind CSS |
| Backend | Express.js, Drizzle ORM, Zod |
| Database | PostgreSQL |
| Export | html-to-image, jsPDF, pptxgenjs |
| Typography | Inter (sans-serif), Lora (serif) |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/models |
List all models |
| POST | /api/models |
Add a new model |
| GET | /api/benchmarks |
List all benchmarks |
| GET | /api/languages |
List supported languages |
| POST | /api/evaluations |
Create a new evaluation run |
| GET | /api/evaluations/latest/full |
Get latest evaluation with all results |
| GET | /api/evaluations/:id/full |
Get specific evaluation with all results |
| GET | /api/evaluations/:id/results |
Get fairness results for a run |
| GET | /api/evaluations/:id/rules |
Get interpretable rules for a run |
| GET | /api/evaluations/:id/radar |
Get radar comparison data |
UBUNTU-XAI currently supports evaluation across these African languages:
Yoruba · Swahili · Hausa · Amharic · Igbo · Zulu · Oromo · Somali
We are actively working to expand coverage. Help us add more languages →
We welcome contributions from researchers, developers, linguists, and anyone passionate about fair AI for African communities. See our Contributing Guide for details on:
- Setting up your development environment
- Our code review process
- How to add new languages, benchmarks, or models
- Reporting bugs and requesting features
- GitHub Discussions — Ask questions, share ideas, and connect with other contributors
- Issue Tracker — Report bugs or request features using our templates
- Contributing Guide — Everything you need to start contributing
UBUNTU-XAI is built on the CARE Principles for Indigenous Data Governance (Collective Benefit, Authority to Control, Responsibility, Ethics) and draws from established African NLP benchmarks including:
- IrokoBench — Cultural heritage evaluation across 12 African languages
- INJONGO — Intent and sentiment alignment for Southern African dialects
- SAfriSenti — Sentiment analysis for African languages
UBUNTU-XAI is a project of African AI Heritage Labs, an initiative of the AI for Cultural Heritage Institute.
Our mission is to ensure that AI systems understand, respect, and accurately represent African cultures, languages, and knowledge systems.
This project is licensed under the MIT License.
Built with Ubuntu philosophy — "I am because we are."
