Embedding Router & Universal Vector Space

Making every vector
speak the same language.

Stop re-embedding your entire corpus every time a better model ships. Schift migrates millions of vectors in minutes — 99.7% retrieval recovery, 0 lines of code changed, provider cost + 5%. OpenAI today, Gemini tomorrow — your choice, always.

# Same API. Any provider. Switch anytime.
from schift import Schift
s = Schift(api_key="sk-...")

# Embed with OpenAI
vec = s.embed("quarterly revenue report", model="openai/text-embedding-3-large")

# Same code, different provider
vec = s.embed("quarterly revenue report", model="google/gemini-embedding-2")

# Switch your entire DB to a new model — no re-embedding
s.upgrade(db="my_pgvector", to="google/gemini-embedding-2")  # 99.7% recovery

7+

models supported

99.7%

retrieval recovery

0

lines of code to switch

<1ms

per vector migration

Proof

Tested across 11 model pairs. Zero failures.

We measured Recall@10 on real retrieval benchmarks. Without projection, switching models drops retrieval to absolute zero. With Schift, recovery ranges from 92% to 104%.

Common misconception

"Same vendor, same dimensions — should be compatible, right?"

Wrong. OpenAI's ada-002 and text-embedding-3-small are both 1536-dimensional, but querying one with the other returns zero relevant results. Same story for Google's Gemini models. Every model version creates an entirely different vector space. Dimensions match — semantics don't.

OpenAI → OpenAI

ada-002 + ada-002

0.851

ada-002 + 3-small

0.000

Same vendor. Same 1536 dims. Completely broken.

Google → Google

gem-001 + gem-001

0.978

gem-001 + gem-2

0.000

Same vendor. Same 3072 dims. Completely broken.

With Schift

Gemini-001 baseline

0.978

R@10

Model mismatch

0.000

R@10

Schift projected

0.970

R@10 — 99.7% recovered

Source model Target model Dimensions Recovery Verdict
ada-002 text-embedding-3-small 1536 → 1536 97.7% SAFE
ada-002 text-embedding-3-large 1536 → 3072 97.9% SAFE
text-embedding-3-small text-embedding-3-large 1536 → 3072 97.1% SAFE
gemini-embedding-001 gemini-embedding-2 3072 → 3072 99.7% SAFE
ada-002 gemini-embedding-001 1536 → 3072 95.8% SAFE
gemini-embedding-001 text-embedding-3-large 3072 → 3072 103.5% SAFE
gemini-embedding-001 text-embedding-3-small 3072 → 1536 99.8% SAFE

Benchmark: SciFact (5,183 documents, 300 queries). Training set: 20% of corpus. Recovery = projected R@10 / gold R@10 × 100. Cross-vendor pairs include OpenAI and Google embedding models.

How it works

Embed. Switch. Migrate. Done.

One API for every embedding provider. Switch models in one line, migrate existing vectors without re-embedding, and never worry about vendor outages.

01

Embed

One endpoint for every embedding provider. OpenAI, Google — just change the model string. We handle auth, rate limits, and retries.

from schift import Schift
s = Schift(api_key="sk-...")

vec = s.embed(
  "quarterly revenue report",
  model="openai/text-embedding-3-large"
)
02

Switch

Try a different provider — change one string. Same API, same response format. Compare quality and cost across providers without rewriting a single line.

# Same code. Different provider.
vec = s.embed(
  "quarterly revenue report",
  model="google/gemini-embedding-2"
)
# Response format identical to OpenAI call above
03

Migrate

Already have vectors in production? Schift projects them to the new model space. 99.7% retrieval recovery. No re-embedding. No downtime.

s.upgrade(
  db="my_pgvector",
  to="google/gemini-embedding-2"
)
# → 1M vectors migrated in 2.3s
# → Recovery: 99.7% | Verdict: SAFE
04

Failover

Provider down? Schift auto-routes to a fallback. Projection keeps your vectors compatible. Your users notice nothing.

# Automatic. No code change.
# 09:41:03 OpenAI 503 detected
# 09:41:03 Failover → google/gemini-embedding-2
# 09:41:03 Projection applied (99.7%)
# 09:44:12 OpenAI restored, switching back

Pricing

Pay what the provider charges. Plus 5%.

No monthly fees. No per-seat pricing. You pay the exact provider cost plus a flat 5% routing fee. Switch providers anytime — your bill follows the model, not a contract.

Embedding

Provider cost

+ 5%

Same pricing as calling the provider directly. We add 5% for routing, auth, and failover.

Free

Migration

$0

included

Vector projection and model migration included at no extra cost. Switch models without re-embedding.

Failover

Automatic

+ 0%

Provider goes down? We route to a fallback with projection. No extra charge for failover routing.

Example: 1M tokens embedded

OpenAI text-embedding-3-small

Provider: $0.02 → Schift: $0.021

OpenAI text-embedding-3-large

Provider: $0.13 → Schift: $0.1365

Google gemini-embedding-2

Provider: Free → Schift: $0.00

Supported providers

OpenAI

text-embedding-3-small, 3-large, ada-002

Google

gemini-embedding-001, gemini-embedding-2

More providers added regularly. Request a provider →

Startup Program

Under 50 employees and less than $5M raised? Get $500 in free credits. We believe early-stage teams shouldn't pay for vendor lock-in they didn't choose. Apply →