Files
llm-intelligence/db/migrations/016_region_pricing_non_token_units.sql
phamnazage-jpg 5c5578a19b
Some checks failed
CI / go-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / docker-build (push) Has been cancelled
feat(region_pricing): 扩展非 token 统一计费字段,支持语音按字符/秒计费
- 新增 region_pricing.pricing_mode / price_unit / flat_price 字段
- 新增 migration 016_region_pricing_non_token_units.sql
- officialPricingRecord 新增 PricingMode/PriceUnit/FlatPrice 字段
- detectModality 新增 audio 模态检测(voice/audio/speech)
- providerMetadata 新增 BAAI/ByteDance/China Mobile 元数据
- import_mobile_cloud_pricing.go: 解析语音计费表(CosyVoice/SenseVoice)
  - CosyVoice: 2元/万字符 → pricingMode=flat, priceUnit=10k_characters
  - SenseVoice: 0.0007元/秒 → pricingMode=flat, priceUnit=second
- mobileCloudProviderName 新增 cosyvoice/sensevoice → Alibaba 映射
- cmd/server: modelResponse 新增 pricingMode/priceUnit/flatPrice,API 字段说明同步更新
- 新增 TestModelsHandlerReturnsFlatPricingFields 测试
2026-05-22 14:51:38 +08:00

32 lines
1008 B
SQL

-- Phase 2: region_pricing 扩展非 token 统一计费字段(字符/秒等)
ALTER TABLE region_pricing
ADD COLUMN IF NOT EXISTS pricing_mode TEXT NOT NULL DEFAULT 'input_output',
ADD COLUMN IF NOT EXISTS price_unit TEXT NOT NULL DEFAULT 'million_tokens',
ADD COLUMN IF NOT EXISTS flat_price REAL;
DO $$
BEGIN
IF NOT EXISTS (
SELECT 1
FROM pg_constraint
WHERE conname = 'chk_region_pricing_pricing_mode'
) THEN
ALTER TABLE region_pricing
ADD CONSTRAINT chk_region_pricing_pricing_mode
CHECK (pricing_mode IN ('input_output', 'flat'));
END IF;
END
$$;
UPDATE region_pricing
SET pricing_mode = 'input_output'
WHERE coalesce(pricing_mode, '') = '';
UPDATE region_pricing
SET price_unit = 'million_tokens'
WHERE coalesce(price_unit, '') = '';
CREATE INDEX IF NOT EXISTS idx_region_pricing_pricing_mode ON region_pricing(pricing_mode);
CREATE INDEX IF NOT EXISTS idx_region_pricing_price_unit ON region_pricing(price_unit);