A self-hosted Philippine news intelligence system: 24 topic feeds, entity and knowledge-graph extraction, and decision briefs every 4 hours on my own GPUs, with no cloud APIs. Every summary and brief below came from a 2-4B model running on consumer hardware in my apartment.



24 topic feeds become daily digests and nine decision briefs
The feeds produce a deduped daily digest per topic and nine cross-topic briefs, each built around a real decision.
- Topics: geopolitics, economy, tech, the Philippines, disinformation and entertainment.
- Sources are tiered: Reuters and AP Tier 1, Rappler and Ars Technica Tier 2, YouTube Tier 3.
- Each brief stores its literal question in the config, such as what a Middle East conflict does to Philippine energy costs.
- Named-entity and triple extraction feed the entity trends and the graph view, for every topic including disinformation.
On 2026-07-12, both briefs pointed to buying now
Two briefs from the same unattended morning run, neither a headline I went looking for.
- Hardware timing flagged SK Hynix's $26.5B Nasdaq IPO and a "biggest memory shortage in tech history" warning, against a 15% drop in Philippine market sentiment.
- Its call: buy critical components now, wait on non-essential upgrades until the peso stabilizes.
- Energy outlook caught Meralco's July rate hike from the Malampaya shutdown, the Visayas grid on red alert, and the Philippines as the world's fastest-growing rooftop solar market.
- Its call: install solar now as the strongest hedge.
How it's built
Seven steps run on a 4-hour Windows Task Scheduler job:
- Pull articles: RSS, full text, YouTube transcripts
- Extract entities with spaCy plus a custom domain ruler
- Embed into ChromaDB
- Generate summaries and briefs with a local model
- Extract knowledge-graph triples
- Sync entity images
- Pre-warm the dashboard cache, so browsing never touches the network
- All inference runs through llama-server.exe against GGUF models.
- A watcher reads the logs every 10 minutes. On a real crash, Claude fixes the script.
- A fix is kept only if it runs clean, at most five a day.
A 4B model beat a 14B on quality as well as speed
I did not expect the smaller model to win on quality.
- 20 samples per model per task on a GTX 1660 Super and an RTX 5070 Ti, scored 0-100 with latency and watt-hours per call.
- On the GTX 1660 Super, a 4B won summaries at 90.7 quality, 15 seconds and 107 watts.
- On the RTX 5070 Ti, a different 4B won the harder insight-writing task at 89.2, ahead of every 14B. One 14B reasoning model was eliminated outright.
- The production config cites these numbers where each model is chosen.
