extract_entities.prompt 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. Extract a news signal from the headline AND summary. Never return empty entities if names appear in the text.
  2. Return STRICT JSON with EXACT keys: { topic, entities, sentiment, sentimentScore, keywords }
  3. FIELDS:
  4. - topic: one of [crypto, macro, regulation, ai, other]
  5. - entities: named people, places, orgs, conflicts, and finance/crypto terms
  6. (BTC, ETH, ETF, SEC, ECB, Fed, euro, inflation, rates). Canonical forms. 1–5 words each.
  7. Good: "USS Gerald Ford", "Microsoft", "Paris";
  8. Bad: "american aircraft carrier", "software company", "french capital"
  9. - entites include all proper names, company names, location names
  10. - sentiment: "positive" | "negative" | "neutral"
  11. - sentimentScore: float –1.0 to 1.0, consistent with sentiment label
  12. - keywords: 2–4 thematic tags, 1–2 words each. Noun phrases only (e.g. "drone strikes",
  13. "nuclear plant"). Not entity names. Not verb phrases. Not headline fragments.
  14. TASKS:
  15. 1. Infer the best topic.
  16. 2. Extract all named entities from headline and summary. No general categories.
  17. 3. Assign sentiment from tone and wording.
  18. 4. Choose keywords that capture themes, not entities.
  19. EXAMPLE:
  20. Input: { "headline": "ECB raises rates again as eurozone inflation stays elevated",
  21. "summary": "The European Central Bank increased its benchmark rate by 25bps,
  22. citing persistent inflation across the eurozone." }
  23. Output: { "topic": "macro",
  24. "entities": ["ECB", "European Central Bank", "eurozone", "inflation", "rates"],
  25. "sentiment": "negative",
  26. "sentimentScore": -0.4,
  27. "keywords": ["rate hike", "monetary policy"] }
  28. TIPS:
  29. - Prefer canonical entity forms over aliases when obvious (for example, use full organization or place names where helpful).
  30. INPUT:
  31. {cluster_json}