from __future__ import annotations from enum import StrEnum class LlmBillingLedgerState(StrEnum): MISSING = "missing" ACTIVE = "active" SUCCEEDED = "succeeded" REFUNDED = "refunded" FINAL_FAILED = "final_failed" INVALID = "invalid" BILLING_BYPASSED = "invalid" # 历史兼容;新系统不允许绕过计费 RELEASED = "refunded" # 历史兼容别名 CHARGED = "succeeded" # 历史兼容别名 class LlmBillingExecutionStatus(StrEnum): PRE_DEDUCTED = "pre_deducted" PROCESSING = "processing" SUCCEEDED = "succeeded" FINAL_FAILED = "final_failed" REFUNDED = "refunded" REFUND_FAILED = "refund_failed" class LlmCallAttemptStatus(StrEnum): STARTED = "started" SUCCEEDED = "succeeded" FAILED = "failed" TIMEOUT = "timeout" UNKNOWN = "unknown" class LlmBillingEvent(StrEnum): PRE_DEDUCT_START = "LLM_PRE_DEDUCT_START" PRE_DEDUCT_SUCCESS = "LLM_PRE_DEDUCT_SUCCESS" PRE_DEDUCT_INSUFFICIENT = "LLM_PRE_DEDUCT_INSUFFICIENT" PRE_DEDUCT_CONFIG_INVALID = "LLM_PRE_DEDUCT_CONFIG_INVALID" EXECUTION_VALIDATE_START = "LLM_EXECUTION_VALIDATE_START" EXECUTION_VALIDATE_SUCCESS = "LLM_EXECUTION_VALIDATE_SUCCESS" EXECUTION_BLOCKED = "LLM_EXECUTION_BLOCKED" PROVIDER_START = "LLM_PROVIDER_START" PROVIDER_SUCCESS = "LLM_PROVIDER_SUCCESS" PROVIDER_FAILURE = "LLM_PROVIDER_FAILURE" POSTPROCESS_FAILURE = "LLM_POSTPROCESS_FAILURE" TOKEN_USAGE_CREATED = "LLM_TOKEN_USAGE_CREATED" TOKEN_USAGE_REUSED = "LLM_TOKEN_USAGE_REUSED" BUSINESS_SUCCESS = "LLM_BUSINESS_SUCCESS" FINAL_FAILURE_START = "LLM_FINAL_FAILURE_START" FINAL_FAILURE_REFUND_SUCCESS = "LLM_FINAL_FAILURE_REFUND_SUCCESS" FINAL_FAILURE_REFUND_FAILED = "LLM_FINAL_FAILURE_REFUND_FAILED" CELERY_DISPATCH_START = "LLM_CELERY_DISPATCH_START" CELERY_DISPATCH_SUCCESS = "LLM_CELERY_DISPATCH_SUCCESS" CELERY_DISPATCH_FAILURE = "LLM_CELERY_DISPATCH_FAILURE" CELERY_DISPATCH_COMPENSATED = "LLM_CELERY_DISPATCH_COMPENSATED" RETRY_PREVIOUS_ATTEMPT_VALIDATE_START = "LLM_RETRY_PREVIOUS_ATTEMPT_VALIDATE_START" RETRY_PREVIOUS_ATTEMPT_VALIDATE_SUCCESS = "LLM_RETRY_PREVIOUS_ATTEMPT_VALIDATE_SUCCESS" RETRY_PREVIOUS_ATTEMPT_BLOCKED = "LLM_RETRY_PREVIOUS_ATTEMPT_BLOCKED" class LlmBillingDomain(StrEnum): LLM_BILLING = "llm_billing" LLM_BILLING_SCENE_LABELS = { "generation_record_text_prompt_optimize": "AI创作-提示词优化", "hot_opening_image_prompt_optimize": "爆款开头复刻-图片提示词优化", "hot_opening_video_prompt_optimize": "爆款开头复刻-视频提示词优化", "shot_image_prompt_optimize": "拆镜复刻-图片提示词优化", "shot_video_prompt_optimize": "拆镜复刻-视频提示词优化", "shot_original_video_analysis": "拆镜复刻-原视频AI分析", "shot_segment_video_analysis": "拆镜复刻-片段视频AI分析", }