← ClaudeAtlas

embeddingslisted

Text embeddings for semantic search and similarity. Covers model selection (OpenAI text-embedding-3, nomic-embed), chunking strategies, batch processing, cosine similarity, and vector DB integration. Use when: converting text to vectors, choosing embedding models, implementing chunking, or setting up semantic search. Triggers on: embeddings, text-embedding, vector, chunking, cosine similarity, semantic search vectors, embedding model, batch embed, dimension reduction
ArieGoldkin/claude-forge · ★ 6 · AI & Automation · score 77
Install: claude install-skill ArieGoldkin/claude-forge
# Embeddings Convert text to dense vector representations for semantic search and similarity. ## Quick Reference ```python from openai import OpenAI client = OpenAI() # Single text embedding response = client.embeddings.create( model="text-embedding-3-small", input="Your text here" ) vector = response.data[0].embedding # 1536 dimensions ``` ```python # Batch embedding (efficient) texts = ["text1", "text2", "text3"] response = client.embeddings.create( model="text-embedding-3-small", input=texts ) vectors = [item.embedding for item in response.data] ``` ## Model Selection | Model | Dims | Cost | Use Case | |-------|------|------|----------| | `text-embedding-3-small` | 1536 | $0.02/1M | General purpose | | `text-embedding-3-large` | 3072 | $0.13/1M | High accuracy | | `nomic-embed-text` (Ollama) | 768 | Free | Local/CI | ## Chunking Strategy ```python def chunk_text(text: str, chunk_size: int = 512, overlap: int = 50) -> list[str]: """Split text into overlapping chunks for embedding.""" words = text.split() chunks = [] for i in range(0, len(words), chunk_size - overlap): chunk = " ".join(words[i:i + chunk_size]) if chunk: chunks.append(chunk) return chunks ``` **Guidelines:** - Chunk size: 256-1024 tokens (512 typical) - Overlap: 10-20% for context continuity - Include metadata (title, source) with chunks ## Similarity Calculation ```python import numpy as np def cosine_similarity(a: list[float],