Module: VectorAmp::Embedding
- Defined in:
- lib/vector_amp/embedding.rb
Overview
Embedding configuration defaults and helpers.
SDK callers rarely need to specify an embedding model. By default datasets use the managed VectorAmp embedding model and the SDK infers the vector dimension.
Constant Summary collapse
- DEFAULT_PROVIDER =
Default embedding provider used when none is supplied.
"vectoramp"- DEFAULT_MODEL =
Default embedding model used when none is supplied.
"VectorAmp-Embedding-4B"- DIM_TABLE =
Built-in dimension inference for known provider/model pairs.
{ ["vectoramp", "VectorAmp-Embedding-4B"] => 2560, ["openai", "text-embedding-3-small"] => 1536, ["openai", "text-embedding-3-large"] => 3072, }.freeze
Class Method Summary collapse
-
.default_embedding ⇒ Hash
The fully managed default embedding configuration.
-
.infer_dim(embedding) ⇒ Integer?
Infer the vector dimension for an embedding config, or nil when unknown.
-
.normalize(embedding) ⇒ Hash
Normalize a user-supplied embedding value into a config hash.
-
.openai(size = "small") ⇒ Hash
Build an OpenAI embedding configuration.
Class Method Details
.default_embedding ⇒ Hash
The fully managed default embedding configuration.
25 26 27 |
# File 'lib/vector_amp/embedding.rb', line 25 def { provider: DEFAULT_PROVIDER, model: DEFAULT_MODEL } end |
.infer_dim(embedding) ⇒ Integer?
Infer the vector dimension for an embedding config, or nil when unknown.
61 62 63 64 65 |
# File 'lib/vector_amp/embedding.rb', line 61 def infer_dim() provider = [:provider] || ["provider"] model = [:model] || ["model"] DIM_TABLE[[provider.to_s, model.to_s]] end |
.normalize(embedding) ⇒ Hash
Normalize a user-supplied embedding value into a config hash.
Accepts a Hash ({ provider:, model:, secret_ref? }) or a String model name
(assumed to use the default provider).
48 49 50 51 52 53 54 55 56 |
# File 'lib/vector_amp/embedding.rb', line 48 def normalize() case when nil then when String then { provider: DEFAULT_PROVIDER, model: } when Hash then else raise ArgumentError, "embedding must be a Hash or String" end end |
.openai(size = "small") ⇒ Hash
Build an OpenAI embedding configuration.
33 34 35 36 37 38 39 40 41 |
# File 'lib/vector_amp/embedding.rb', line 33 def openai(size = "small") model = case size.to_s when "small" then "text-embedding-3-small" when "large" then "text-embedding-3-large" else raise ArgumentError, %(openai size must be "small" or "large", got #{size.inspect}) end { provider: "openai", model: model } end |