文件预览

config.py

查看 Alibabacloud Safety Checker 技能包中的文件内容。

文件内容

scripts/config.py

"""
配置模块 - 内容安全自动化测试框架
"""
import os
from dataclasses import dataclass, field
from typing import Dict, List

# ============ 区域和端点配置 ============
REGION_ID = os.environ.get("CONTENT_SECURITY_REGION", "cn-shanghai")
ENDPOINT = f"green-cip.{REGION_ID}.aliyuncs.com"

# ============ QPS限制 ============
MAX_QPS = 50  # 单用户QPS限制

# ============ 审核服务配置 ============
# 文本审核服务
TEXT_SERVICES = {
    "ugc_moderation_byllm": "UGC文本审核标准版",
    "ugc_moderation_byllm_pro": "UGC文本审核Pro版",
    "aigc_moderation_byllm": "AIGC文本审核",
    "ugc_moderation_byllm_cb": "UGC文本审核跨境版",
}

# 图片审核服务
IMAGE_SERVICES = {
    "baselineCheck": "图片基线检测",
    "baselineCheck_pro": "图片基线检测Pro",
    "baselineCheckByVL": "图片VL模型检测",
    "aigcCheck": "AIGC图片检测",
    "profilePhotoCheck": "头像检测",
    "postImageCheck": "帖子图片检测",
    "advertisingCheck": "广告检测",
    "liveStreamCheck": "直播截图检测",
}

# 音频审核服务
AUDIO_SERVICES = {
    "audio_media_detection": "音频媒体检测",
}

# 视频审核服务
VIDEO_SERVICES = {
    "videoDetection": "视频检测",
    "liveStreamDetection": "直播流检测",
}

# ============ 风险等级定义 ============
RISK_LEVELS = ["high", "medium", "low", "none"]

# ============ 标注标签定义 ============
ANNOTATION_LABELS = {
    "correct": "正确(审核结果与实际一致)",
    "false_positive": "误判(内容安全但被判为违规)",
    "false_negative": "漏判(内容违规但被判为安全)",
    "uncertain": "不确定(需要进一步确认)",
}

# ============ 输出配置 ============
OUTPUT_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "results")
SAMPLES_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "samples")


@dataclass
class TestConfig:
    """测试运行配置"""
    # 要测试的服务列表
    text_services: List[str] = field(default_factory=lambda: list(TEXT_SERVICES.keys()))
    image_services: List[str] = field(default_factory=lambda: list(IMAGE_SERVICES.keys())[:2])
    audio_services: List[str] = field(default_factory=lambda: list(AUDIO_SERVICES.keys()))
    video_services: List[str] = field(default_factory=lambda: list(VIDEO_SERVICES.keys())[:1])

    # 并发控制
    max_concurrent: int = 10
    request_interval: float = 0.02  # 请求间隔(秒),控制QPS

    # 异步任务轮询
    async_poll_interval: float = 2.0  # 异步任务结果轮询间隔(秒)
    async_max_wait: float = 300.0  # 异步任务最大等待时间(秒)

    # 输出格式
    output_format: str = "xlsx"  # xlsx 或 csv