Packages
openai_ex
0.9.3
0.9.21
0.9.20
0.9.19
0.9.18
0.9.17
0.9.16
0.9.15
0.9.14
0.9.13
0.9.12
0.9.11
0.9.10
0.9.9
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Community maintained Elixir library for OpenAI API
Current section
Files
Jump to
Current section
Files
lib/openai_ex/moderations.ex
defmodule OpenaiEx.Moderations do
@moduledoc """
This module provides an implementation of the OpenAI moderation API. The API reference can be found at https://platform.openai.com/docs/api-reference/moderations.
"""
alias OpenaiEx.Http
@api_fields [
:input,
:model
]
@doc """
Creates a new moderation request with the given arguments.
Example usage:
iex> OpenaiEx.Moderations.new(input: "This is a test")
%{
input: "This is a test"
}
iex> OpenaiEx.Moderations.new(%{input: "This is a test"})
%{
input: "This is a test"
}
"""
def new(args = [_ | _]) do
args |> Enum.into(%{}) |> new()
end
def new(args = %{input: _}) do
args |> Map.take(@api_fields)
end
@doc """
Calls the moderation endpoint.
"""
def create!(openai = %OpenaiEx{}, moderation) do
openai |> create(moderation) |> Http.bang_it!()
end
def create(openai = %OpenaiEx{}, moderation) do
openai |> Http.post("/moderations", json: moderation |> Map.take(@api_fields))
end
end