View Source Rag.Generation (rag v0.2.1)

Functions to generate a response and helpers to work with a generation struct.

Summary

Types

t()

Represents a generation, the main datastructure in rag.

Functions

Appends an error to the existing list of errors.

Passes generation.prompt to response_function or provider to generate a response. If successful, puts the result in generation.response.

Gets the evaluation at key in generation.evaluations.

Gets the retrieval result at key in generation.retrieval_results.

Sets halted? to true to skip all remaining operations.

Creates a new generation struct from a query.

Puts context in generation.context.

Puts context_sources in generation.context_sources.

Puts evaluation at key in generation.evaluations.

Puts prompt in generation.prompt.

Puts query_embedding in generation.query_embedding.

Puts response in generation.response.

Puts retrieval_result at key in generation.retrieval_results.

Types

embedding()

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

provider()

@type provider() :: struct()

response_function()

@type response_function() :: (String.t(), keyword() -> String.t())

t()

@type t() :: %Rag.Generation{
  context: String.t() | nil,
  context_sources: [String.t()],
  errors: [any()],
  evaluations: %{optional(atom()) => any()},
  halted?: boolean(),
  prompt: String.t() | nil,
  query: String.t() | nil,
  query_embedding: embedding() | nil,
  response: String.t() | nil,
  retrieval_results: %{optional(atom()) => any()}
}

Represents a generation, the main datastructure in rag.

Functions

add_error(generation, error)

@spec add_error(t(), any()) :: t()

Appends an error to the existing list of errors.

generate_response(generation, provider)

@spec generate_response(t(), response_function() | provider()) :: t()

Passes generation.prompt to response_function or provider to generate a response. If successful, puts the result in generation.response.

get_evaluation(generation, key)

@spec get_evaluation(t(), key :: atom()) :: any()

Gets the evaluation at key in generation.evaluations.

get_retrieval_result(generation, key)

@spec get_retrieval_result(t(), key :: atom()) :: any()

Gets the retrieval result at key in generation.retrieval_results.

halt(generation)

@spec halt(t()) :: t()

Sets halted? to true to skip all remaining operations.

new(query)

@spec new(String.t()) :: t()

Creates a new generation struct from a query.

put_context(generation, context)

@spec put_context(t(), context :: String.t()) :: t()

Puts context in generation.context.

put_context_sources(generation, context_sources)

@spec put_context_sources(t(), context_sources :: [String.t()]) :: t()

Puts context_sources in generation.context_sources.

put_evaluation(generation, key, evaluation)

@spec put_evaluation(t(), key :: atom(), evaluation :: any()) :: t()

Puts evaluation at key in generation.evaluations.

put_prompt(generation, prompt)

@spec put_prompt(t(), prompt :: String.t()) :: t()

Puts prompt in generation.prompt.

put_query_embedding(generation, query_embedding)

@spec put_query_embedding(t(), query_embedding :: [number()]) :: t()

Puts query_embedding in generation.query_embedding.

put_response(generation, response)

@spec put_response(t(), response :: String.t()) :: t()

Puts response in generation.response.

put_retrieval_result(generation, key, retrieval_result)

@spec put_retrieval_result(t(), key :: atom(), retrieval_result :: map()) :: t()

Puts retrieval_result at key in generation.retrieval_results.