232 lines
8.4 KiB
Python
232 lines
8.4 KiB
Python
from __future__ import annotations
|
|
|
|
from enum import Enum
|
|
|
|
# 用户私域人像素材默认上限。users.private_portrait_asset_limit = 0 表示关闭模块;>0 表示启用并限制总素材量。
|
|
# 统计口径:真人 + 虚拟;图片 + 视频。音频当前业务暂不开放。
|
|
PRIVATE_PORTRAIT_DEFAULT_ASSET_LIMIT = 50
|
|
|
|
# 火山 Ark 私域素材 ProjectName:火山侧项目空间固定使用 default,并快照到各业务表 remote_project_name。
|
|
# 用户/项目隔离依赖本地 project_id 和火山返回的 Asset Group ID,不再动态拼接 ProjectName。
|
|
PRIVATE_PORTRAIT_REMOTE_PROJECT_NAME = "default"
|
|
|
|
PRIVATE_PORTRAIT_REAL_PERSON_GROUP_TYPE = "LivenessFace"
|
|
PRIVATE_PORTRAIT_VIRTUAL_GROUP_TYPE = "AIGC"
|
|
# 兼容旧代码导入,默认代表真人认证素材组类型。
|
|
PRIVATE_PORTRAIT_GROUP_TYPE = PRIVATE_PORTRAIT_REAL_PERSON_GROUP_TYPE
|
|
PRIVATE_PORTRAIT_VERIFY_TYPE = "real_time"
|
|
PRIVATE_PORTRAIT_SUCCESS_RESULT_CODE = "10000"
|
|
PRIVATE_PORTRAIT_ASSET_URI_PREFIX = "asset://"
|
|
|
|
ARK_PRIVATE_PORTRAIT_SERVICE_NAME = "ark"
|
|
ARK_PRIVATE_PORTRAIT_VERSION = "2024-01-01"
|
|
ARK_PRIVATE_PORTRAIT_REGION = "cn-beijing"
|
|
ARK_PRIVATE_PORTRAIT_HOST = "ark.cn-beijing.volcengineapi.com"
|
|
|
|
PRIVATE_PORTRAIT_ASSET_POLL_INTERVAL_SECONDS = 20
|
|
PRIVATE_PORTRAIT_VIDEO_ASSET_POLL_INTERVAL_SECONDS = 30
|
|
PRIVATE_PORTRAIT_ASSET_POLL_MAX_COUNT = 60
|
|
PRIVATE_PORTRAIT_VIDEO_ASSET_POLL_MAX_COUNT = 120
|
|
PRIVATE_PORTRAIT_ASSET_POLL_BATCH_SIZE = 50
|
|
PRIVATE_PORTRAIT_REMOTE_DELETE_RECOVERY_BATCH_SIZE = 50
|
|
PRIVATE_PORTRAIT_VALIDATE_TOKEN_EXPIRE_MINUTES = 30
|
|
|
|
# 系统侧保守限流;火山文档 GetAsset 是 100 QPS,这里预留余量为 80。
|
|
PRIVATE_PORTRAIT_ACTION_QPS_LIMITS: dict[str, int] = {
|
|
"CreateVisualValidateSession": 3,
|
|
"GetVisualValidateResult": 3,
|
|
"CreateAssetGroup": 10,
|
|
"CreateAsset": 1,
|
|
"ListAssetGroups": 10,
|
|
"ListAssets": 10,
|
|
"GetAsset": 80,
|
|
"GetAssetGroup": 10,
|
|
"UpdateAsset": 10,
|
|
"UpdateAssetGroup": 10,
|
|
"DeleteAsset": 10,
|
|
"DeleteAssetGroup": 5,
|
|
}
|
|
|
|
|
|
class ArkPrivatePortraitAction(str, Enum):
|
|
CREATE_VISUAL_VALIDATE_SESSION = "CreateVisualValidateSession"
|
|
GET_VISUAL_VALIDATE_RESULT = "GetVisualValidateResult"
|
|
CREATE_ASSET_GROUP = "CreateAssetGroup"
|
|
CREATE_ASSET = "CreateAsset"
|
|
GET_ASSET = "GetAsset"
|
|
LIST_ASSETS = "ListAssets"
|
|
LIST_ASSET_GROUPS = "ListAssetGroups"
|
|
GET_ASSET_GROUP = "GetAssetGroup"
|
|
UPDATE_ASSET = "UpdateAsset"
|
|
UPDATE_ASSET_GROUP = "UpdateAssetGroup"
|
|
DELETE_ASSET = "DeleteAsset"
|
|
DELETE_ASSET_GROUP = "DeleteAssetGroup"
|
|
|
|
|
|
class PrivatePortraitLibraryType(str, Enum):
|
|
REAL_PERSON = "real_person"
|
|
AIGC_VIRTUAL = "aigc_virtual"
|
|
|
|
|
|
class PrivatePortraitProjectStatus(str, Enum):
|
|
VALIDATING = "validating"
|
|
ACTIVE = "active"
|
|
VALIDATE_FAILED = "validate_failed"
|
|
CREATING_REMOTE_GROUP = "creating_remote_group"
|
|
CREATE_GROUP_FAILED = "create_group_failed"
|
|
DELETING = "deleting"
|
|
DELETED = "deleted"
|
|
|
|
|
|
class PrivatePortraitValidateSessionStatus(str, Enum):
|
|
CREATED = "created"
|
|
CALLBACK_SUCCESS = "callback_success"
|
|
CALLBACK_FAILED = "callback_failed"
|
|
GROUP_ACTIVE = "group_active"
|
|
EXPIRED = "expired"
|
|
FAILED = "failed"
|
|
|
|
|
|
class PrivatePortraitAssetGroupStatus(str, Enum):
|
|
CREATING = "creating"
|
|
ACTIVE = "active"
|
|
LOCAL_DELETED = "local_deleted"
|
|
REMOTE_DELETED = "remote_deleted"
|
|
DELETE_FAILED = "delete_failed"
|
|
FAILED = "failed"
|
|
|
|
|
|
class PrivatePortraitAssetStatus(str, Enum):
|
|
CREATING = "creating"
|
|
PROCESSING = "Processing"
|
|
ACTIVE = "Active"
|
|
FAILED = "Failed"
|
|
LOCAL_DELETED = "local_deleted"
|
|
DELETING = "deleting"
|
|
REMOTE_DELETED = "remote_deleted"
|
|
DELETE_FAILED = "delete_failed"
|
|
|
|
|
|
class PrivatePortraitAssetType(str, Enum):
|
|
IMAGE = "Image"
|
|
VIDEO = "Video"
|
|
AUDIO = "Audio" # 火山支持,但当前业务暂不开放。
|
|
|
|
|
|
PRIVATE_PORTRAIT_ENABLED_ASSET_TYPES = {
|
|
PrivatePortraitAssetType.IMAGE.value,
|
|
PrivatePortraitAssetType.VIDEO.value,
|
|
}
|
|
|
|
|
|
class PrivatePortraitRemoteDeleteStatus(str, Enum):
|
|
NONE = "none"
|
|
PENDING = "pending"
|
|
SUCCESS = "success"
|
|
FAILED = "failed"
|
|
SKIPPED = "skipped"
|
|
|
|
|
|
class PrivatePortraitReferenceSource(str, Enum):
|
|
PRIVATE_PORTRAIT_ASSET = "private_portrait_asset"
|
|
|
|
|
|
class PrivatePortraitEventStatus(str, Enum):
|
|
SUCCESS = "success"
|
|
FAILED = "failed"
|
|
PENDING = "pending"
|
|
SKIPPED = "skipped"
|
|
WARNING = "warning"
|
|
|
|
|
|
class PrivatePortraitEventSource(str, Enum):
|
|
API = "api"
|
|
SERVICE = "service"
|
|
CALLBACK = "callback"
|
|
CELERY = "celery"
|
|
ADMIN = "admin"
|
|
SYSTEM = "system"
|
|
|
|
|
|
class PrivatePortraitEventType(str, Enum):
|
|
QUOTA_CHECK_START = "QUOTA_CHECK_START"
|
|
QUOTA_CHECK_PASS = "QUOTA_CHECK_PASS"
|
|
QUOTA_CHECK_DENY = "QUOTA_CHECK_DENY"
|
|
|
|
PROJECT_CREATE = "PROJECT_CREATE"
|
|
PROJECT_UPDATE = "PROJECT_UPDATE"
|
|
PROJECT_DELETE = "PROJECT_DELETE"
|
|
|
|
VIRTUAL_PROJECT_CREATE_START = "VIRTUAL_PROJECT_CREATE_START"
|
|
VIRTUAL_ASSET_GROUP_CREATE_REMOTE_START = "VIRTUAL_ASSET_GROUP_CREATE_REMOTE_START"
|
|
VIRTUAL_ASSET_GROUP_CREATE_REMOTE_SUCCESS = "VIRTUAL_ASSET_GROUP_CREATE_REMOTE_SUCCESS"
|
|
VIRTUAL_ASSET_GROUP_CREATE_REMOTE_FAILED = "VIRTUAL_ASSET_GROUP_CREATE_REMOTE_FAILED"
|
|
VIRTUAL_ASSET_CREATE_REMOTE_START = "VIRTUAL_ASSET_CREATE_REMOTE_START"
|
|
VIRTUAL_ASSET_CREATE_REMOTE_SUCCESS = "VIRTUAL_ASSET_CREATE_REMOTE_SUCCESS"
|
|
VIRTUAL_ASSET_CREATE_REMOTE_FAILED = "VIRTUAL_ASSET_CREATE_REMOTE_FAILED"
|
|
|
|
VALIDATE_SESSION_CREATE = "VALIDATE_SESSION_CREATE"
|
|
VALIDATE_SESSION_CREATE_FAILED = "VALIDATE_SESSION_CREATE_FAILED"
|
|
VALIDATE_CALLBACK_RECEIVED = "VALIDATE_CALLBACK_RECEIVED"
|
|
VALIDATE_CALLBACK_SUCCESS = "VALIDATE_CALLBACK_SUCCESS"
|
|
VALIDATE_CALLBACK_FAILED = "VALIDATE_CALLBACK_FAILED"
|
|
VALIDATE_GET_RESULT_START = "VALIDATE_GET_RESULT_START"
|
|
VALIDATE_GET_RESULT_SUCCESS = "VALIDATE_GET_RESULT_SUCCESS"
|
|
VALIDATE_GET_RESULT_FAILED = "VALIDATE_GET_RESULT_FAILED"
|
|
|
|
ASSET_GROUP_UPDATE_REMOTE_START = "ASSET_GROUP_UPDATE_REMOTE_START"
|
|
ASSET_GROUP_UPDATE_REMOTE_SUCCESS = "ASSET_GROUP_UPDATE_REMOTE_SUCCESS"
|
|
ASSET_GROUP_UPDATE_REMOTE_FAILED = "ASSET_GROUP_UPDATE_REMOTE_FAILED"
|
|
|
|
ASSET_CREATE_REJECT_DISABLED = "ASSET_CREATE_REJECT_DISABLED"
|
|
ASSET_CREATE_REJECT_MAX_LIMIT = "ASSET_CREATE_REJECT_MAX_LIMIT"
|
|
ASSET_CREATE_START = "ASSET_CREATE_START"
|
|
ASSET_CREATE_SUCCESS = "ASSET_CREATE_SUCCESS"
|
|
ASSET_CREATE_FAILED = "ASSET_CREATE_FAILED"
|
|
ASSET_UPLOAD_START = "ASSET_UPLOAD_START"
|
|
ASSET_UPLOAD_SUCCESS = "ASSET_UPLOAD_SUCCESS"
|
|
ASSET_UPLOAD_FAILED = "ASSET_UPLOAD_FAILED"
|
|
ASSET_UPLOAD_BIND_START = "ASSET_UPLOAD_BIND_START"
|
|
ASSET_UPLOAD_BIND_SUCCESS = "ASSET_UPLOAD_BIND_SUCCESS"
|
|
ASSET_UPLOAD_BIND_FAILED = "ASSET_UPLOAD_BIND_FAILED"
|
|
ASSET_UPLOAD_RELEASE_START = "ASSET_UPLOAD_RELEASE_START"
|
|
ASSET_UPLOAD_RELEASE_SUCCESS = "ASSET_UPLOAD_RELEASE_SUCCESS"
|
|
ASSET_UPLOAD_RELEASE_FAILED = "ASSET_UPLOAD_RELEASE_FAILED"
|
|
|
|
ASSET_SYNC_START = "ASSET_SYNC_START"
|
|
ASSET_SYNC_SUCCESS = "ASSET_SYNC_SUCCESS"
|
|
ASSET_SYNC_FAILED = "ASSET_SYNC_FAILED"
|
|
ASSET_POLL_START = "ASSET_POLL_START"
|
|
ASSET_POLL_SUCCESS = "ASSET_POLL_SUCCESS"
|
|
ASSET_POLL_FAILED = "ASSET_POLL_FAILED"
|
|
ASSET_POLL_TIMEOUT = "ASSET_POLL_TIMEOUT"
|
|
|
|
ASSET_DELETE_LOCAL = "ASSET_DELETE_LOCAL"
|
|
ASSET_DELETE_REMOTE_START = "ASSET_DELETE_REMOTE_START"
|
|
ASSET_DELETE_REMOTE_SUCCESS = "ASSET_DELETE_REMOTE_SUCCESS"
|
|
ASSET_DELETE_REMOTE_FAILED = "ASSET_DELETE_REMOTE_FAILED"
|
|
PROJECT_DELETE_REMOTE_START = "PROJECT_DELETE_REMOTE_START"
|
|
PROJECT_DELETE_REMOTE_SUCCESS = "PROJECT_DELETE_REMOTE_SUCCESS"
|
|
PROJECT_DELETE_REMOTE_FAILED = "PROJECT_DELETE_REMOTE_FAILED"
|
|
|
|
TASK_DISPATCH_SUCCESS = "TASK_DISPATCH_SUCCESS"
|
|
TASK_DISPATCH_FAILED = "TASK_DISPATCH_FAILED"
|
|
|
|
SYNC_DUE_ASSETS_START = "SYNC_DUE_ASSETS_START"
|
|
SYNC_DUE_ASSETS_DONE = "SYNC_DUE_ASSETS_DONE"
|
|
SYNC_DUE_ASSETS_FAILED = "SYNC_DUE_ASSETS_FAILED"
|
|
|
|
REMOTE_DELETE_RECOVERY_START = "REMOTE_DELETE_RECOVERY_START"
|
|
REMOTE_DELETE_RECOVERY_DONE = "REMOTE_DELETE_RECOVERY_DONE"
|
|
REMOTE_DELETE_RECOVERY_FAILED = "REMOTE_DELETE_RECOVERY_FAILED"
|
|
|
|
REFERENCE_RESOLVE_START = "REFERENCE_RESOLVE_START"
|
|
REFERENCE_RESOLVE_SUCCESS = "REFERENCE_RESOLVE_SUCCESS"
|
|
REFERENCE_RESOLVE_FAILED = "REFERENCE_RESOLVE_FAILED"
|
|
|
|
ARK_API_CALL_START = "ARK_API_CALL_START"
|
|
ARK_API_CALL_SUCCESS = "ARK_API_CALL_SUCCESS"
|
|
ARK_API_CALL_FAILED = "ARK_API_CALL_FAILED"
|
|
ARK_API_RATE_LIMIT_WAIT = "ARK_API_RATE_LIMIT_WAIT"
|
|
ARK_API_RATE_LIMIT_REJECT = "ARK_API_RATE_LIMIT_REJECT"
|