fix: filters数组改为AND逻辑,缺键视为匹配
- 原OR逻辑导致model不匹配时仅因video匹配就计费 - 带unit_prices的filter_item为tiered定价,跳过AND检查 - seedance2.0案例:390825 tokens从75.82(5条匹配)修正为17.98(1条匹配)
This commit is contained in:
parent
616c3a1926
commit
759cd14a56
@ -635,11 +635,12 @@ order by b.enabled_date desc"""
|
|||||||
exception(f'{e}:{msg}')
|
exception(f'{e}:{msg}')
|
||||||
break
|
break
|
||||||
|
|
||||||
# 检查 filters 区间条件(新格式)
|
# 检查 filters 区间条件(新格式,AND逻辑:所有filter_item都要匹配)
|
||||||
|
# 带 unit_prices 的 filter_item 是 tiered 定价,跳过(由后面第二块处理)
|
||||||
if p_ok and is_new_format and 'filters' in p:
|
if p_ok and is_new_format and 'filters' in p:
|
||||||
# filters 是多个区间选项,只要有一个匹配就行
|
|
||||||
filter_matched = False
|
|
||||||
for filter_item in p['filters']:
|
for filter_item in p['filters']:
|
||||||
|
if 'unit_prices' in filter_item:
|
||||||
|
continue # tiered定价项,不在此处检查
|
||||||
item_ok = True
|
item_ok = True
|
||||||
for fk, fv in filter_item.items():
|
for fk, fv in filter_item.items():
|
||||||
if fk == 'unit_prices':
|
if fk == 'unit_prices':
|
||||||
@ -650,7 +651,7 @@ order by b.enabled_date desc"""
|
|||||||
data_value = config_data.get(fk)
|
data_value = config_data.get(fk)
|
||||||
data_value = data_mapping(d, fk, data_value)
|
data_value = data_mapping(d, fk, data_value)
|
||||||
if data_value is None:
|
if data_value is None:
|
||||||
continue
|
continue # 数据中没有该键,视为匹配
|
||||||
try:
|
try:
|
||||||
flg = check_value(f, fv, data_value)
|
flg = check_value(f, fv, data_value)
|
||||||
if not flg:
|
if not flg:
|
||||||
@ -660,11 +661,9 @@ order by b.enabled_date desc"""
|
|||||||
debug(f'filter check error: {e}')
|
debug(f'filter check error: {e}')
|
||||||
item_ok = False
|
item_ok = False
|
||||||
break
|
break
|
||||||
if item_ok:
|
if not item_ok:
|
||||||
filter_matched = True
|
p_ok = False
|
||||||
break
|
break
|
||||||
if not filter_matched:
|
|
||||||
p_ok = False
|
|
||||||
|
|
||||||
if not p_ok:
|
if not p_ok:
|
||||||
info(f'{config_data=}, {p=}, mismatched')
|
info(f'{config_data=}, {p=}, mismatched')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user