diff --git a/.github/workflows/auto_update_price_and_context_window_file.py b/.github/workflows/auto_update_price_and_context_window_file.py index 461d8d347d9..9feb70981d3 100644 --- a/.github/workflows/auto_update_price_and_context_window_file.py +++ b/.github/workflows/auto_update_price_and_context_window_file.py @@ -85,21 +85,24 @@ def transform_openrouter_data(data): def transform_vercel_ai_gateway_data(data): transformed = {} for row in data: + pricing = row.get("pricing") or {} + if "input" not in pricing: + continue + obj = { "max_tokens": row["context_window"], - "input_cost_per_token": float(row["pricing"]["input"]), - "output_cost_per_token": float(row["pricing"]["output"]), + "input_cost_per_token": float(pricing["input"]), + "output_cost_per_token": float(pricing.get("output", 0.0)), 'max_output_tokens': row['max_tokens'], 'max_input_tokens': row["context_window"], } # Handle cache pricing if available - if "pricing" in row: - if "input_cache_read" in row["pricing"] and row["pricing"]["input_cache_read"] is not None: - obj['cache_read_input_token_cost'] = float(f"{float(row['pricing']['input_cache_read']):e}") - - if "input_cache_write" in row["pricing"] and row["pricing"]["input_cache_write"] is not None: - obj['cache_creation_input_token_cost'] = float(f"{float(row['pricing']['input_cache_write']):e}") + if "input_cache_read" in pricing and pricing["input_cache_read"] is not None: + obj['cache_read_input_token_cost'] = float(f"{float(pricing['input_cache_read']):e}") + + if "input_cache_write" in pricing and pricing["input_cache_write"] is not None: + obj['cache_creation_input_token_cost'] = float(f"{float(pricing['input_cache_write']):e}") mode = "embedding" if "embedding" in row["id"].lower() else "chat"