Packages
openai_ex
0.2.1
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/embedding.ex
defmodule OpenaiEx.Embedding do
@moduledoc """
This module provides an implementation of the OpenAI embeddings API. The API reference can be found at https://platform.openai.com/docs/api-reference/embeddings.
## API Fields
The following fields can be used as parameters when creating a new embedding:
- `:model`
- `:input`
- `:user`
"""
@api_fields [
:model,
:input,
:user
]
@doc """
Creates a new embedding request with the given arguments.
## Arguments
- `args`: A list of key-value pairs, or a map, representing the fields of the embedding request.
## Returns
A map containing the fields of the embedding request.
The `:model` and `:input` fields are required.
Example usage:
iex> _request = OpenaiEx.Embedding.new(model: "davinci", input: "This is a test")
%{input: "This is a test", model: "davinci"}
iex> _request = OpenaiEx.Embedding.new(%{model: "davinci", input: "This is a test"})
%{input: "This is a test", model: "davinci"}
"""
def new(args = [_ | _]) do
args |> Enum.into(%{}) |> new()
end
def new(args = %{model: model, input: input}) do
%{
model: model,
input: input
}
|> Map.merge(args)
|> Map.take(@api_fields)
end
@doc """
Calls the embedding endpoint.
## Arguments
- `openai`: The OpenAI configuration to use.
- `embedding`: The embedding request to send.
## Returns
A map containing the fields of the embedding response.
See https://platform.openai.com/docs/api-reference/embeddings/create for more information.
"""
def create(openai = %OpenaiEx{}, embedding = %{}) do
openai |> OpenaiEx.Http.post("/embeddings", json: embedding)
end
end