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 测试
This commit is contained in:
31
db/migrations/016_region_pricing_non_token_units.sql
Normal file
31
db/migrations/016_region_pricing_non_token_units.sql
Normal file
@@ -0,0 +1,31 @@
|
||||
-- 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);
|
||||
Reference in New Issue
Block a user