How dokaeby/dait works
DAIT is an AI-news curation service: approved RSS collection feeds a processing pipeline that extracts, translates, summarizes, and ranks articles for API delivery. The sampled legacy-style src/backend/app implementation provides the clearest end-to-end evidence; the README also describes a frontend, while the supplied excerpts do not establish its runtime connections. Other src/backend/src/dait modules are present in the tree but are not expanded into speculative flows.
Main entry points: news_service.py News query service · collector_worker.py Collection worker · main.py FastAPI app · rss_collector.py RSS collector
Components 19
Collection pipeline
- Official RSS sources
src/backend/app/core/taxonomy.py - RSS collector
src/backend/app/collectors/rss_collector.py - Article extractor
src/backend/app/collectors/content_extractor.py - Collection worker
src/backend/app/workers/collector_worker.py - Article contracts
src/backend/app/schemas/collector.py
AI processing
- AI content processor
src/backend/app/workers/ai_processor.py - Content contracts
src/backend/app/schemas/content.py - Title translation
src/backend/app/core/title_translation.py
News delivery
- FastAPI app
src/backend/app/api/main.py - News API routes
src/backend/app/api/v1/news.py - News query service
src/backend/app/services/news_service.py - News ranking
src/backend/app/services/ranking_service.py - News API contracts
src/backend/app/schemas/news.py
Persistence and cache
- News repository
src/backend/app/repositories/news_repository.py - SQL database
- Redis cache
Other components
- News reader
- Publisher feeds
- LLM provider
Connections 20
- News reader → FastAPI app: requests news
src/backend/app/api/main.py - FastAPI app → News API routes: mounts routes
src/backend/app/api/main.py - News API routes → News query service: queries news
src/backend/app/api/v1/news.py - News query service → News repository: reads articles
src/backend/app/services/news_service.py - News query service → News ranking: ranks results
src/backend/app/services/news_service.py - News query service → Redis cache: caches lists
src/backend/app/services/news_service.py - News API routes → News API contracts: validates responses
src/backend/app/api/v1/news.py - RSS collector → Official RSS sources: uses taxonomy
src/backend/app/collectors/rss_collector.py - RSS collector → Article extractor: extracts content
src/backend/app/collectors/rss_collector.py - Publisher feeds → RSS collector: provides feeds
- Collection worker → RSS collector: collects articles
- Collection worker → AI content processor: processes articles
src/backend/app/workers/collector_worker.py - Collection worker → News repository: claims and saves
src/backend/app/workers/collector_worker.py - Collection worker → Article contracts: uses contracts
src/backend/app/workers/collector_worker.py - AI content processor → Content contracts: returns content
src/backend/app/workers/ai_processor.py - AI content processor → LLM provider: generates content
- FastAPI app → Collection worker: runs collection
src/backend/app/api/main.py - FastAPI app → News repository: initializes storage
src/backend/app/api/main.py - News repository → SQL database: persists records
src/backend/app/repositories/news_repository.py - News query service → Title translation: translates titles
src/backend/app/services/news_service.py