Embedding Providers

Generate text embeddings using 35+ providers through PraisonAI

Overview

PraisonAI supports 35+ embedding providers through LiteLLM integration, giving you access to hundreds of embedding models with a unified API.

Quick Start

python
from praisonaiagents import embedding

# OpenAI (default)
result = embedding("Hello world", model="text-embedding-3-small")

# Cohere
result = embedding("Hello world", model="cohere/embed-english-v3.0")

# Voyage AI
result = embedding("Hello world", model="voyage/voyage-3")

# Azure OpenAI
result = embedding("Hello world", model="azure/text-embedding-ada-002")

print(f"Dimensions: {len(result.embeddings[0])}")

CLI Usage

bash
# OpenAI
praisonai embed "Hello world" --model text-embedding-3-small

# Cohere
praisonai embed "Hello world" --model cohere/embed-english-v3.0

# Any provider
praisonai embedding "Hello world" --model voyage/voyage-3

Supported Providers

Tier 1: Major Cloud Providers

ProviderPrefixExample ModelDocs
OpenAIopenai/ or nonetext-embedding-3-small→
Azure OpenAIazure/azure/text-embedding-ada-002→
Google Vertex AIvertex_ai/vertex_ai/textembedding-gecko→
Google Geminigemini/gemini/text-embedding-004→
AWS Bedrockbedrock/bedrock/amazon.titan-embed-text-v1→
Azure AIazure_ai/azure_ai/Cohere-embed-v3-english→

Tier 2: Specialized Embedding Providers

ProviderPrefixExample ModelDocs
Coherecohere/cohere/embed-english-v3.0→
Voyage AIvoyage/voyage/voyage-3→
Jina AIjina_ai/jina_ai/jina-embeddings-v3→
Mistralmistral/mistral/mistral-embed→

Tier 3: Open Source & Self-Hosted

ProviderPrefixExample ModelDocs
HuggingFacehuggingface/huggingface/BAAI/bge-large-en-v1.5→
Ollamaollama/ollama/nomic-embed-text→
Infinityinfinity/infinity/BAAI/bge-small-en-v1.5→
vLLMhosted_vllm/hosted_vllm/intfloat/e5-mistral-7b-instruct→
LM Studiolm_studio/lm_studio/nomic-embed-text→

Tier 4: Additional Providers

ProviderPrefixExample ModelDocs
Together AItogether_ai/together_ai/togethercomputer/m2-bert-80M-8k-retrieval→
Fireworks AIfireworks_ai/fireworks_ai/nomic-ai/nomic-embed-text-v1.5→
NVIDIA NIMnvidia_nim/nvidia_nim/NV-Embed-QA→
Databricksdatabricks/databricks/databricks-bge-large-en→
Snowflakesnowflake/snowflake/snowflake-arctic-embed-m→
Watsonxwatsonx/watsonx/ibm/slate-125m-english-rtrvr→
SambaNovasambanova/sambanova/E5-mistral-7b-instruct→
Nebiusnebius/nebius/BAAI/bge-en-icl→
OVHcloudovhcloud/ovhcloud/multilingual-e5-base→
Volcenginevolcengine/volcengine/doubao-embedding→

Model Selection Guide

Provider prefixes (ollama/…, azure/…) and version tags (:v1.5, :latest) are stripped during dimension lookup, so ollama/nomic-embed-text:v1.5 sizes the same as nomic-embed-text.

By Use Case

Use CaseRecommended ModelDimensions
General Purposetext-embedding-3-small1536
High Qualitytext-embedding-3-large3072
Multilingualcohere/embed-multilingual-v3.01024
Code Searchvoyage/voyage-code-31024
Cost Effectivecohere/embed-english-light-v3.0384
Self-Hostedollama/nomic-embed-text768

By Dimension Size

DimensionsModels
256-512cohere/embed-english-light-v3.0, jina_ai/jina-embeddings-v2-small-en
768-1024cohere/embed-english-v3.0, voyage/voyage-3, mistral/mistral-embed
1536text-embedding-3-small, azure/text-embedding-ada-002
3072text-embedding-3-large

Environment Variables

Each provider requires specific environment variables:

bash
# OpenAI
export OPENAI_API_KEY="sk-..."

# Azure OpenAI
export AZURE_API_KEY="..."
export AZURE_API_BASE="https://your-resource.openai.azure.com"

# Cohere
export COHERE_API_KEY="..."

# Voyage AI
export VOYAGE_API_KEY="..."

# Google
export GOOGLE_API_KEY="..."  # or GEMINI_API_KEY

# AWS Bedrock
export AWS_ACCESS_KEY_ID="..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION_NAME="us-east-1"

API Reference

Parameters

ParameterTypeDefaultDescription
inputstr or List[str]RequiredText(s) to embed
modelstrtext-embedding-3-smallModel identifier with optional provider prefix
dimensionsintNoneOutput dimensions (if supported)
encoding_formatstrfloatfloat or base64
timeoutfloat600.0Request timeout in seconds
api_keystrNoneAPI key override
api_basestrNoneAPI base URL override

Response

python
EmbeddingResult(
    embeddings=[[0.1, 0.2, ...]],  # List of embedding vectors
    model="text-embedding-3-small",
    usage={"prompt_tokens": 4, "total_tokens": 4}
)

Related