Embeddings
Embeddings are numerical representations of text that capture semantic meaning. They enable semantic search, similarity comparison, and are essential for vector databases and RAG applications.What are Embeddings?
Embeddings convert text into high-dimensional vectors (arrays of numbers) where:- Similar meanings → Similar vectors
- Different meanings → Distant vectors
- Semantic relationships are preserved
For example, “king” and “queen” will have similar embeddings because they’re semantically related, even though they share no letters.
Why Use Embeddings?
Semantic Search
Find content by meaning, not just keywords
Similarity Comparison
Compare documents for similarity
RAG Applications
Provide relevant context to LLMs
Classification
Categorize content by semantic similarity
Available Embedding Models
n8n supports embeddings from multiple providers:OpenAI Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsOpenAi
Source Reference: /home/daytona/workspace/source/packages/@n8n/nodes-langchain/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.ts:78
Models:
text-embedding-3-small(1536 dimensions) - Default, best valuetext-embedding-3-large(3072 dimensions) - Highest qualitytext-embedding-ada-002(1536 dimensions) - Legacy model
Cohere Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsCohere
Source Reference: /home/daytona/workspace/source/packages/@n8n/nodes-langchain/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.ts:13
Models:
embed-english-v3.0(1024 dimensions)embed-english-v2.0(4096 dimensions)embed-english-light-v3.0(384 dimensions)embed-english-light-v2.0(1024 dimensions)embed-multilingual-v3.0(1024 dimensions)embed-multilingual-v2.0(768 dimensions)embed-multilingual-light-v3.0(384 dimensions)
Each Cohere model uses different dimensional density. Make sure your vector store matches the model’s dimensions.
Google Embeddings
Google Gemini Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsGoogleGemini
Models:
text-embedding-004embedding-001
Google Vertex AI Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsGoogleVertex
Use when: You need Google Cloud integration
Azure OpenAI Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsAzureOpenAi
Use when: You’re using Azure OpenAI Service
Configuration:
AWS Bedrock Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsAwsBedrock
Models:
- Amazon Titan Embeddings
- Cohere Embed models via Bedrock
Ollama Embeddings (Local)
Node:@n8n/n8n-nodes-langchain.embeddingsOllama
Use when: You need local/private embeddings
Models:
nomic-embed-textall-minilmmxbai-embed-large- Any Ollama-compatible model
Hugging Face Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsHuggingFaceInference
Use when: You want open-source models via API
Popular Models:
sentence-transformers/all-MiniLM-L6-v2(384 dimensions)sentence-transformers/all-mpnet-base-v2(768 dimensions)BAAI/bge-base-en-v1.5(768 dimensions)
Mistral Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsMistralCloud
Model: mistral-embed
Lemonade AI Embeddings
Node:@n8n/n8n-nodes-langchain.embeddingsLemonade
Use when: Using Lemonade AI platform
Choosing an Embedding Model
Decision Matrix
| Use Case | Recommended Model | Dimensions | Notes |
|---|---|---|---|
| General Purpose | OpenAI text-embedding-3-small | 1536 | Best value |
| High Quality | OpenAI text-embedding-3-large | 3072 | More expensive |
| Multilingual | Cohere embed-multilingual-v3.0 | 1024 | Great for non-English |
| Budget-Conscious | Cohere embed-english-light-v3.0 | 384 | Lower cost |
| Local/Private | Ollama nomic-embed-text | 768 | No API costs |
| Azure Integration | Azure OpenAI | 1536 | Native Azure |
| AWS Integration | Bedrock Titan | 1536 | Native AWS |
Considerations
Using Embeddings in Workflows
Basic RAG Pipeline
Semantic Search
Agent with Knowledge Base
Embedding Configuration
Batch Size
From the OpenAI embeddings source code:Dimensions (OpenAI only)
OpenAI’s text-embedding-3 models support configurable dimensions:- ✅ Faster processing
- ✅ Lower storage costs
- ✅ Faster similarity search
- ❌ Lower quality
- ✅ Better quality
- ✅ More accurate results
- ❌ Slower
- ❌ Higher costs
Strip New Lines
Stripping new lines can improve embedding quality by normalizing text format.
Best Practices
Always Use the Same Model
Match Vector Store Dimensions
Ensure your vector store is configured with the correct dimensions:Optimize Chunk Size
Chunk your text before embedding:- Too small (< 200 chars): Lacks context
- Too large (> 2000 chars): Dilutes specific information
- Optimal: 500-1000 characters
- Overlap: 10-20% of chunk size
Handle Rate Limits
Monitor Costs
OpenAI Pricing (as of 2024):- text-embedding-3-small: $0.02 / 1M tokens
- text-embedding-3-large: $0.13 / 1M tokens
- text-embedding-ada-002: $0.10 / 1M tokens
- Use smaller models when appropriate
- Cache embeddings when possible
- Use lower dimensions for text-embedding-3
- Consider Ollama for development
Cache Embeddings
Avoid re-embedding the same content:Advanced Features
Custom Base URL
For OpenAI-compatible APIs:Custom Headers
Add custom HTTP headers:Timeout Configuration
Troubleshooting
Dimension Mismatch Error
Error: “Expected vector of size X, got Y” Solution: Ensure vector store dimensions match embedding model:Rate Limit Errors
Error: “Rate limit exceeded” Solutions:- Reduce batch size
- Add delays between batches
- Implement exponential backoff
- Upgrade API tier
Poor Search Quality
Possible Causes:- Wrong embedding model for query
- Poor chunk size
- Missing context
- Low-quality source data
- Verify same model for insert and query
- Adjust chunk size and overlap
- Include surrounding context in chunks
- Clean and preprocess source data
High Latency
Solutions:- Use faster models (smaller dimensions)
- Increase batch size
- Consider local models (Ollama)
- Use edge locations
- Implement caching
Comparison Table
| Provider | Model | Dimensions | Cost (per 1M tokens) | Best For |
|---|---|---|---|---|
| OpenAI | text-embedding-3-small | 1536 | $0.02 | General purpose |
| OpenAI | text-embedding-3-large | 3072 | $0.13 | High quality |
| Cohere | embed-english-v3.0 | 1024 | $0.10 | English text |
| Cohere | embed-multilingual-v3.0 | 1024 | $0.10 | Multilingual |
| Cohere | embed-english-light-v3.0 | 384 | $0.10 | Budget |
| Ollama | nomic-embed-text | 768 | Free | Local/Private |
| Hugging Face | all-MiniLM-L6-v2 | 384 | Free | Development |
Next Steps
Vector Stores
Store your embeddings in vector databases
RAG Tutorial
Build a complete RAG application
Text Splitters
Learn about chunking strategies
Semantic Search
Implement semantic search