Overview
AniRec AI is a full-stack web application that combines natural language AI recommendations with personal anime library management. Built with React, TypeScript, Node.js, and SQLite, it uses Google Gemini Pro for narrative-driven recommendations and Gemini Flash for fast metadata extraction.
π― Problem & Motivation
Standard anime search platforms rely on rigid genre tags. Finding recommendations based on subtle narrative themes, character arcs, or specific pacing is difficult. I wanted an AI assistant capable of understanding natural language preferences.
βοΈ Technical Constraints
External anime APIs (AniList, MyAnimeList, Kitsu) enforce strict rate limits and return disparate data formats. Querying large AI models for simple search parsing introduces unnecessary latency.
ποΈ Architecture & Dual-AI Pipeline
- Gemini Flash Engine: Extracts anime titles, genres, and intent from user search prompts at low latency.
- Gemini Pro Recommender: Evaluates user preferences against anime themes to generate personalized recommendations with explanation rationale.
- API Normalizer: Unifies external anime metadata structures into a consistent internal schema.
- SQLite Database: Local structured storage for watch-list persistence.
βοΈ Challenges & Trade-offs
Trade-off: Using two separate LLM models (Flash + Pro) increases backend pipeline coordination, but drastically improves UI responsiveness compared to routing all queries through a single large model.
π‘ Lessons Learned
1. Decoupling parsing from recommendation generation optimizes both speed and token cost.
2. Building a central normalization layer upfront prevents UI state bugs when aggregating external APIs.
π Planned Improvements
- Planned Vector similarity search for instant offline recommendations.
- Planned Export/Import watch-lists via JSON format.