https://github.com/rb81/feed-summarizer
A simple Python application that creates summaries of RSS feeds for easy reading.
https://github.com/rb81/feed-summarizer
data-management github large-language-models rss-aggregator rss-reader
Last synced: 2 months ago
JSON representation
A simple Python application that creates summaries of RSS feeds for easy reading.
- Host: GitHub
- URL: https://github.com/rb81/feed-summarizer
- Owner: rb81
- License: mit
- Created: 2024-07-16T22:20:11.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-16T20:39:16.000Z (over 1 year ago)
- Last Synced: 2025-01-20T17:32:28.778Z (over 1 year ago)
- Topics: data-management, github, large-language-models, rss-aggregator, rss-reader
- Language: Python
- Homepage:
- Size: 641 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

**⚠️ DEPRECATED REPOSITORY**
This project is no longer actively maintained and may be out of date.
---
# Feed Summarizer

Feed Summarizer is a Python application that aggregates articles from multiple RSS feeds, summarizes them using the Anthropic Claude API, and stores the results in a GitHub repository.
## Features
- Fetches articles from multiple RSS feeds
- Summarizes articles using Anthropic's Claude AI
- Caches feed data to reduce API calls
- Stores summaries in a GitHub repository
- Configurable via environment variables
- Generates daily summaries of all processed feeds
## Prerequisites
- Python 3.7+
- GitHub account and personal access token
- Anthropic API key
## Installation
1. Clone the repository:
```
git clone https://github.com/rb81/feed-summarizer.git
cd feed-summarizer
```
2. Install required packages:
```
pip install -r requirements.txt
```
3. Set up environment variables:
Create a `.env` file in the project root with the following content:
```
GITHUB_TOKEN=your_github_token
GITHUB_REPO=your_username/your_repo_name
ANTHROPIC_API_KEY=your_anthropic_api_key
ARTICLES_PER_FEED=20
ARTICLES_PER_BATCH=10
CACHE_EXPIRY=3600
```
## Usage
1. Add your RSS feed URLs to a `feeds.txt` file in your GitHub repository, one URL per line.
2. Run the main script:
```
python main.py
```
The script will fetch articles from the specified feeds, summarize them using Claude, and commit the summaries to your GitHub repository. It will also generate a daily summary of all processed feeds.
## Configuration
You can adjust the following settings in your `.env` file:
- `ARTICLES_PER_FEED`: Number of articles to fetch per feed (default: 20)
- `ARTICLES_PER_BATCH`: Number of articles to summarize in each batch (default: 10)
- `CACHE_EXPIRY`: Cache expiry time in seconds (default: 3600)
## Project Structure
- `main.py`: The main script that orchestrates the entire process
- `claude_utils.py`: Handles interaction with the Anthropic API for summarization
- `config_utils.py`: Manages configuration and environment variables
- `feed_utils.py`: Fetches and processes RSS feeds
- `github_utils.py`: Handles GitHub repository operations
- `logging_utils.py`: Sets up logging for the application
## Considerations
- This application skips feeds that do not include content. You can add functionality to scrape or pull content from the relevant websites in such cases.
- Be aware of the fact that this application may consume a substantial number of tokens if summarizing larger collections of feeds.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Transparency Disclaimer
[ai.collaboratedwith.me](https://ai.collaboratedwith.me) in creating this project.