Fix: Handle list mapping in process_packages_breakdown to resolve unhashable type error
This commit is contained in:
+25
-7
@@ -569,22 +569,40 @@ def process_packages_breakdown(packages):
|
|||||||
raw_code = pkg.get("ConfigurationCode", "")
|
raw_code = pkg.get("ConfigurationCode", "")
|
||||||
raw_name = pkg.get("ConfigurationName", "Unknown")
|
raw_name = pkg.get("ConfigurationName", "Unknown")
|
||||||
target_raw = raw_code if raw_code else raw_name
|
target_raw = raw_code if raw_code else raw_name
|
||||||
model_name = normalize_volc_name(target_raw)
|
|
||||||
|
# 1. Normalize name (strips suffixes, handles case/hyphens)
|
||||||
|
norm_result = normalize_volc_name(target_raw)
|
||||||
|
|
||||||
available = pkg.get("AvailableAmount", 0)
|
available = pkg.get("AvailableAmount", 0)
|
||||||
unit = pkg.get("Unit", "token")
|
unit = pkg.get("Unit", "token")
|
||||||
|
|
||||||
# Debug log to trace mapping
|
# 2. Handle 1-to-many mapping (e.g. doubao-seed-1-6 -> [v1, v2])
|
||||||
if DEBUG_MODE or "glm" in model_name or "doubao" in model_name:
|
target_models = []
|
||||||
|
if isinstance(norm_result, list):
|
||||||
|
target_models = norm_result
|
||||||
|
else:
|
||||||
|
target_models = [norm_result]
|
||||||
|
|
||||||
|
# Debug log
|
||||||
|
if (
|
||||||
|
DEBUG_MODE
|
||||||
|
or "doubao" in str(target_models)
|
||||||
|
or "glm" in str(target_models)
|
||||||
|
):
|
||||||
print(
|
print(
|
||||||
f"DEBUG: Pkg Raw='{target_raw}' -> Norm='{model_name}', Avail={available}",
|
f"DEBUG: Pkg Raw='{target_raw}' -> Norm='{norm_result}', Avail={available}",
|
||||||
flush=True,
|
flush=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
if unit.lower() == "token":
|
if unit.lower() == "token":
|
||||||
model_counts[model_name] = model_counts.get(model_name, 0) + int(
|
for model_name in target_models:
|
||||||
available
|
if model_name == "unknown":
|
||||||
)
|
continue
|
||||||
|
# Aggregate balances
|
||||||
|
model_counts[model_name] = model_counts.get(model_name, 0) + int(
|
||||||
|
available
|
||||||
|
)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error processing package: {e}")
|
print(f"Error processing package: {e}")
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user