feat: consume independent news engine
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# MeMind News Engine MVP
|
||||
|
||||
## Boundary
|
||||
|
||||
- `memind-news-engine` owns collection, event clustering, ranking, and briefing candidates.
|
||||
- `Memind` consumes ranked candidates and owns page generation and delivery.
|
||||
- `memind_adm` owns source configuration, ranking policy editing, review, run monitoring, and publish controls.
|
||||
- The legacy `ops/` UI is not extended.
|
||||
|
||||
## Current pipeline
|
||||
|
||||
```text
|
||||
Memind SearXNG query groups
|
||||
-> memind-news-engine HTTP API
|
||||
-> event clustering by canonical URL and title similarity
|
||||
-> deterministic rule score
|
||||
-> optional structured LLM assessment
|
||||
-> global score plus optional user-interest score
|
||||
-> breaking-news override
|
||||
-> category quotas and source diversity
|
||||
-> ranked candidates in the existing briefing prompt
|
||||
-> existing page generation, dedupe, image, and WeChat delivery guards
|
||||
```
|
||||
|
||||
The first slice is deliberately deterministic. The model may provide the six semantic dimensions, but application code calculates the weighted score and owns final selection.
|
||||
|
||||
## Score contract
|
||||
|
||||
LLM assessment values are 0-10:
|
||||
|
||||
```json
|
||||
{
|
||||
"importance": 8,
|
||||
"novelty": 9,
|
||||
"impact": 8,
|
||||
"credibility": 9,
|
||||
"relevance": 8,
|
||||
"actionability": 7,
|
||||
"category": "ai_tech",
|
||||
"reason": "A flagship model release changes capability and API economics."
|
||||
}
|
||||
```
|
||||
|
||||
Semantic score weights are 25% importance, 20% impact, 15% novelty, 15% credibility, 15% relevance, and 10% actionability. When the LLM assessment is present, global score is 35% rule score plus 65% semantic score. When a user-interest score is present, final score is 70% global plus 30% personal.
|
||||
|
||||
Breaking override is active when importance is at least 9, there are at least two distinct sources, and credibility is at least 8.
|
||||
|
||||
## Runtime controls
|
||||
|
||||
- `MEMIND_NEWS_ENGINE_DAILY_LIMIT`: selected event count, default `15`.
|
||||
- `MEMIND_NEWS_ENGINE_MINIMUM_SCORE`: minimum final score, default `0` during the observation phase.
|
||||
- `MEMIND_NEWS_ENGINE_URL`: independent service base URL; ranking is skipped when unset.
|
||||
- `MEMIND_NEWS_ENGINE_API_TOKEN`: service-to-service bearer token.
|
||||
- `MEMIND_NEWS_ENGINE_TIMEOUT_MS`: request timeout, default `5000`.
|
||||
|
||||
## Next slice
|
||||
|
||||
The engine repository now owns persistence migrations and the ranking API. Next work is the bounded LLM scoring worker, collection scheduler, and `memind_adm` management UI.
|
||||
Reference in New Issue
Block a user