How moseskakuno/ai-news-assistant works
AI News Assistant is a Streamlit application for discovering international news, summarizing articles and daily digests in supported languages, saving results, and downloading digests as PDFs. The principal workflow runs from country and language selection through RSS discovery, article processing, and persistence; users can then summarize an article or generate a digest, retrieve saved material, and export a PDF. The sampled code shows discovery helpers and AI integration, while some app orchestration is excerpted only in part; README-supported capabilities are retained where implementation details are not shown.
Main entry points: app.py Streamlit app · news_discovery.py News discovery · ai_summarizer.py AI summaries · news_database.py SQLite store
Components 14
Application
- Streamlit app
app.py
News discovery
- Country settings
country_service.py - RSS sources
source_manager.py - News discovery
news_discovery.py - Article deduplication
deduplicator.py - Article processing
article_processor.py - Article extraction
content_extractor.py
Summarization
- Language rules
language_service.py - AI summaries
ai_summarizer.py
Persistence and export
- SQLite store
news_database.py - PDF generation
pdf_generator.py
Other components
- News reader
- RSS and publishers
- OpenAI API
Connections 16
- News reader → Streamlit app: uses
README.md - Streamlit app → Country settings: selects country
README.md - Streamlit app → News discovery: fetches news
README.md - News discovery → RSS sources: loads feeds
news_discovery.py - News discovery → Country settings: gets locale
news_discovery.py - News discovery → RSS and publishers: requests RSS
news_discovery.py - News discovery → Article deduplication: deduplicates
news_discovery.py - Streamlit app → Article processing: processes articles
app.py - Streamlit app → SQLite store: saves and loads
app.py - Streamlit app → Article extraction: extracts article text
README.md - Streamlit app → AI summaries: generates summaries
README.md - AI summaries → Language rules: gets instructions
ai_summarizer.py - AI summaries → OpenAI API: requests generation
ai_summarizer.py - Streamlit app → PDF generation: generates downloads
app.py - Streamlit app → SQLite store: saves digests
README.md - Streamlit app → SQLite store: loads saved digests
README.md