# 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.