class RubyLLM::Moderation
Identify potentially harmful content in text. platform.openai.com/docs/guides/moderation
Attributes
Public Class Methods
# File lib/ruby_llm/moderation.rb, line 15 def self.moderate(input, model: nil, provider: nil, assume_model_exists: false, context: nil) config = context&.config || RubyLLM.config model ||= config.default_moderation_model || 'omni-moderation-latest' model, provider_instance = Models.resolve(model, provider: provider, assume_exists: assume_model_exists, config: config) model_id = model.id provider_instance.moderate(input, model: model_id) end
Source
# File lib/ruby_llm/moderation.rb, line 9 def initialize(id:, model:, results:) @id = id @model = model @results = results end
Public Instance Methods
Source
# File lib/ruby_llm/moderation.rb, line 52 def categories results.first&.dig('categories') || {} end
Get categories for the first result (most common case)
Source
# File lib/ruby_llm/moderation.rb, line 47 def category_scores results.first&.dig('category_scores') || {} end
Get category scores for the first result (most common case)
Source
# File lib/ruby_llm/moderation.rb, line 30 def content results end
Convenience method to get content from moderation result
Source
# File lib/ruby_llm/moderation.rb, line 35 def flagged? results.any? { |result| result['flagged'] } end
Check if any content was flagged
Source
# File lib/ruby_llm/moderation.rb, line 40 def flagged_categories results.flat_map do |result| result['categories']&.select { |_category, flagged| flagged }&.keys || [] end.uniq end
Get all flagged categories across all results