How kcjiang/friendly-ai-explorer works
Friendly AI Explorer is a support-team workspace spanning ticket management, a searchable knowledge base, AI assistance, email-to-ticket review, dashboards, and device-debug tools. The principal user flow enters through the Next.js application and FastAPI API; users can manage tickets or documents, while published knowledge is embedded for retrieval-augmented answers. Email sync imports messages for analysis and lets users approve generated pre-tickets into real tickets. The graph preserves README capabilities, but several frontend-to-endpoint and unsampled service links are intentionally omitted where sampled source does not establish the exact wiring.
Main entry points: main.py FastAPI entry · database.py PostgreSQL / pgvector · rag_engine.py RAG retrieval · (app) Workspace pages
Components 24
Web application
- Workspace pages
frontend/src/app/(app) - Web sign-in
frontend/auth.ts - API client
frontend/src/lib/api.ts - Device debug
frontend/src/lib/adb-webusb.ts
API and workflows
- FastAPI entry
backend/app/main.py - Auth routes
backend/app/routers/auth.py - Ticket routes
backend/app/routers/tickets.py - Knowledge routes
backend/app/routers/knowledge.py - AI routes
backend/app/routers/ai.py - Email routes
backend/app/routers/email_router.py - Debug routes
backend/app/routers/preset_router.py - Auth service
backend/app/services/auth_service.py - Email workflow
backend/app/services/email_service.py - Ticket service
backend/app/services/ticket_service.py
AI and knowledge
- Knowledge service
backend/app/services/knowledge_service.py - AI service
backend/app/services/ai_service.py - RAG retrieval
backend/app/ai/rag_engine.py - Text embeddings
backend/app/ai/embeddings.py - Email analyzer
backend/app/ai/tasks/email_analyzer.py - Gemini models
backend/app/ai/gemini_client.py
State and integrations
- PostgreSQL / pgvector
backend/app/database.py - IMAP mailbox
- WebUSB device
Other components
- Support user
Connections 28
- Support user → Workspace pages: uses
- Workspace pages → API client: requests data
- Workspace pages → Web sign-in: signs in
- Support user → Device debug: debugs device
- Device debug → WebUSB device: connects
- Web sign-in → Auth routes: posts credentials
- API client → FastAPI entry: calls API
- FastAPI entry → Auth routes: dispatches
- FastAPI entry → Ticket routes: dispatches
- FastAPI entry → Knowledge routes: dispatches
- FastAPI entry → AI routes: dispatches
- FastAPI entry → Email routes: dispatches
- FastAPI entry → Debug routes: dispatches
- Auth routes → Auth service: calls
- Email routes → Email workflow: calls
- Ticket routes → Ticket service: calls
- Knowledge routes → Knowledge service: calls
- AI routes → AI service: calls
- Email workflow → IMAP mailbox: fetches mail
- Knowledge service → Text embeddings: creates vectors
- RAG retrieval → Text embeddings: embeds query
- RAG retrieval → PostgreSQL / pgvector: searches vectors
- Knowledge service → PostgreSQL / pgvector: stores documents
- Auth service → PostgreSQL / pgvector: reads users
- Email workflow → PostgreSQL / pgvector: stores mail and tickets
- Ticket service → PostgreSQL / pgvector: manages tickets
- Email analyzer → Gemini models: uses model
- RAG retrieval → Gemini models: generates answers