Class: OmniAI::Google::Embed

Inherits:
Embed
  • Object
show all
Defined in:
lib/omniai/google/embed.rb

Overview

A Google embed implementation.

Usage:

input = "..."
response = OmniAI::Google::Embed.process!(input, client: client)
response.embedding [0.0, ...]

Defined Under Namespace

Modules: Model

Constant Summary collapse

DEFAULT_MODEL =
Model::EMBEDDING
BATCH_EMBED_CONTENTS_DESERIALIZER =
proc do |data, *|
  data["embeddings"].map { |embedding| embedding["values"] }
end
PREDICT_EMBEDDINGS_DESERIALIZER =
proc do |data, *|
  data["predictions"].map { |prediction| prediction["embeddings"]["values"] }
end
PREDICT_USAGE_DESERIALIZER =
proc do |data, *|
  tokens = data["predictions"].sum { |prediction| prediction["embeddings"]["statistics"]["token_count"] }

  Usage.new(prompt_tokens: tokens, total_tokens: tokens)
end
EMBED_CONTENT_DESERIALIZER =
proc do |data, *|
  [data["embedding"]["values"]]
end
USAGE_METADATA_DESERIALIZER =
proc do |data, *|
  prompt_tokens = data.dig("usageMetadata", "promptTokenCount")
  total_tokens = data.dig("usageMetadata", "totalTokenCount")

  Usage.new(prompt_tokens:, total_tokens:)
end
BATCH_EMBED_CONTENTS_CONTEXT =

Returns:

  • (Context)
Context.build do |context|
  context.deserializers[:embeddings] = BATCH_EMBED_CONTENTS_DESERIALIZER
  context.deserializers[:usage] = USAGE_METADATA_DESERIALIZER
end
PREDICT_CONTEXT =

Returns:

  • (Context)
Context.build do |context|
  context.deserializers[:embeddings] = PREDICT_EMBEDDINGS_DESERIALIZER
  context.deserializers[:usage] = PREDICT_USAGE_DESERIALIZER
end
EMBED_CONTENT_CONTEXT =

Returns:

  • (Context)
Context.build do |context|
  context.deserializers[:embeddings] = EMBED_CONTENT_DESERIALIZER
  context.deserializers[:usage] = USAGE_METADATA_DESERIALIZER
end