# Augor > Using embeddings to find meaningful patterns in financial news ## What is this? Augor is a Flutter desktop application that aggregates financial news from multiple RSS sources and uses OpenAI embeddings to cluster related articles about the same business events. Instead of manually tracking dozens of news sources, Augor automatically groups stories so you can see what's actually happening in markets. ## Current Features **RSS Feed Aggregation** - Supports RSS and Atom feeds - Pre-configured with 20+ major business news sources (Reuters, Bloomberg, WSJ, etc) - Add custom feeds through the settings interface - Enable/disable feeds individually **AI-Powered Processing** - Generates embeddings using OpenAI's text-embedding-3-small model - Filters articles for business relevance using keyword similarity - Groups related articles about the same event using cosine similarity - Exports results as JSON for further analisis **Settings Management** - Configure OpenAI API key - Manage RSS feed sources - Set custom storage location for output files ## Technical Stack - **Flutter** - Cross-platform desktop app (macOS, Windows, Linux) - **shadcn_flutter** - UI component library - **OpenAI API** - Text embeddings for semantic similarity - **Provider** - State managment - **go_router** - Navigation ## Setup 1. Clone the repository 2. Install dependencies: ```bash flutter pub get ``` 3. Create a `.env` file with your OpenAI API key (or configure it in the app settings) 4. Run the app: ```bash flutter run ``` ## How it works 1. **Aggregate** - Fetches articles from all enabled RSS feeds 2. **Embed** - Generates vector embeddings for article titles and descriptions 3. **Filter** - Removes articles not relevant to business/finance using keyword matching 4. **Cluster** - Groups similar articles (cosine similarity >= 0.7) to identify events 5. **Export** - Saves results to JSON files in your configured storage location ## Output Files The app generates several JSON files in your storage directory: - `aggregated_feed.json` - All fetched articles - `enriched_aggregated_feed.json` - Articles with embeddings - `relevant_aggregated_feed.json` - Filtered relevant articles - `grouped_relevant_aggregated_feed.json` - Articles clustered by event - `readable_*.json` - Human-readable versions without embeddings ## Author Benjamin Watt Supervisor: Panagiotis Kanellopoulos University of Essex