#!/usr/bin/env python3 import json import os import sys import urllib.request api_key = os.environ.get('OPENROUTER_API_KEY', '').strip() if not api_key: print('OPENROUTER_API_KEY missing', file=sys.stderr) raise SystemExit(1) payload = sys.stdin.read() request_data = json.loads(payload or '{}') search_results = request_data.get('search_results', []) date = request_data.get('date', '') prompt = { "role": "user", "content": ( "你是大模型情报候选发现器。根据给定搜索结果,只输出 JSON 数组,不要输出 markdown。" "每项字段必须包含 event_type, provider_name, model_name, provider_country, title, summary, candidate_urls。" "event_type 只能是 price_cut, price_increase, official_release, promo_campaign, leak_or_rumor, unknown。" "只有当搜索结果明确像是当天消息时才输出。没有 URL 的候选不要输出。" f"\n日期: {date}\n搜索结果:\n" + json.dumps(search_results, ensure_ascii=False) ) } req_body = json.dumps({ "model": "deepseek/deepseek-v4-flash", "messages": [prompt], "temperature": 0, "max_tokens": 1200, "response_format": {"type": "json_object"} }).encode('utf-8') req = urllib.request.Request( 'https://openrouter.ai/api/v1/chat/completions', data=req_body, headers={ 'Authorization': f'Bearer {api_key}', 'Content-Type': 'application/json', 'HTTP-Referer': 'https://github.com/phamnazage-jpg/llm-intelligence', 'X-Title': 'llm-intelligence intraday discovery' }, method='POST' ) with urllib.request.urlopen(req, timeout=60) as resp: data = json.loads(resp.read().decode('utf-8')) content = data['choices'][0]['message']['content'] parsed = json.loads(content) if isinstance(parsed, dict): if 'items' in parsed and isinstance(parsed['items'], list): parsed = parsed['items'] elif 'candidates' in parsed and isinstance(parsed['candidates'], list): parsed = parsed['candidates'] else: parsed = [] if not isinstance(parsed, list): parsed = [] print(json.dumps(parsed, ensure_ascii=False))