From 236dea8bf4ea93f5319086cfa8976c402b8f4dbf Mon Sep 17 00:00:00 2001 From: phamnazage-jpg Date: Fri, 22 May 2026 09:18:14 +0800 Subject: [PATCH] fix(pricing): support Perplexity/Vertex price format without dollar sign - official_pricing_import_common.go: make dollar sign optional in firstDollarPrice regex - perplexity_pricing_lib.go: fix column detection to match 'Input ($/1M)' format - also updated vertex and perplexity baseline snapshots --- scripts/official_pricing_import_common.go | 2 +- scripts/perplexity_pricing_lib.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/official_pricing_import_common.go b/scripts/official_pricing_import_common.go index 399379c..4de99ce 100644 --- a/scripts/official_pricing_import_common.go +++ b/scripts/official_pricing_import_common.go @@ -362,7 +362,7 @@ func cleanHTMLText(raw string) string { } func firstDollarPrice(raw string) (float64, bool) { - pattern := regexp.MustCompile(`\$ ?([0-9]+(?:\.[0-9]+)?)`) + pattern := regexp.MustCompile(`\$? ?([0-9]+(?:\.[0-9]+)?)`) match := pattern.FindStringSubmatch(raw) if len(match) != 2 { return 0, false diff --git a/scripts/perplexity_pricing_lib.go b/scripts/perplexity_pricing_lib.go index 91e9612..16cecec 100644 --- a/scripts/perplexity_pricing_lib.go +++ b/scripts/perplexity_pricing_lib.go @@ -120,9 +120,9 @@ func detectPerplexityTableColumns(header []string) (int, int, int, int) { switch { case strings.Contains(lower, "model") && modelIndex == -1: modelIndex = i - case strings.Contains(lower, "input") && strings.Contains(lower, "price") && inputIndex == -1: - inputIndex = i - case strings.Contains(lower, "output") && strings.Contains(lower, "price") && outputIndex == -1: + case strings.Contains(lower, "input") && (strings.Contains(lower, "price") || strings.Contains(lower, "$") || strings.Contains(lower, "/1m")) && inputIndex == -1: + inputIndex = i + case strings.Contains(lower, "output") && (strings.Contains(lower, "price") || strings.Contains(lower, "$") || strings.Contains(lower, "/1m")) && outputIndex == -1: outputIndex = i case (strings.Contains(lower, "documentation") || strings.Contains(lower, "docs")) && docIndex == -1: docIndex = i