Packages
openai_ex
0.5.0
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/audio/speech.ex
defmodule OpenaiEx.Audio.Speech do
@moduledoc """
This module provides an implementation of the OpenAI audio speech API. The API
reference can be found at https://platform.openai.com/docs/api-reference/audio/createSpeech.
## API Fields
The following fields can be used as parameters when creating a new audio speech request:
- `:input`
- `:model`
- `:voice`
- `:response_format`
- `:speed`
"""
@api_fields [
:input,
:model,
:voice,
:response_format,
:speed
]
@doc """
Creates a new audio speech request with the given arguments.
## Arguments
- `args`: A list of key-value pairs, or a map, representing the fields of the audio speech request.
## Returns
A map containing the fields of the audio speech request.
The `:file` and `:model` fields are required.
"""
def new(args = [_ | _]) do
args |> Enum.into(%{}) |> new()
end
def new(args = %{input: _, model: _, voice: _}) do
args |> Map.take(@api_fields)
end
@doc """
Calls the audio speech endpoint.
## Arguments
- `openai`: A map containing the OpenAI configuration.
- `audio`: A map containing the audio speech request.
## Returns
A map containing the audio speech response.
See https://platform.openai.com/docs/api-reference/audio/createSpeech for more information.
"""
def create(openai = %OpenaiEx{}, audio = %{}) do
openai
|> OpenaiEx.Http.post_no_decode("/audio/speech", json: audio |> Map.take(@api_fields))
end
end