moderation

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

包 moderation 提供统一的内容审核服务抽象,用于检测文本和图像中的 违规内容,支持多种审核类别与置信度评分。

概述

本包定义了内容审核的核心接口与数据模型,屏蔽不同审核服务商在 API 协议和分类体系上的差异。当前内置 OpenAI Moderation API 适配, 支持纯文本与多模态(文本 + 图像)混合审核。

核心接口

  • ModerationProvider:审核提供者接口,包含 Name 与 Moderate 两个方法。
  • ModerationRequest:审核请求,支持文本列表与 Base64 图像列表。
  • ModerationResponse:审核响应,包含提供者、模型与结果列表。
  • ModerationResult:单条输入的审核结果,包含标记状态、分类与评分。
  • ModerationCategory:布尔型分类标记(hate、harassment、 self-harm、sexual、violence、illicit 等 11 个类别)。
  • ModerationScores:各类别的置信度评分(float64)。

主要能力

  • 文本审核:对文本列表进行违规检测,返回逐条标记与评分。
  • 多模态审核:同时审核文本与 Base64 编码图像。
  • 多类别检测:覆盖仇恨、骚扰、自残、色情、暴力、非法等类别。
  • 配置体系:OpenAIConfig 提供 API Key、BaseURL、Model 与 Timeout 配置,DefaultOpenAIConfig 返回合理默认值。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ModerationCategory

type ModerationCategory struct {
	Hate            bool `json:"hate"`
	HateThreatening bool `json:"hate_threatening"`
	Harassment      bool `json:"harassment"`
	SelfHarm        bool `json:"self_harm"`
	SelfHarmIntent  bool `json:"self_harm_intent"`
	Sexual          bool `json:"sexual"`
	SexualMinors    bool `json:"sexual_minors"`
	Violence        bool `json:"violence"`
	ViolenceGraphic bool `json:"violence_graphic"`
	Illicit         bool `json:"illicit"`
	IllicitViolent  bool `json:"illicit_violent"`
}

中度类别表示标出哪些类别 。

type ModerationProvider

type ModerationProvider interface {
	Name() string
	Moderate(ctx context.Context, req *ModerationRequest) (*ModerationResponse, error)
}

调和 Provider 为内容节制定义了接口.

type ModerationRequest

type ModerationRequest struct {
	Input  []string `json:"input"`            // Text inputs to moderate
	Images []string `json:"images,omitempty"` // Base64 images (optional)
	Model  string   `json:"model,omitempty"`  // Model to use
}

温和请求是温和请求。

type ModerationResponse

type ModerationResponse struct {
	Provider  string             `json:"provider"`
	Model     string             `json:"model"`
	Results   []ModerationResult `json:"results"`
	CreatedAt time.Time          `json:"created_at"`
}

温和反应是一种温和的反应。

type ModerationResult

type ModerationResult struct {
	Flagged    bool               `json:"flagged"`
	Categories ModerationCategory `json:"categories"`
	Scores     ModerationScores   `json:"scores"`
}

中度Result代表单一输入的结果.

type ModerationScores

type ModerationScores struct {
	Hate            float64 `json:"hate"`
	HateThreatening float64 `json:"hate_threatening"`
	Harassment      float64 `json:"harassment"`
	SelfHarm        float64 `json:"self_harm"`
	SelfHarmIntent  float64 `json:"self_harm_intent"`
	Sexual          float64 `json:"sexual"`
	SexualMinors    float64 `json:"sexual_minors"`
	Violence        float64 `json:"violence"`
	ViolenceGraphic float64 `json:"violence_graphic"`
	Illicit         float64 `json:"illicit"`
	IllicitViolent  float64 `json:"illicit_violent"`
}

中调分数包含每个类别的信心分数.

type OpenAIConfig

type OpenAIConfig struct {
	APIKey  string        `json:"api_key" yaml:"api_key"`
	BaseURL string        `json:"base_url" yaml:"base_url"`
	Model   string        `json:"model,omitempty" yaml:"model,omitempty"`
	Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}

OpenAIConfig 配置 OpenAI 节奏提供者 。

func DefaultOpenAIConfig

func DefaultOpenAIConfig() OpenAIConfig

默认 OpenAIConfig 返回默认 OpenAI 温和配置 。

type OpenAIProvider

type OpenAIProvider struct {
	// contains filtered or unexported fields
}

OpenAIProvider使用OpenAI API执行节制.

func NewOpenAIProvider

func NewOpenAIProvider(cfg OpenAIConfig) *OpenAIProvider

NewOpenAIProvider创建了一个新的OpenAI温和提供商.

func (*OpenAIProvider) Moderate

适度检查政策违规内容.

func (*OpenAIProvider) Name

func (p *OpenAIProvider) Name() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL