Назад към всички

Embeddings

// Generate, store, and search vector embeddings with provider selection, chunking strategies, and similarity search optimization.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
nameEmbeddings
slugembeddings
descriptionGenerate, store, and search vector embeddings with provider selection, chunking strategies, and similarity search optimization.

When to Use

User wants to convert text/images to vectors, build semantic search, or integrate embeddings into applications.

Quick Reference

TopicFile
Provider comparison & selectionproviders.md
Chunking strategies & codechunking.md
Vector database patternsstorage.md
Search & retrieval tuningsearch.md

Core Capabilities

  1. Generate embeddings — Call provider APIs (OpenAI, Cohere, Voyage, local models)
  2. Chunk content — Split documents with overlap, semantic boundaries, token limits
  3. Store vectors — Insert into Pinecone, Weaviate, Qdrant, pgvector, Chroma
  4. Similarity search — Query with top-k, filters, hybrid search
  5. Batch processing — Handle large datasets with rate limiting and retries
  6. Model comparison — Evaluate embedding quality for specific use cases

Decision Checklist

Before recommending approach, ask:

  • What content type? (text, code, images, multimodal)
  • Volume and update frequency?
  • Latency requirements? (real-time vs batch)
  • Budget constraints? (API costs vs self-hosted)
  • Existing infrastructure? (cloud provider, database)

Critical Rules

  • Same model everywhere — Query embeddings MUST use identical model as document embeddings
  • Normalize before storage — Most similarity metrics assume unit vectors
  • Chunk with overlap — 10-20% overlap prevents context loss at boundaries
  • Batch API calls — Never embed one item at a time in production
  • Cache embeddings — Regenerating is expensive; store with source hash
  • Monitor dimensions — Higher isn't always better; 768-1536 is usually optimal

Provider Quick Selection

NeedProviderWhy
Best quality, any costOpenAI text-embedding-3-largeTop benchmarks
Cost-sensitiveOpenAI text-embedding-3-small5x cheaper, 80% quality
MultilingualCohere embed-multilingual-v3100+ languages
Code/technicalVoyage voyage-code-2Optimized for code
Privacy/offlineLocal (e5, bge, nomic)No data leaves machine
ImagesOpenAI CLIP, Cohere multimodalCross-modal search

Common Patterns

# Batch embedding with retry
def embed_batch(texts, model="text-embedding-3-small"):
    results = []
    for chunk in batched(texts, 100):  # API limit
        response = client.embeddings.create(input=chunk, model=model)
        results.extend([e.embedding for e in response.data])
    return results

# Similarity search with filter
results = index.query(
    vector=query_embedding,
    top_k=10,
    filter={"category": "technical"},
    include_metadata=True
)