Agent News Alert is a Python-based project that ingests RSS feeds, evaluates them using an LLM agent to prioritize news, and sends an email summary to the user. The project is managed with Poetry for dependency management and supports both development and production environments.
-
Ingestion:
- Reads RSS feeds from
conf/sources.json.
- Reads RSS feeds from
-
Evaluation:
- Uses an LLM agent to evaluate and prioritize articles based on the configuration in
conf/agents.yml.
- Uses an LLM agent to evaluate and prioritize articles based on the configuration in
-
Email Notification:
- Sends a daily email at 9:00 AM (New York time) with the top-priority articles to the user, as defined in
conf/secrets.py.
- Sends a daily email at 9:00 AM (New York time) with the top-priority articles to the user, as defined in
- Python 3.12 or higher
- Poetry for dependency management
- Docker (for production)
- Set up
conf/secrets.pywith fields listed inconf/secrets.template.py
-
Install Poetry:
pip install poetry
-
Install Dependencies: Run the following command to install project dependencies. Poetry will automatically create a virtual environment in a temporary folder:
poetry install
-
Run the Application: To run the application in development mode:
poetry run python main.py
-
Build and Run with Docker: To run the application in production mode, use Docker Compose:
docker compose up -d
-
Details:
- This will create a Docker container named
news_alert. - The application will automatically send an email every day at 9:00 AM (New York time).
- This will create a Docker container named
- RSS feeds are defined in
conf/sources.json. - Add or update sources in this file to customize the feeds ingested by the application.
- The agent configuration is defined in
conf/agents.yml. - This file determines the model and prompt used by the LLM agent.
- User-specific secrets (e.g., email credentials) are defined in
conf/secrets.py. - This file is ignored by Git for security purposes. Use the template file
conf/secrets.template.pyto create your ownsecrets.py.