fabriziosalmi / UglyFeed

Retrieve, aggregate, filter, evaluate, rewrite and serve RSS feeds using Large Language Models for fun, research and learning purposes.
GNU Affero General Public License v3.0
94 stars 1 forks source link
journalism llm news newsfeed rewriter rss rss-aggregator rss-feed rss-reader

UglyFeed UglyFeed

UglyFeed is a simple application designed to retrieve, aggregate, filter, rewrite, evaluate and serve content (RSS feeds) written by a large language model. This repository provides the code, the documentation, a FAQ page and some optional scripts to evaluate the generated content.

GitHub last commit GitHub Issues or Pull Requests Pylint CodeQL Docker Pulls PyPI - Downloads

Features

Get it now

Quick start

Prerequisites

Supported API and models

You can use your own models by running a compatible OpenAI LLM server. You must change the OpenAI API url parameter.

Running the Container

To start the UglyFeed app, use the following docker run command:

docker run -p 8001:8001 -p 8501:8501 -v /path/to/local/feeds.txt:/app/input/feeds.txt -v /path/to/local/config.yaml:/app/config.yaml fabriziosalmi/uglyfeed:latest

Configure the application

In the Configuration page (or by manually editing the config.yaml file) you will find all configuration options. You must change at least the source feeds you want to aggregate, the LLM API and model to use to rewrite the aggregated feeds. You can then retrieve the final uglyfeed.xml feed in many ways:

You can easily extend it to send it to cms, notification or messaging systems.

Execute the application scripts

Execute all scripts in the Run scripts page easily by clicking on the button Run main.py, llm_processor.py, json2rss.py sequentially. You can check for logs, errors and informational messages.

Serve the final rewritten XML feed via HTTP

Once all scripts completed go to the View and Serve XML page where you can view and download the generated XML feed. If you start the HTTP server you can access to the XML url at http://container_ip:8001/uglyfeed.xml

Deploy the final rewritten XML feed to GitHub/GitLab

Once all scripts completed go to the Deploy page where you can push the final rewritten XML file to the configured GitHub/GitLab repository, the public XML URL to use by RSS readers is returned for each enabled platform.

Documentation

Please refer to the extended documentation to better understand how to get the best from this application.

Use cases

The project can be easily customized to fit several use cases:

Contribution

Feel free to open issues or submit pull requests. Any contributions are welcome!

Roadmap

I started this project some weeks ago to experiment, get fun, learn and contribute to the open source community on my free time. I am so grateful to those who already made me empowering this pathway in a so short timeframe 🙏

Here some improvements I am still working on:

Disclaimer

It is crucial to acknowledge the potential misuse of AI language models by this tool. The use of adversarial prompts and models can easily lead to the creation of misleading content. This application should not be used with the intent to deceive or mislead others. Be a responsible user and prioritize ethical practices when utilizing language models and AI technologies.

License

This project is licensed under the AGPL3 License.