fix: 优化虫 机制,新增伊朗支援
This commit is contained in:
@@ -51,6 +51,7 @@ def _call_ollama_extract(text: str, timeout: int = 15) -> Optional[Dict[str, Any
|
||||
- retaliation_sentiment: 0-100,仅当报道涉及伊朗报复/反击情绪时
|
||||
- wall_street_value: 0-100,仅当报道涉及美股/市场时
|
||||
- key_location_updates: **双方攻击地点**。每项 {{ "name_keywords": "阿萨德|asad|al-asad", "side": "us或iran(被打击方)", "status": "attacked", "damage_level": 1-3 }}。美军基地例:阿萨德|asad、乌代德|udeid、埃尔比勒|erbil、因吉尔利克|incirlik。伊朗例:德黑兰|tehran、布什尔|bushehr、伊斯法罕|isfahan、阿巴斯|abbas、纳坦兹|natanz
|
||||
- map_strike_lines(仅当报道为**美/以盟军打击伊朗目标**时): 数组,每项 {{ "source_id": "israel或lincoln或ford", "target_lng": 经度, "target_lat": 纬度, "target_name": "目标名", "struck_at": "ISO时间" }}。目标坐标例:纳坦兹51.92,33.67;伊斯法罕51.67,32.65;德黑兰51.39,35.69;布什尔50.83,28.97;阿巴斯港56.27,27.18
|
||||
- **导弹消耗增量**(仅当报道明确提到「发射/消耗 了 X 枚导弹」时填,用于看板导弹消耗累计): us_missile_consumed_delta, iran_missile_consumed_delta(本则报道中该方新增消耗枚数,整数)
|
||||
|
||||
原文:
|
||||
@@ -133,6 +134,31 @@ def extract_from_news(text: str, timestamp: Optional[str] = None) -> Dict[str, A
|
||||
})
|
||||
if valid:
|
||||
out["key_location_updates"] = valid
|
||||
# map_strike_lines:盟军打击伊朗目标
|
||||
if "map_strike_lines" in parsed and isinstance(parsed["map_strike_lines"], list):
|
||||
valid_lines = []
|
||||
for line in parsed["map_strike_lines"]:
|
||||
if not isinstance(line, dict):
|
||||
continue
|
||||
sid = str(line.get("source_id") or "").strip().lower()
|
||||
if sid not in ("israel", "lincoln", "ford"):
|
||||
continue
|
||||
try:
|
||||
lng = float(line.get("target_lng", 0))
|
||||
lat = float(line.get("target_lat", 0))
|
||||
except (TypeError, ValueError):
|
||||
continue
|
||||
name = str(line.get("target_name") or "")[:200]
|
||||
struck_at = str(line.get("struck_at") or ts)[:25]
|
||||
valid_lines.append({
|
||||
"source_id": sid,
|
||||
"target_lng": lng,
|
||||
"target_lat": lat,
|
||||
"target_name": name or None,
|
||||
"struck_at": struck_at,
|
||||
})
|
||||
if valid_lines:
|
||||
out["map_strike_lines"] = valid_lines
|
||||
# force_summary 增量:导弹消耗(看板「导弹消耗」由 force_summary.missile_consumed 提供)
|
||||
fs_delta = {}
|
||||
for side_key, side_val in [("us_missile_consumed_delta", "us"), ("iran_missile_consumed_delta", "iran")]:
|
||||
|
||||
Reference in New Issue
Block a user