Class: LLM::OpenAI::Moderations

Inherits:
Object
  • Object
show all
Defined in:
lib/llm/providers/openai/moderations.rb

Overview

The LLM::OpenAI::Moderations class provides a moderations object for interacting with OpenAI’s moderations API. The moderations API can categorize content into different categories, such as hate speech, self-harm, and sexual content. It can also provide a confidence score for each category.

Examples:

#!/usr/bin/env ruby
require "llm"

llm = LLM.openai(key: ENV["KEY"])
res = llm.moderations.create input: "I hate you"
mod = res.moderations[0]
print "categories: #{mod.categories}", "\n"
print "scores: #{mod.scores}", "\n"
#!/usr/bin/env ruby
require "llm"

llm = LLM.openai(key: ENV["KEY"])
res = llm.moderations.create input: URI.parse("https://example.com/image.png")
mod = res.moderations[0]
print "categories: #{mod.categories}", "\n"
print "scores: #{mod.scores}", "\n"

See Also:

Instance Method Summary collapse

Constructor Details

#initialize(provider) ⇒ LLM::OpenAI::Moderations

Returns a new Moderations object

Parameters:



40
41
42
# File 'lib/llm/providers/openai/moderations.rb', line 40

def initialize(provider)
  @provider = provider
end

Instance Method Details

#create(input:, model: "omni-moderation-latest", **params) ⇒ LLM::Response

Create a moderation

Parameters:

  • input (String, URI, Array<String, URI>)
  • model (String, LLM::Model) (defaults to: "omni-moderation-latest")

    The model to use

Returns:

See Also:



51
52
53
54
55
56
57
# File 'lib/llm/providers/openai/moderations.rb', line 51

def create(input:, model: "omni-moderation-latest", **params)
  req = Net::HTTP::Post.new("/v1/moderations", headers)
  input = Format::ModerationFormat.new(input).format
  req.body = JSON.dump({input:, model:}.merge!(params))
  res = execute(request: req)
  LLM::Response.new(res).extend(LLM::OpenAI::Response::Moderations)
end