新增方法 _get_label_distribution_from_es,从es里读取学习结果,动态调整正负样本比例+1
This commit is contained in:
parent
8fbd19213a
commit
bd8aeb29eb
@ -466,6 +466,7 @@ class FreqaiPrimer(IStrategy):
|
||||
try:
|
||||
es_config = get_es_config(self.config)
|
||||
if not es_config['enabled']:
|
||||
logger.debug(f"[{pair}] ES 未启用,跳过从 ES 读取标签分布")
|
||||
return None
|
||||
|
||||
# 获取当前年月(用于确定索引)
|
||||
@ -480,8 +481,10 @@ class FreqaiPrimer(IStrategy):
|
||||
"size": 1
|
||||
}
|
||||
|
||||
es_url = f"{es_config['url']}{index_name}/_search"
|
||||
|
||||
response = requests.post(
|
||||
f"{es_config['url']}{index_name}/_search",
|
||||
es_url,
|
||||
auth=(es_config['username'], es_config['password']) if es_config['username'] else None,
|
||||
headers={"Content-Type": "application/json"},
|
||||
data=json.dumps(query),
|
||||
@ -494,13 +497,31 @@ class FreqaiPrimer(IStrategy):
|
||||
labels_mean = result['hits']['hits'][0]['_source'].get('labels_mean', {})
|
||||
value = labels_mean.get(label_name)
|
||||
if value is not None:
|
||||
logger.debug(f"[{pair}] 从 ES 读取标签分布: {label_name}={value:.3f}")
|
||||
return value
|
||||
logger.info(f"✅ [{pair}] 从 ES 成功读取标签分布: {label_name}={value:.3f}")
|
||||
return value
|
||||
else:
|
||||
logger.warning(f"⚠️ [{pair}] ES 记录中缺少标签 {label_name}")
|
||||
return None
|
||||
else:
|
||||
logger.warning(f"⚠️ [{pair}] ES 中未找到训练记录(索引: {index_name})")
|
||||
return None
|
||||
else:
|
||||
logger.error(
|
||||
f"❌ [{pair}] ES 查询失败 | "
|
||||
f"状态码: {response.status_code} | "
|
||||
f"URL: {es_url} | "
|
||||
f"响应: {response.text[:200]}"
|
||||
)
|
||||
return None
|
||||
|
||||
except requests.exceptions.Timeout:
|
||||
logger.error(f"❌ [{pair}] ES 查询超时(>3秒)| URL: {es_config.get('url', 'N/A')}")
|
||||
return None
|
||||
except requests.exceptions.ConnectionError as e:
|
||||
logger.error(f"❌ [{pair}] ES 连接失败 | URL: {es_config.get('url', 'N/A')} | 错误: {e}")
|
||||
return None
|
||||
|
||||
except Exception as e:
|
||||
logger.debug(f"[{pair}] 无法从 ES 读取标签分布: {e}")
|
||||
logger.error(f"❌ [{pair}] ES 读取异常 | 错误类型: {type(e).__name__} | 详情: {e}")
|
||||
return None
|
||||
|
||||
def _get_label_distribution_from_redis(self, pair: str, label_name: str) -> float | None:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user