Auger/README.md

71 lines
No EOL
2.3 KiB
Markdown

# 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 OpenRouter-hosted embeddings and LLM analysis to cluster related articles about the same business events and generate probabilistic market signals.
## 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 OpenRouter-hosted `openai/text-embedding-3-small`
- 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 OpenRouter 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
- **OpenRouter API** - Embeddings and LLM inference
- **Provider** - State managment
- **go_router** - Navigation
## Setup
1. Clone the repository
2. Install dependencies:
```bash
flutter pub get
```
3. Add your OpenRouter API key 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