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