Skip to main content

Embeddings providers

The complete embeddings-provider reference for the RAG API — how to select a provider and the exact keys, endpoints, and models for OpenAI, Azure OpenAI, HuggingFace (local and TEI), Ollama, Google GenAI, Google VertexAI, and AWS Bedrock.

The RAG API embeds document chunks with a pluggable embeddings provider, chosen with EMBEDDINGS_PROVIDER. This page documents the shared selection settings and then the exact keys and models for each provider.

Selecting a provider

NamePurposeDefaultRequired
EMBEDDINGS_PROVIDERBackend: openai, azure, huggingface, huggingfacetei, ollama, google_genai, vertexai, bedrockopenaiNo
EMBEDDINGS_MODELModel name/URI (provider-specific; see each section)(per provider)No
EMBEDDINGS_CHUNK_SIZEInput tokens per embedding request (batching to avoid rate limits)200No
RAG_CHECK_EMBEDDING_CTX_LENGTHValidate input token length before embeddingtrueNo

Dedicated RAG keys take precedence

For providers the app also uses (OpenAI, Azure, Google), the RAG API prefers a dedicated RAG_* key so its credentials don't collide with the app's. Where a RAG_* key is unset it falls back to the shared key (e.g. OPENAI_API_KEY).

OpenAI

EMBEDDINGS_PROVIDER=openai

NamePurposeDefaultRequired
RAG_OPENAI_API_KEYOpenAI API key (preferred)value of OPENAI_API_KEYYes*
OPENAI_API_KEYFallback API key(unset)No
RAG_OPENAI_BASEURLCustom endpoint (proxy, local, or OpenAI-compatible server)(unset)No
RAG_OPENAI_PROXYHTTP proxy for OpenAI requests(unset)No

* One of RAG_OPENAI_API_KEY / OPENAI_API_KEY is required for this provider.

Common models: text-embedding-3-small (default, 1536 dims), text-embedding-3-large (3072 dims), text-embedding-ada-002 (legacy).

Azure OpenAI

EMBEDDINGS_PROVIDER=azure

NamePurposeDefaultRequired
RAG_AZURE_OPENAI_ENDPOINTAzure resource endpoint (https://<res>.openai.azure.com/)value of AZURE_OPENAI_ENDPOINTYes
AZURE_OPENAI_ENDPOINTFallback endpoint(unset)No
RAG_AZURE_OPENAI_API_KEYAzure API key (preferred)value of AZURE_OPENAI_API_KEYYes
AZURE_OPENAI_API_KEYFallback API key(unset)No
RAG_AZURE_OPENAI_API_VERSIONAzure OpenAI API version2023-05-15No

EMBEDDINGS_MODEL is your Azure deployment name (e.g. text-embedding-3-small).

HuggingFace (local / sentence-transformers)

EMBEDDINGS_PROVIDER=huggingface

NamePurposeDefaultRequired
EMBEDDINGS_MODELHuggingFace Hub model IDsentence-transformers/all-MiniLM-L6-v2No
HF_TOKENHuggingFace token (for gated/private models)(unset)No

Models download on first run and cache under ~/.cache/huggingface/hub/. Examples: all-MiniLM-L6-v2 (384 dims, fast), all-mpnet-base-v2 (768 dims, higher quality), intfloat/multilingual-e5-small (multilingual).

HuggingFace TEI (inference endpoint)

EMBEDDINGS_PROVIDER=huggingfacetei

NamePurposeDefaultRequired
EMBEDDINGS_MODELURL of a running Text Embeddings Inference servicehttp://huggingfacetei:3000No

The model is configured on the TEI service itself, not here. Requires a separate TEI container (a lightweight GPU inference service).

Ollama (local)

EMBEDDINGS_PROVIDER=ollama

NamePurposeDefaultRequired
OLLAMA_BASE_URLOllama service base URLhttp://ollama:11434No
EMBEDDINGS_MODELOllama embedding model (must be an embedding model)nomic-embed-textNo

Pull the model into the Ollama container first (ollama pull nomic-embed-text).

Google GenAI (Gemini)

EMBEDDINGS_PROVIDER=google_genai

NamePurposeDefaultRequired
RAG_GOOGLE_API_KEYGoogle API key (highest priority)value of GOOGLE_KEY/GOOGLE_API_KEYYes
GOOGLE_KEYFallback keyvalue of GOOGLE_API_KEYNo
GOOGLE_API_KEYFinal fallback key(unset)No
EMBEDDINGS_MODELGoogle GenAI embedding modelgemini-embedding-001No

Priority: RAG_GOOGLE_API_KEY → GOOGLE_KEY → GOOGLE_API_KEY.

Google VertexAI (GCP)

EMBEDDINGS_PROVIDER=vertexai

NamePurposeDefaultRequired
GOOGLE_APPLICATION_CREDENTIALSPath to a GCP service-account JSON file(unset)Yes
GOOGLE_CLOUD_PROJECTGCP project ID(unset)Yes
GOOGLE_CLOUD_LOCATIONGCP region for the VertexAI endpointus-central1No
RAG_GOOGLE_API_KEYAPI-key auth instead of the service-account file(unset)No
EMBEDDINGS_MODELVertexAI embedding modelgemini-embedding-001No

AWS Bedrock

EMBEDDINGS_PROVIDER=bedrock

NamePurposeDefaultRequired
AWS_ACCESS_KEY_IDAWS access key (needs bedrock:InvokeModel)(unset)Yes
AWS_SECRET_ACCESS_KEYAWS secret key(unset)Yes
AWS_DEFAULT_REGIONBedrock regionus-east-1No
AWS_SESSION_TOKENSession token for temporary STS credentials(unset)No
EMBEDDINGS_MODELBedrock embedding model IDamazon.titan-embed-text-v1No

Common models: amazon.titan-embed-text-v1, amazon.titan-embed-text-v2:0, cohere.embed-english-v3. Prefer IAM roles over static keys in production.

Choosing dimensions consistently

Don't change model dimensions on a populated store

The embedding dimension is fixed per model (e.g. 1536 for text-embedding-3-small, 384 for all-MiniLM-L6-v2). Switching to a model with a different dimension after documents are indexed will make existing vectors incompatible — you must re-index. Keep EMBEDDINGS_MODEL stable, or plan a full re-index when you change it.

Last updated on