feat(Sentiment): update sentiment service

This commit is contained in:
2026-08-09 21:01:42 +02:00
parent aff831cf58
commit 05d55a324c
15 changed files with 1772 additions and 0 deletions
+34
View File
@@ -0,0 +1,34 @@
# Finlytic Sentiment Service
Finlytic Sentiment is a C# microservice dedicated to real-time AI sentiment analysis of financial news. It consumes pending news articles, runs FinBERT neural model evaluations, and aggregates sentiment scores at the asset (ISIN) and sector level.
---
## Core Features & Architecture
1. **FinBERT AI Integration**:
- Evaluates positive, negative, and neutral sentiment probabilities (`positiveProbability`, `negativeProbability`, `neutralProbability`, `compoundScore`).
2. **ISIN & Sector Sentiment Aggregation**:
- Aggregates sentiment scores per financial asset (`IsinSentimentSummaryDto`) and sector (`SectorSentimentSummaryDto`).
3. **Background Worker Engine**:
- Runs a 5-minute background loop (`SentimentBackgroundService`) polling pending articles, processing FinBERT evaluations, and publishing results over MQTT.
4. **MQTT Event Channels**:
- Publishes updates to `finlytic/sentiment/result` and responds to RPC requests on `services/request/sentiment_GetArticle/#` and `services/request/sentiment_GetIsin/#`.
---
## Feature Status
### Implemented Features
- [x] FinBERT AI Sentiment Evaluation Service (`IFinBertAnalyzerService`).
- [x] Sentiment Storage & In-Memory Aggregation (`ISentimentStorageService`).
- [x] 5-minute Background Worker loop (`SentimentBackgroundService`).
- [x] Zero-Allocation MQTT serialization via `FinlyticJsonSerializerContext`.
- [x] Pure Worker Service architecture (`Host.CreateApplicationBuilder`, no Kestrel HTTP server).
### Planned Features
- [ ] Historical sentiment trend charting (multi-month sentiment drift per asset).
- [ ] Financial entity sentiment impact correlation model.