HuggingFace sentence-transformers embeddings
Paid embedding APIs are convenient, but for a personal book tutor that might re-embed thousands of chunks, they add up. sentence-transformers gives you a small, fast, CPU-friendly embedding model that ships with HuggingFace and costs nothing to run.
import os
os.environ['TOKENIZERS_PARALLELISM'] = 'false'
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(
model_name='sentence-transformers/all-MiniLM-L6-v2'
)
vec = embeddings.embed_query('What is conversational RAG?')
print(f'Vector length: {len(vec)}')all-MiniLM-L6-v2 produces 384-dimension vectors, runs well on CPU, and is small enough to download in a few seconds. The TOKENIZERS_PARALLELISM flag silences a noisy warning when used inside multi-threaded pipelines.
Sometimes, but not automatically. Bigger models produce higher-dimensional vectors that capture finer semantic distinctions, which helps on hard retrieval tasks. For a single-book tutor where chunks are already topically narrow, MiniLM is usually enough. Upgrade when you see real failure cases, not because a bigger model sounds better.
Quiz: Quiz
Loading practice…