View Source Rag.Embedding.OpenAI (rag v0.1.0)

Functions to generate embeddings using the OpenAI API.

Summary

Functions

Passes generation.query to the OpenAI API to generate an embedding. Then, puts the embedding in generation.query_embedding.

Passes the value of ingestion at text_key to the OpenAI API to generate an embedding. Then, puts the embedding in ingestion at embedding_key.

Passes all values of ingestions at text_key to the OpenAI API to generate all embeddings in a single batch. Puts the embeddings in ingestions at embedding_key.

Types

embedding()

@type embedding() :: [number()]

Functions

generate_embedding(generation, openai_params)

@spec generate_embedding(Generation.t(), %{model: String.t(), api_key: String.t()}) ::
  Generation.t()

Passes generation.query to the OpenAI API to generate an embedding. Then, puts the embedding in generation.query_embedding.

generate_embedding(ingestion, openai_params, text_key, embedding_key)

@spec generate_embedding(
  map(),
  %{model: String.t(), api_key: String.t()},
  text_key :: atom(),
  embedding_key :: atom()
) :: %{required(atom()) => embedding(), optional(any()) => any()}

Passes the value of ingestion at text_key to the OpenAI API to generate an embedding. Then, puts the embedding in ingestion at embedding_key.

generate_embeddings_batch(ingestions, openai_params, text_key, embedding_key)

@spec generate_embeddings_batch(
  [map()],
  %{model: String.t(), api_key: String.t()},
  text_key :: atom(),
  embedding_key :: atom()
) :: [%{required(atom()) => embedding(), optional(any()) => any()}]

Passes all values of ingestions at text_key to the OpenAI API to generate all embeddings in a single batch. Puts the embeddings in ingestions at embedding_key.