Skip to main content
The AzureOpenAIEmbedder class is used to embed text data into vectors using the Azure OpenAI API. Get your key from here.

Setup

Set your API keys

export AZURE_EMBEDDER_OPENAI_API_KEY=xxx
export AZURE_EMBEDDER_OPENAI_ENDPOINT=xxx
export AZURE_EMBEDDER_DEPLOYMENT=xxx

Run PgVector

docker run -d \
  -e POSTGRES_DB=ai \
  -e POSTGRES_USER=ai \
  -e POSTGRES_PASSWORD=ai \
  -e PGDATA=/var/lib/postgresql/data/pgdata \
  -v pgvolume:/var/lib/postgresql/data \
  -p 5532:5432 \
  --name pgvector \
  agnohq/pgvector:16

Usage

azure_embedder.py
from agno.knowledge.knowledge import Knowledge
from agno.vectordb.pgvector import PgVector
from agno.knowledge.embedder.azure_openai import AzureOpenAIEmbedder

# Embed sentence in database
embeddings = AzureOpenAIEmbedder(id="text-embedding-3-small").get_embedding("The quick brown fox jumps over the lazy dog.")

# Print the embeddings and their dimensions
print(f"Embeddings: {embeddings[:5]}")
print(f"Dimensions: {len(embeddings)}")

# Use an embedder in a knowledge base
knowledge_base = Knowledge(
    vector_db=PgVector(
        db_url="postgresql+psycopg://ai:ai@localhost:5532/ai",
        table_name="azure_openai_embeddings",
        embedder=AzureOpenAIEmbedder(id="text-embedding-3-small"),
    ),
    max_results=2,
)

Params

ParameterTypeDefaultDescription
modelstr"text-embedding-ada-002"The name of the model used for generating embeddings.
dimensionsint1536The dimensionality of the embeddings generated by the model.
encoding_formatLiteral['float', 'base64']"float"The format in which the embeddings are encoded. Options are “float” or “base64”.
userstr-The user associated with the API request.
api_keystr-The API key used for authenticating requests.
api_versionstr"2024-02-01"The version of the API to use for the requests.
azure_endpointstr-The Azure endpoint for the API requests.
azure_deploymentstr-The Azure deployment name for the API requests.
base_urlstr-The base URL for the API endpoint.
azure_ad_tokenstr-The Azure Active Directory token for authentication.
azure_ad_token_providerAny-The provider for obtaining the Azure AD token.
organizationstr-The organization associated with the API request.
request_paramsOptional[Dict[str, Any]]-Additional parameters to include in the API request. Optional.
client_paramsOptional[Dict[str, Any]]-Additional parameters for configuring the API client. Optional.
openai_clientOptional[AzureOpenAIClient]-An instance of the AzureOpenAIClient to use for making API requests. Optional.
enable_batchboolFalseEnable batch processing to reduce API calls and avoid rate limits
batch_sizeint100Number of texts to process in each API call for batch operations.

Developer Resources

I