71 lines
No EOL
2.3 KiB
Markdown
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 |