barrel_embed_vertex (barrel_embed v2.3.1)

View Source

Google Vertex AI embedding provider

Uses Google Vertex AI's embedding API for embedding generation. Provides access to Google's embedding models including Gecko and newer models.

Requirements

- A Google Cloud project with Vertex AI API enabled - Authentication via access token or API key

Option 1: Access Token (Recommended for development)

Get a token with: gcloud auth print-access-token - Set GOOGLE_ACCESS_TOKEN environment variable - Or pass access_token => <<"ya29...">>> in config

Option 2: API Key

Create an API key in Google Cloud Console - Set GOOGLE_API_KEY environment variable - Or pass api_key => <<"...">>> in config

Configuration

   Config = #{
       access_token => <<"ya29...">>,                  %% Access token (or use env var)
       project => <<"my-project">>,                    %% GCP project ID (required)
       region => <<"us-central1">>,                    %% GCP region (default)
       model => <<"text-embedding-004">>,              %% Model name (default, 768 dims)
       timeout => 30000,                               %% Timeout in ms (default)
       dimension => 768                                %% Vector dimension (default)
   }.

Supported Models

- <<"text-embedding-004">> - Default, 768 dims, latest - <<"text-embedding-005">> - 768 dims, newest - <<"textembedding-gecko@001">> - 768 dims, legacy - <<"textembedding-gecko@003">> - 768 dims - <<"textembedding-gecko-multilingual@001">> - 768 dims, multilingual - <<"text-multilingual-embedding-002">> - 768 dims, multilingual

Summary

Functions

Check if Vertex AI API is available.

Get dimension for this provider.

Generate embedding for a single text.

Generate embeddings for multiple texts. Vertex AI supports batch embedding.

Initialize the provider.

Provider name.

Functions

available(Config)

-spec available(map()) -> boolean().

Check if Vertex AI API is available.

dimension(Config)

-spec dimension(map()) -> pos_integer().

Get dimension for this provider.

embed(Text, Config)

-spec embed(binary(), map()) -> {ok, [float()]} | {error, term()}.

Generate embedding for a single text.

embed_batch(Texts, Config)

-spec embed_batch([binary()], map()) -> {ok, [[float()]]} | {error, term()}.

Generate embeddings for multiple texts. Vertex AI supports batch embedding.

init(Config)

-spec init(map()) -> {ok, map()} | {error, term()}.

Initialize the provider.

name()

-spec name() -> atom().

Provider name.