Skip to content

内容审核

内容审核是指使用 AI 技术自动检测和过滤不当内容,确保用户生成内容(UGC)符合平台规范和法律法规。

审核类别

常见违规类型

类别说明示例
色情内容露骨的性内容成人内容、软色情
暴力内容血腥、暴力描述伤害描述、虐待
仇恨言论歧视、仇恨种族歧视、性别歧视
骚扰人身攻击辱骂、威胁
自残自我伤害内容自杀引导
违法内容违法行为毒品、诈骗

实现方式

1. 使用 OpenAI Moderation API

OpenAI 提供免费的内容审核 API:

from openai import OpenAI  
  
client = OpenAI(api_key="your-api-key", base_url="http://122.51.35.238:5170/v1")  
  
def moderate_content(text):  
    response = client.moderations.create(  
        model="omni-moderation-latest",  
        input=text  
    )  
      
    result = response.results[0]  
      
    return {  
        "flagged": result.flagged,  
        "categories": {  
            k: v for k, v in result.categories.model_dump().items() if v  
        },  
        "scores": result.category_scores.model_dump()  
    }  
  
# 使用示例  
result = moderate_content("这是一段测试文本")  
if result["flagged"]:  
    print("内容违规:", result["categories"])  
else:  
    print("内容安全")

2. 使用 LLM 进行内容审核

更灵活的审核方式:

def llm_moderate(content, rules):  
    response = client.chat.completions.create(  
        model="gpt-4o-mini",  
        messages=[  
            {  
                "role": "system",  
                "content": f"""你是一个内容审核专家。请根据以下规则审核内容:  
  
{rules}  
  
返回 JSON 格式:  
{{  
    "safe": true/false,  
    "violations": ["违规类型列表"],  
    "confidence": 0-1的置信度,  
    "reason": "判断理由"  
}}"""  
            },  
            {  
                "role": "user",  
                "content": f"请审核以下内容:\n{content}"  
            }  
        ],  
        response_format={"type": "json_object"}  
    )  
      
    return json.loads(response.choices[0].message.content)

3. 多层审核系统

class ContentModerator:  
    def __init__(self):  
        self.client = OpenAI(api_key="your-api-key", base_url="http://122.51.35.238:5170/v1")  
      
    def moderate(self, content):  
        # 第一层:快速关键词过滤  
        if self.keyword_filter(content):  
            return {"safe": False, "reason": "包含敏感关键词"}  
          
        # 第二层:Moderation API  
        mod_result = self.client.moderations.create(  
            model="omni-moderation-latest",  
            input=content  
        ).results[0]  
          
        if mod_result.flagged:  
            return {"safe": False, "reason": "Moderation API 检测到违规"}  
          
        # 第三层:LLM 深度审核(可选,用于边界情况)  
        if self.needs_deep_review(content):  
            return self.llm_deep_review(content)  
          
        return {"safe": True}  
      
    def keyword_filter(self, content):  
        # 敏感词列表(应该从配置或数据库加载)  
        sensitive_words = ["敏感词1", "敏感词2"]  
        return any(word in content for word in sensitive_words)  
      
    def needs_deep_review(self, content):  
        # 判断是否需要深度审核  
        # 例如:包含特定模式、长度较长等  
        return len(content) > 1000

图片内容审核

使用多模态模型

def moderate_image(image_url):  
    response = client.chat.completions.create(  
        model="gpt-4o",  
        messages=[  
            {  
                "role": "system",  
                "content": """你是一个图片内容审核专家。请检测图片是否包含:  
1. 色情或裸露内容  
2. 暴力或血腥内容  
3. 违法物品  
4. 仇恨符号  
5. 其他不当内容  
  
返回 JSON:{"safe": bool, "issues": []}"""  
            },  
            {  
                "role": "user",  
                "content": [  
                    {"type": "text", "text": "请审核这张图片"},  
                    {"type": "image_url", "image_url": {"url": image_url}}  
                ]  
            }  
        ],  
        response_format={"type": "json_object"}  
    )  
      
    return json.loads(response.choices[0].message.content)

审核策略

1. 分级处理

def handle_moderation_result(result, content_id):  
    if result["confidence"] > 0.95:  
        # 高置信度违规:直接删除  
        delete_content(content_id)  
        notify_user(content_id, "内容已被删除")  
      
    elif result["confidence"] > 0.7:  
        # 中等置信度:隐藏待人工审核  
        hide_content(content_id)  
        add_to_review_queue(content_id)  
      
    elif result["confidence"] > 0.3:  
        # 低置信度:标记但不处理  
        flag_content(content_id)  
      
    else:  
        # 安全内容  
        pass

2. 上下文审核

考虑对话上下文:

def moderate_with_context(new_message, conversation_history):  
    full_context = conversation_history + [new_message]  
      
    response = client.chat.completions.create(  
        model="gpt-4o-mini",  
        messages=[  
            {  
                "role": "system",  
                "content": "审核最后一条消息,考虑对话上下文..."  
            },  
            {  
                "role": "user",  
                "content": f"对话历史:\n{format_history(full_context)}"  
            }  
        ]  
    )  
      
    return response.choices[0].message.content

最佳实践

1. 多模型组合

  • 快速模型做初筛
  • 精确模型做复审
  • 人工审核做最终判断

2. 持续更新

  • 收集误判案例
  • 定期更新规则
  • 监控新型违规内容

3. 用户反馈

  • 提供申诉渠道
  • 快速响应误判
  • 改进审核模型

4. 合规考虑

  • 遵守当地法律法规
  • 记录审核日志
  • 保护用户隐私

注意事项

  1. 误判处理: 建立申诉机制
  2. 性能优化: 高并发场景需要缓存和队列
  3. 隐私保护: 审核数据安全存储
  4. 持续监控: 监控审核准确率和延迟

本页内容来自文档知识库整理,已按 ArmNet 字元服务 服务命名统一更新。