Gen AI APAC Prototype
Overview
Recall X247 is a built for the . It acts as your intelligent Second Brain — a unified platform that: - 📥 knowledge from YouTube videos, web articles, PDFs, and plain notes - 🔍 information using natural language semantic search with AI-powered answers - ✅ tasks and projects linked directly to your captured knowledge - 📅 study sessions and events on your calendar - 🃏 flashcards for active recall and spaced repetition - 📊 AI daily briefings and learning analytics - 🤖 all of this through a single natural language interface Recall X247 uses a with an Orchestrator coordinating 6 specialized sub-agents via OpenAI function calling with real-time SSE streaming: - — Auto-fetch transcripts, AI summarization, thumbnail preview & embed - — Scrape and summarize any URL - — Upload and extract content - — Plain text with AI tagging - — Tag → Domain → Full text - — Context-aware responses - visualization - — Chronological memory view - Priority levels & due dates - with linked memories -...
README
✨ What is Recall X247?
Recall X247 is a production-ready multi-agent AI system built for the Gen AI Academy APAC 2026 Hackathon. It acts as your intelligent Second Brain — a unified platform that:
- 📥 Captures knowledge from YouTube videos, web articles, PDFs, and plain notes
- 🔍 Recalls information using natural language semantic search with AI-powered answers
- ✅ Manages tasks and projects linked directly to your captured knowledge
- 📅 Schedules study sessions and events on your calendar
- 🃏 Generates flashcards for active recall and spaced repetition
- 📊 Delivers AI daily briefings and learning analytics
- 🤖 Orchestrates all of this through a single natural language interface
🚀 Live Demo
🏗️ Multi-Agent Architecture
Recall X247 uses a hierarchical multi-agent system with an Orchestrator coordinating 6 specialized sub-agents via OpenAI function calling with real-time SSE streaming:
User Natural Language Request
│
▼
┌─────────────────────────────────────┐
│ 🧠 Orchestrator (KnowledgeCoordinator) │
│ GPT-4o-mini via OpenRouter │
│ app/coordinator.py │
└──────────────┬──────────────────────┘
│ OpenAI Function Calling
│ (10 MCP-style tools)
┌──────────┼──────────────────┐
│ │ │
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌──────────┐
│Capture │ │Recall │ │ Task │
│ Agent │ │ Agent │ │ Agent │
│📥 │ │🔍 │ │ ✅ │
└────────┘ └────────┘ └──────────┘
│ │ │
▼ ▼ ▼
┌──────────┐ ┌────────────┐ ┌──────────────┐
│Calendar │ │ Briefing │ │ Analytics │
│ Agent │ │ Agent │ │ Agent │
│ 📅 │ │ 📊 │ │ 📈 │
└──────────┘ └────────────┘ └──────────────┘
│
▼ SSE Streaming (real-time events)
┌─────────────────────────────────┐
│ Frontend Agent Hub (/agent) │
│ React + TypeScript + Vite │
└─────────────────────────────────┘
Agent Registry
| Agent | Role | Key Tools |
|---|---|---|
| 🧠 Orchestrator | Routes requests, coordinates agents | All 10 tools |
| 📥 CaptureAgent | Ingest YouTube, web, PDFs, notes | capture_knowledge |
| 🔍 RecallAgent | Semantic 3-tier search + AI answers | recall_knowledge, list_memories |
| ✅ TaskAgent | Task CRUD with priority & due dates | create_task, list_tasks |
| 📅 CalendarAgent | Schedule events & study sessions | schedule_event, list_schedule |
| 📊 BriefingAgent | AI daily briefings, study plans | get_daily_briefing, generate_study_plan |
| 📈 AnalyticsAgent | Learning stats, streaks, velocity | get_knowledge_stats |
🎨 Features
🛠️ Tech Stack
📂 Project Structure
Gen_AI_APAC/
├── 📄 main.py # FastAPI entry point
├── 📄 index.html # HTML shell
├── 📄 Dockerfile # Container config (Cloud Run)
├── 📄 vite.config.ts # Vite + proxy config
├── 📄 requirements.txt # Python dependencies
├── 📄 package.json # Node dependencies
│
├── app/ # Python backend
│ ├── config.py # Env vars & OpenRouter config
│ ├── db.py # Firestore + in-memory fallback
│ ├── coordinator.py # Orchestrator (10 tools, SSE streaming)
│ ├── workflow_engine.py # Workflow tracking + AGENT_REGISTRY
│ ├── capture_agent.py # YouTube / web / PDF / note ingestion
│ ├── recall_agent.py # 3-tier semantic search
│ ├── task_agent.py # Task CRUD
│ └── calendar_agent.py # Google Calendar integration
│
├── src/ # React frontend
│ ├── App.tsx # All 13 views + SSE streaming
│ └── index.css # Dark neural theme + animations
│
└── .github/workflows/
├── deploy.yml # Cloud Run CI/CD
└── gh-pages.yml # GitHub Pages CI/CD
⚙️ Quick Start
Prerequisites
- Python 3.11+
- Node.js 20+
- An OpenRouter API key (
GEN_APAC_API_KEY)
1. Clone & Install
git clone https://github.com/prshant28/Gen_AI_APAC.git
cd Gen_AI_APAC
# Install Python dependencies
pip install -r requirements.txt
# Install Node dependencies
npm install
2. Configure Environment
cp .env.example .env
Edit .env with your keys:
# Required
GEN_APAC_API_KEY=your_openrouter_api_key
# Optional — for full Firestore persistence
GCP_PROJECT_ID=your_gcp_project_id
GOOGLE_APPLICATION_CREDENTIALS=path/to/service_account.json
# Optional — for Google Custom Search
GOOGLE_CSE_CX=your_cse_id
GOOGLE_API_KEY=your_google_api_key
💡 No Firestore? The app uses an in-memory mock database automatically — just set
GEN_APAC_API_KEYand you’re ready to go!
3. Run Locally
npm run dev
This starts both the FastAPI backend (port 8000) and Vite frontend (port 5000) concurrently. Open http://localhost:5000.
4. Docker (Optional)
docker build -t recall-x247 .
docker run -p 8000:8000 --env-file .env recall-x247
📡 API Reference
Core Endpoints
| Method | Endpoint | Description |
|---|---|---|
POST |
/chat |
Coordinator chat (sync) |
POST |
/agent/chat/stream |
SSE streaming multi-agent chat |
GET |
/agents |
Agent registry |
GET |
/workflows |
Recent workflow history |
GET |
/workflows/{id} |
Single workflow with step trace |
POST |
/capture |
Capture knowledge (YouTube/web/PDF/note) |
POST |
/capture/upload |
Upload PDF file |
GET/POST/DELETE |
/memories |
Knowledge vault CRUD |
POST |
/recall |
Semantic search |
GET/POST |
/tasks |
Task management |
GET/POST |
/schedule |
Calendar events |
GET |
/briefing |
AI daily briefing |
GET |
/stats |
System statistics |
GET |
/health |
Health check |
Chat API Example
curl -X POST https://recall-x247-asia-southeast1.run.app/chat \
-H "Content-Type: application/json" \
-d '{
"message": "Capture this YouTube video https://youtu.be/dQw4w9WgXcQ and create a task to review it",
"user_id": "demo_user"
}'
SSE Streaming Events
The /agent/chat/stream endpoint emits real-time events:
| Event | Description |
|---|---|
workflow_start |
New workflow initiated |
thinking |
Orchestrator reasoning |
agent_start |
Sub-agent activated |
agent_complete |
Sub-agent finished |
workflow_complete |
All steps done |
error |
Error occurred |
done |
Stream closed |
🖥️ Application Views (13 Total)
| View | Route | Description |
|---|---|---|
| 📊 Dashboard | / |
Stats, charts, recent memories, daily briefing |
| 🤖 Agent Hub | /agent |
Real-time multi-agent chat with SSE, agent registry, workflow history |
| 📥 Capture | /capture |
URL/text/PDF capture with YouTube embed preview |
| 🗄️ Vault | /vault |
Knowledge grid with thumbnails and detail modals |
| 🔍 Neural Recall | /recall |
Semantic search with AI answers |
| ✅ Tasks | /tasks |
Task management with priority/due dates |
| 🃏 Flashcards | /flashcards |
AI-generated study cards |
| 📅 Calendar | /calendar |
Event scheduling |
| ⏱️ Timeline | /timeline |
Chronological memory view |
| 🕸️ Mind Graph | /graph |
Knowledge graph visualization |
| 📈 Analytics | /analytics |
Learning velocity, domain radar, streak tracking |
| 🗂️ Workspace | /workspace |
Kanban project board with linked memories |
| ⚙️ Settings | /settings |
API configuration and testing |
🚢 Deployment
Automated CI/CD
Every push to main triggers two parallel deployments:
Push to main
├── 🐳 Cloud Run (deploy.yml)
│ ├── Build Docker image
│ ├── Deploy to asia-southeast1
│ └── Health check /health & /api/health
│
└── 📄 GitHub Pages (gh-pages.yml)
├── npm run build
└── Deploy to GitHub Pages
Manual Cloud Run Deployment
gcloud run deploy recall-x247 \
--source . \
--region asia-southeast1 \
--allow-unauthenticated \
--memory 1Gi \
--cpu 1 \
--set-secrets "GEN_APAC_API_KEY=GEN_APAC_API_KEY:latest"
Required GitHub Secrets
| Secret | Description |
|---|---|
GEN_APAC_API_KEY |
OpenRouter API key |
GCP_PROJECT_ID |
Google Cloud Project ID |
GCP_SA_KEY |
Google Cloud Service Account JSON |
GEMINI_API_KEY |
(Optional) Google Gemini API key |
🛡️ Security
- Data Isolation: Firestore security rules ensure users can only access their own data (see
firestore.rules) - Secret Management: API keys stored as Google Cloud Secrets, never in source code
- Authentication: Cloud Run requires valid credentials for write operations
- CORS: FastAPI CORS middleware configured for production domains
🤝 Contributing
- Fork the repository
- Create your feature branch:
git checkout -b feat/amazing-feature - Commit your changes:
git commit -m 'feat: add amazing feature' - Push to the branch:
git push origin feat/amazing-feature - Open a Pull Request
Live Demo
Example Prompts:
- Prompt 1: What are the benefits of AI?
- Prompt 2: How can AI change the world?
Watch our live demo: YouTube Video
📜 License
This project is licensed under the MIT License.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add prshant28/x247_gen_ai