Major architectural transformation from synchronous to asynchronous processing: ## Pipeline Services (8 microservices) - pipeline-scheduler: APScheduler for 30-minute periodic job triggers - pipeline-rss-collector: RSS feed collection with deduplication (7-day TTL) - pipeline-google-search: Content enrichment via Google Search API - pipeline-ai-summarizer: AI summarization using Claude API (claude-sonnet-4-20250514) - pipeline-translator: Translation using DeepL Pro API - pipeline-image-generator: Image generation with Replicate API (Stable Diffusion) - pipeline-article-assembly: Final article assembly and MongoDB storage - pipeline-monitor: Real-time monitoring dashboard (port 8100) ## Key Features - Redis-based job queue with deduplication - Asynchronous processing with Python asyncio - Shared models and queue manager for inter-service communication - Docker containerization for all services - Container names standardized with site11_ prefix ## Removed Services - Moved to backup: google-search, rss-feed, news-aggregator, ai-writer ## Configuration - DeepL Pro API: 3abbc796-2515-44a8-972d-22dcf27ab54a - Claude Model: claude-sonnet-4-20250514 - Redis Queue TTL: 7 days for deduplication 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
21 lines
490 B
Plaintext
21 lines
490 B
Plaintext
# Google Custom Search API Configuration
|
|
# Get your API key from: https://console.cloud.google.com/apis/credentials
|
|
GOOGLE_API_KEY=
|
|
|
|
# Get your Search Engine ID from: https://programmablesearchengine.google.com/
|
|
GOOGLE_SEARCH_ENGINE_ID=
|
|
|
|
# Alternative: SerpAPI Configuration
|
|
# Get your API key from: https://serpapi.com/
|
|
SERPAPI_KEY=
|
|
|
|
# Redis Configuration
|
|
REDIS_HOST=redis
|
|
REDIS_PORT=6379
|
|
REDIS_DB=2
|
|
|
|
# Search Settings
|
|
DEFAULT_LANGUAGE=ko
|
|
DEFAULT_COUNTRY=kr
|
|
CACHE_TTL=3600
|
|
MAX_RESULTS=10 |