barrel_embed_azure (barrel_embed v2.3.0)

View Source

Azure OpenAI embedding provider

Uses Azure OpenAI's Embeddings API for embedding generation. Provides enterprise-grade embeddings with Azure security and compliance.

Requirements

- Azure OpenAI resource with an embedding model deployment - API key from Azure Portal -> Your Resource -> Keys

Configuration requires either: - Environment variables: AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT - Or passed in config directly

Configuration

   Config = #{
       api_key => <<"...">>,                           %% API key (or use env var)
       endpoint => <<"https://your-resource.openai.azure.com">>,  %% Azure endpoint
       deployment => <<"text-embedding-ada-002">>,     %% Deployment name
       api_version => <<"2024-02-01">>,                %% API version (default)
       timeout => 30000,                               %% Timeout in ms (default)
       dimension => 1536                               %% Vector dimension (default)
   }.

Supported Models

Deploy these models in Azure OpenAI Studio: - <<"text-embedding-3-small">> - 1536 dims, fast and cost-effective - <<"text-embedding-3-large">> - 3072 dims, highest quality - <<"text-embedding-ada-002">> - 1536 dims, legacy

Summary

Functions

Check if Azure OpenAI API is available.

Get dimension for this provider.

Generate embedding for a single text.

Generate embeddings for multiple texts. Azure OpenAI supports native batch embedding.

Initialize the provider.

Provider name.

Functions

available(Config)

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

Check if Azure OpenAI 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. Azure OpenAI supports native batch embedding.

init(Config)

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

Initialize the provider.

name()

-spec name() -> atom().

Provider name.