Features
Background & Story
Swariti was born from a desire to preserve Indian folk music and kirtans in a structured, searchable, and beautiful digital format. Many of these songs exist only in oral tradition or scattered across the internet — Swariti brings them together.
The challenge: manually curating hundreds of songs is impractical. So we built an autonomous AI agent — the Swariti AI Agent — that plans, curates, enriches, and submits songs to the archive every day, completely without human intervention.
The agent uses Gemini 2.5 Flash with Google Search grounding to find canonical lyrics, pgvector for semantic duplicate detection, and Prefect for workflow orchestration. A human admin reviews each entry before it goes live — giving quality assurance without slowing the curation pace.
The archive itself — swariti.com — is a Next.js app with Firebase backend, featuring full lyrics, transliteration, AI cover art, and audio links. Songs are tagged by language, region, tradition, and occasion.
Three layers of duplicate prevention ensure quality: the archive snapshot (all approved entries), a submitted-titles list (pending approval), and a fuzzy duplicate check in the admin UI.
Swariti demonstrates what's possible when AI agents are applied thoughtfully to cultural preservation — growing a structured knowledge base autonomously while keeping a human in the final approval loop.
AI Agent Stack
Gemini 2.5 Flash
Primary LLM for curation, enrichment, and planning with Google Search grounding
Prefect
Workflow orchestration — schedules and manages the daily batch pipeline
PostgreSQL + pgvector
Vector storage for semantic duplicate detection and search
Docker Compose
Local containerised deployment of the agent pipeline
OpenAI GPT-4o
Fallback LLM for redundancy
Archive Stack
Next.js 15
App Router, TypeScript, server-side rendering
Firebase
Auth, Firestore, App Hosting
Admin Review UI
Human-in-the-loop approval before entries go live