from __future__ import annotations from enum import Enum class ModelPricingProvider(str, Enum): VOLCENGINE = "volcengine" class ModelPricingCategory(str, Enum): TEXT = "text" IMAGE = "image" VIDEO = "video" class ModelPricingBillingMode(str, Enum): TEXT_TOKEN_TIERED = "text_token_tiered" IMAGE_PER_OUTPUT = "image_per_output" IMAGE_INPUT_OUTPUT_TIERED = "image_input_output_tiered" VIDEO_TOKEN_RATE = "video_token_rate" class ModelPricingCalculatorVersion(str, Enum): TEXT_TOKEN_TIERED_V1 = "text_token_tiered_v1" IMAGE_PER_OUTPUT_V1 = "image_per_output_v1" IMAGE_INPUT_OUTPUT_TIERED_V1 = "image_input_output_tiered_v1" VIDEO_PIXEL_TOKEN_V1 = "video_pixel_token_v1" class ModelPricingRuleStatus(str, Enum): DRAFT = "draft" PUBLISHED = "published" DISABLED = "disabled" class ProviderCostStatus(str, Enum): NOT_APPLICABLE = "not_applicable" NOT_INCURRED = "not_incurred" PENDING = "pending" CALCULATED = "calculated" ESTIMATED = "estimated" UNMATCHED_RULE = "unmatched_rule" USAGE_MISSING = "usage_missing" ERROR = "error" PROVIDER_RESULT_UNCERTAIN = "provider_result_uncertain" HISTORICAL_PRICE_UNAVAILABLE = "historical_price_unavailable" HISTORICAL_ENGINE_UNAVAILABLE = "historical_engine_unavailable" class PricingUsageSource(str, Enum): PROVIDER = "provider" PROVIDER_RESPONSE = "provider_response" REQUEST_FORMULA = "request_formula" ENGINE_SNAPSHOT = "engine_snapshot" PRICING_RULE_MAP = "pricing_rule_map" BACKFILL = "backfill" MANUAL = "manual" UNAVAILABLE = "unavailable" class PricingSnapshotStage(str, Enum): REQUEST_LOCKED = "request_locked" PROVIDER_SYNC_COMPLETED = "provider_sync_completed" PROVIDER_ASYNC_COMPLETED = "provider_async_completed" RESOURCE_DOWNLOAD_COMPLETED = "resource_download_completed" BACKFILL = "backfill" class PricingDimensionSource(str, Enum): PROVIDER_RESPONSE = "provider_response" REQUEST_EXPLICIT = "request_explicit" ENGINE_SNAPSHOT = "engine_snapshot" PRICING_RULE_MAP = "pricing_rule_map" UNAVAILABLE = "unavailable" class PricingBillBy(str, Enum): SUCCESSFUL_OUTPUT_COUNT = "successful_output_count" REQUESTED_OUTPUT_COUNT = "requested_output_count" PROVIDER_BILLED_COUNT = "provider_billed_count" class PricingInferenceMode(str, Enum): ONLINE = "online" FLEX = "flex" BATCH = "batch" MODEL_PRICING_BILLING_MODE_LABELS = { ModelPricingBillingMode.TEXT_TOKEN_TIERED.value: "文本分档 Token 计价", ModelPricingBillingMode.IMAGE_PER_OUTPUT.value: "图片按输出数量计价", ModelPricingBillingMode.IMAGE_INPUT_OUTPUT_TIERED.value: "输入图片 + 输出像素分档计价", ModelPricingBillingMode.VIDEO_TOKEN_RATE.value: "视频像素 Token 计价", } MODEL_PRICING_RULE_STATUS_LABELS = { ModelPricingRuleStatus.DRAFT.value: "草稿", ModelPricingRuleStatus.PUBLISHED.value: "已发布", ModelPricingRuleStatus.DISABLED.value: "已停用", } PROVIDER_COST_STATUS_LABELS = { ProviderCostStatus.NOT_APPLICABLE.value: "不涉及供应商成本", ProviderCostStatus.NOT_INCURRED.value: "供应商费用未发生", ProviderCostStatus.PENDING.value: "待核算", ProviderCostStatus.CALCULATED.value: "已核算", ProviderCostStatus.ESTIMATED.value: "估算", ProviderCostStatus.UNMATCHED_RULE.value: "未匹配价格", ProviderCostStatus.USAGE_MISSING.value: "用量缺失", ProviderCostStatus.ERROR.value: "核算异常", ProviderCostStatus.PROVIDER_RESULT_UNCERTAIN.value: "供应商结果不确定", ProviderCostStatus.HISTORICAL_PRICE_UNAVAILABLE.value: "历史价格缺失", ProviderCostStatus.HISTORICAL_ENGINE_UNAVAILABLE.value: "历史引擎缺失", }