Prompt
How do I choose between different LLM APIs for embeddings and semantic search?
Latest observation
A good way to choose is to treat embeddings + semantic search as a product decision, not just a model decision. The best API depends on your data, latency/cost goals, and how much control you need over retrieval quality.
1) Start with your use case
Different needs point to different APIs:
- General semantic search / RAG over text
Pick a strong, cheap embedding model with stable dimensions and good retrieval quality. - Multilingual search
Prefer models known to work well across languages. - Code search / technical docs
Use models with good performance on code and mixed text. - High-stakes retrieval
Prioritize recall/precision, consistency, and evaluation tooling over raw cost. - Very large scale
Cost per 1M tokens/text chunks, batch support, and index size matter a lot.
2) Compare on the right dimensions
A. Retrieval quality
This is the most important factor. Evaluate:
- Recall@k: does the right document show up in the top results?
- MRR / nDCG: how high does the best match rank?
- Domain fit: does it work on your own data, not just public benchmarks?
A model that scores well on generic benchmarks may underperform on your domain.
B. Embedding dimensionality
Lower dimensions:
- smaller index
- faster ANN search
- lower storage cost
Higher dimensions:
- sometimes better retrieval quality
- higher memory cost
Choose based on scale and quality tradeoff.
C. Cost
Consider:
- embedding generation cost
- re-embedding cost when models change
- vector DB storage and query costs
- reranking costs if you use a second-stage model
At scale, the cheapest API can become expensive if it requires more chunks or more reranking.
D. Latency and throughput
Look at:
- embedding API latency
- batch embedding support
- rate limits
- query-time vector search speed
If you need real-time search, latency matters as much as quality.
E. Consistency and versioning
Important questions:
- Does the provider keep embeddings stable across versions?
- Can you pin a model version?
- How often do embeddings change?
- What is the migration path if the model is deprecated?
A “better” model can still be risky if it forces frequent re-indexing.
F. Ecosystem and tooling
Consider:
- easy SDKs
- support for batching
- integration with your vector database
- reranking models
- hybrid search support
- observability and evaluation tools
3) Don’t rely on embeddings alone
For semantic search, the best systems often use:
- Hybrid retrieval: keyword/BM25 + embeddings
- Reranking: retrieve top 50–200, then rerank with a cross-encoder or LLM
- Metadata filtering: use filters for date, author, tenant, permissions, etc.
This often matters more than which embedding API you choose.
4) Build a small benchmark on your own data
The most practical approach is to test 2–4 APIs on a representative set:
- Collect ~50–200 real queries.
- Create relevance judgments or use click logs.
- Compare:
- top-1 accuracy
- recall@5 / recall@10
- latency
- cost per query
- Test:
- short queries
- long queries
- multilingual queries
- noisy queries
If you can’t label data, use proxy tests:
- known question-answer pairs
- document duplicates
- search logs
- human review of top results
5) A simple decision guide
Choose an embedding API that is:
- best quality if retrieval accuracy is the priority
- lowest cost if you have huge volume and can tolerate minor quality loss
- most stable/versionable if reindexing is expensive
- multilingual/specialized if your domain demands it
- fastest/batch-friendly if throughput is the bottleneck
6) Common strategy
A strong default architecture is:
- Use a solid embedding model for candidate retrieval
- Store vectors in your preferred vector DB
- Use hybrid search if keyword relevance matters
- Rerank top results with a stronger model
- Measure with your own queries and iterate
This usually beats picking the “best” embedding API in isolation.
7) Questions to ask vendors
Before committing, ask:
- What is the embedding dimension?
- Is the model multilingual?
- Can I pin a version?
- What are the rate limits?
- Is batching supported?
- What is the pricing per input token/chunk?
- How are updates handled?
- Do you support hybrid retrieval or reranking?
- What evaluation benchmarks do you provide?
Bottom line
If you want the safest choice: test a few APIs on your own data, optimize for retrieval quality first, then cost/latency, and use hybrid search + reranking when possible.
If you want, I can also give you:
- a comparison checklist
- a benchmarking template
- or a decision matrix for popular embedding APIs.
Observation history
Unlock observation history
Create a free Obsurfable account to unlock historical responses, model comparisons, and deeper brand intelligence.
How did Obsurfable measure this prompt?
Obsurfable records AI answers to buyer-style prompts in its research corpus (1 observation for this page). Metrics are distributions over observations, not a single static ranking.
Which AI systems does Obsurfable collect answers from?
OpenAI, ChatGPT, Google, Gemini, Google AI Mode, Anthropic, Claude, Perplexity, Grok, DeepSeek, Mistral, Copilot, and Meta AI.