You're building semantic search. Or RAG. Or recommendations. You already have an LLM provider for chat. Now you need an embeddings model — and that means another vendor account, another key, another SDK, another billing dashboard, another thing to rotate when it leaks.
It's the quiet tax every vector project pays before writing a single line of retrieval code.
The fix: stop splitting the stack
Embeddings don't need to be a separate vendor. They're just another model behind the same OpenAI-compatible endpoint you already use for chat:
from openai import OpenAI
client = OpenAI(
base_url="https://aibridge-api.com/v1",
api_key="mb-your-key",
)
# Embed your documents...
embed = client.embeddings.create(
model="qwen-plus",
input=["Your product ships in 3 days."],
).data[0].embedding
# ...then chat about them, same key, same client.
answer = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "When does my order arrive?"}],
)
Chat and embeddings, one key, one SDK, one balance. No second onboarding ritual.
Why this matters more than it looks
- Less surface area. Every extra vendor is one more key to rotate, one more outage to monitor, one more ToS to read. Consolidating chat + embeddings halves that.
- One billing view. Your token spend across both models shows up in the same dashboard, so "is RAG eating my budget?" is one glance, not a cross-vendor reconciliation.
-
Swap embeddings models the same way. qwen-plus today, try another tomorrow — one string, same code path you already trust for chat.
The rest of the stack, same key
500K free tokens/month — enough to build and test a real semantic-search demo before paying
Top-ups at $2.99 per 1M raw tokens, 1:1, no expiry
15+ chat models for the generation side of your RAG pipeline
-
Streaming on every chat model, for snappy answer UIs
The principle
Vendor sprawl is a tax you pay per-feature. Embeddings, chat, and whatever comes next are all just models — and models shouldn't each demand their own account.
One endpoint. Every model, generative or not.
15+ models, chat and embeddings, one OpenAI-compatible endpoint. 🧩




Top comments (0)