Class: Aigen::Google::SafetySettings

Inherits:
Object
  • Object
show all
Defined in:
lib/aigen/google/safety_settings.rb

Overview

SafetySettings configures content filtering for the Gemini API. Provides constants for harm categories and thresholds, with sensible defaults.

Examples:

Using default settings (BLOCK_MEDIUM_AND_ABOVE for all categories)

settings = Aigen::Google::SafetySettings.default

Custom settings

settings = Aigen::Google::SafetySettings.new([
  {
    category: Aigen::Google::SafetySettings::HARM_CATEGORY_HATE_SPEECH,
    threshold: Aigen::Google::SafetySettings::BLOCK_LOW_AND_ABOVE
  }
])

Constant Summary collapse

HARM_CATEGORY_HATE_SPEECH =

Harm category constants

"HARM_CATEGORY_HATE_SPEECH"
HARM_CATEGORY_DANGEROUS_CONTENT =
"HARM_CATEGORY_DANGEROUS_CONTENT"
HARM_CATEGORY_HARASSMENT =
"HARM_CATEGORY_HARASSMENT"
HARM_CATEGORY_SEXUALLY_EXPLICIT =
"HARM_CATEGORY_SEXUALLY_EXPLICIT"
BLOCK_NONE =

Threshold constants

"BLOCK_NONE"
BLOCK_LOW_AND_ABOVE =
"BLOCK_LOW_AND_ABOVE"
BLOCK_MEDIUM_AND_ABOVE =
"BLOCK_MEDIUM_AND_ABOVE"
BLOCK_ONLY_HIGH =
"BLOCK_ONLY_HIGH"

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(settings) ⇒ SafetySettings

Initializes a SafetySettings instance with an array of settings.

Examples:

settings = SafetySettings.new([
  {category: HARM_CATEGORY_HATE_SPEECH, threshold: BLOCK_LOW_AND_ABOVE}
])

Parameters:

  • settings (Array<Hash>)

    array of safety settings Each setting: “HARM_CATEGORY_…”, threshold: “BLOCK_…”



60
61
62
# File 'lib/aigen/google/safety_settings.rb', line 60

def initialize(settings)
  @settings = settings
end

Class Method Details

.defaultArray<Hash>

Returns default safety settings with BLOCK_MEDIUM_AND_ABOVE for all categories.

Examples:

defaults = SafetySettings.default
# => [
#   {category: "HARM_CATEGORY_HATE_SPEECH", threshold: "BLOCK_MEDIUM_AND_ABOVE"},
#   {category: "HARM_CATEGORY_DANGEROUS_CONTENT", threshold: "BLOCK_MEDIUM_AND_ABOVE"},
#   ...
# ]

Returns:

  • (Array<Hash>)

    array of default safety settings



42
43
44
45
46
47
48
49
# File 'lib/aigen/google/safety_settings.rb', line 42

def self.default
  [
    {category: HARM_CATEGORY_HATE_SPEECH, threshold: BLOCK_MEDIUM_AND_ABOVE},
    {category: HARM_CATEGORY_DANGEROUS_CONTENT, threshold: BLOCK_MEDIUM_AND_ABOVE},
    {category: HARM_CATEGORY_HARASSMENT, threshold: BLOCK_MEDIUM_AND_ABOVE},
    {category: HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold: BLOCK_MEDIUM_AND_ABOVE}
  ]
end

Instance Method Details

#to_hArray<Hash>

Serializes the safety settings to Gemini API format.

Examples:

settings = SafetySettings.new([
  {category: HARM_CATEGORY_HATE_SPEECH, threshold: BLOCK_MEDIUM_AND_ABOVE}
])
settings.to_h # => [{category: "HARM_CATEGORY_HATE_SPEECH", threshold: "BLOCK_MEDIUM_AND_ABOVE"}]

Returns:

  • (Array<Hash>)

    the settings array in API format



73
74
75
# File 'lib/aigen/google/safety_settings.rb', line 73

def to_h
  @settings
end