Files
llm-intelligence/scripts/ucloud_pricing_lib.go

59 lines
1.9 KiB
Go
Raw Permalink Normal View History

//go:build llm_script
package main
import (
"fmt"
"regexp"
"strings"
)
const defaultUCloudPricingURL = "https://www.ucloud-global.com/en/docs/modelverse/price"
var ucloudPricePattern = regexp.MustCompile(`([A-Za-z0-9._/-]+)\s+Input\s+([\d.]+)\s+CNY/(?:million|1K)\s+tokens,\s+Output\s+([\d.]+)\s+CNY/(?:million|1K)\s+tokens`)
func parseUCloudPricingCatalog(raw string) ([]officialPricingRecord, error) {
matches := ucloudPricePattern.FindAllStringSubmatch(raw, -1)
if len(matches) == 0 {
return nil, fmt.Errorf("unexpected ucloud pricing content")
}
records := make([]officialPricingRecord, 0, len(matches))
for _, match := range matches {
modelName := strings.TrimSpace(match[1])
providerName := providerFromModelPath(modelName)
providerNameCn, providerCountry, providerWebsite := providerMetadata(providerName)
inputPrice := mustParseSubscriptionPrice(match[2])
outputPrice := mustParseSubscriptionPrice(match[3])
if strings.Contains(strings.ToLower(match[0]), "/1k") {
inputPrice *= 1000
outputPrice *= 1000
}
record := officialPricingRecord{
ModelID: normalizeExternalID("ucloud", modelName),
ModelName: modelName,
ProviderName: providerName,
ProviderNameCn: providerNameCn,
ProviderCountry: providerCountry,
ProviderWebsite: providerWebsite,
OperatorName: "UModelVerse",
OperatorNameCn: "UModelVerse",
OperatorCountry: "CN",
OperatorWebsite: "https://www.ucloud.cn",
OperatorType: "cloud",
Region: "CN",
Currency: "CNY",
InputPrice: inputPrice,
OutputPrice: outputPrice,
SourceURL: defaultUCloudPricingURL,
ModelSourceURL: defaultUCloudPricingURL,
DateConfidence: "unknown",
DateSourceKind: "official_product_page",
Modality: detectModality(modelName),
}
record.IsFree = record.InputPrice == 0 && record.OutputPrice == 0
records = append(records, record)
}
return records, nil
}