glopenai/moderation

Types

Whether each category was flagged. Field names use slashes in JSON (e.g. “hate/threatening”), mapped to underscore-separated names in Gleam.

pub type Categories {
  Categories(
    hate: Bool,
    hate_threatening: Bool,
    harassment: Bool,
    harassment_threatening: Bool,
    illicit: Bool,
    illicit_violent: Bool,
    self_harm: Bool,
    self_harm_intent: Bool,
    self_harm_instructions: Bool,
    sexual: Bool,
    sexual_minors: Bool,
    violence: Bool,
    violence_graphic: Bool,
  )
}

Constructors

  • Categories(
      hate: Bool,
      hate_threatening: Bool,
      harassment: Bool,
      harassment_threatening: Bool,
      illicit: Bool,
      illicit_violent: Bool,
      self_harm: Bool,
      self_harm_intent: Bool,
      self_harm_instructions: Bool,
      sexual: Bool,
      sexual_minors: Bool,
      violence: Bool,
      violence_graphic: Bool,
    )

Which input types were applied to each category.

pub type CategoryAppliedInputTypes {
  CategoryAppliedInputTypes(
    hate: List(ModInputType),
    hate_threatening: List(ModInputType),
    harassment: List(ModInputType),
    harassment_threatening: List(ModInputType),
    illicit: List(ModInputType),
    illicit_violent: List(ModInputType),
    self_harm: List(ModInputType),
    self_harm_intent: List(ModInputType),
    self_harm_instructions: List(ModInputType),
    sexual: List(ModInputType),
    sexual_minors: List(ModInputType),
    violence: List(ModInputType),
    violence_graphic: List(ModInputType),
  )
}

Constructors

Confidence scores for each category.

pub type CategoryScore {
  CategoryScore(
    hate: Float,
    hate_threatening: Float,
    harassment: Float,
    harassment_threatening: Float,
    illicit: Float,
    illicit_violent: Float,
    self_harm: Float,
    self_harm_intent: Float,
    self_harm_instructions: Float,
    sexual: Float,
    sexual_minors: Float,
    violence: Float,
    violence_graphic: Float,
  )
}

Constructors

  • CategoryScore(
      hate: Float,
      hate_threatening: Float,
      harassment: Float,
      harassment_threatening: Float,
      illicit: Float,
      illicit_violent: Float,
      self_harm: Float,
      self_harm_intent: Float,
      self_harm_instructions: Float,
      sexual: Float,
      sexual_minors: Float,
      violence: Float,
      violence_graphic: Float,
    )

A single moderation result for one input.

pub type ContentModerationResult {
  ContentModerationResult(
    flagged: Bool,
    categories: Categories,
    category_scores: CategoryScore,
    category_applied_input_types: CategoryAppliedInputTypes,
  )
}

Constructors

Request to create a moderation.

pub type CreateModerationRequest {
  CreateModerationRequest(
    input: ModerationInput,
    model: option.Option(String),
  )
}

Constructors

Response from creating a moderation.

pub type CreateModerationResponse {
  CreateModerationResponse(
    id: String,
    model: String,
    results: List(ContentModerationResult),
  )
}

Constructors

The type of input that was moderated.

pub type ModInputType {
  TextInput
  ImageInput
}

Constructors

  • TextInput
  • ImageInput

A content part for multi-modal moderation input, tagged by “type”.

pub type ModerationContentPart {
  TextPart(text: String)
  ImageUrlPart(image_url: String)
}

Constructors

  • TextPart(text: String)
  • ImageUrlPart(image_url: String)

Input for moderation requests. Mirrors the Rust ModerationInput untagged enum.

pub type ModerationInput {
  StringInput(String)
  StringArrayInput(List(String))
  MultiModalInput(List(ModerationContentPart))
}

Constructors

Values

pub fn categories_decoder() -> decode.Decoder(Categories)
pub fn categories_to_json(categories: Categories) -> json.Json
pub fn category_applied_input_types_to_json(
  types: CategoryAppliedInputTypes,
) -> json.Json
pub fn category_score_to_json(scores: CategoryScore) -> json.Json
pub fn create_moderation_request_to_json(
  request: CreateModerationRequest,
) -> json.Json
pub fn create_request(
  config: config.Config,
  params: CreateModerationRequest,
) -> request.Request(String)

Build a request to create a moderation.

pub fn create_response(
  response: response.Response(String),
) -> Result(CreateModerationResponse, error.GlopenaiError)

Parse the response from creating a moderation.

pub fn mod_input_type_decoder() -> decode.Decoder(ModInputType)
pub fn mod_input_type_to_json(
  input_type: ModInputType,
) -> json.Json
pub fn moderation_content_part_decoder() -> decode.Decoder(
  ModerationContentPart,
)
pub fn moderation_content_part_to_json(
  part: ModerationContentPart,
) -> json.Json
pub fn moderation_input_decoder() -> decode.Decoder(
  ModerationInput,
)
pub fn moderation_input_to_json(
  input: ModerationInput,
) -> json.Json
pub fn new_create_request(
  input input: ModerationInput,
) -> CreateModerationRequest

Create a new moderation request with the required input.

pub fn with_model(
  request: CreateModerationRequest,
  model: String,
) -> CreateModerationRequest

Set the moderation model.

Search Document