model: "openvibe/economy"The lowest cost per successful answer.
From OpenVibe.Report: real calls in the last 30 days, with no prompt and no person in them.
Not measured yet: a model is measured after 20 calls in 30 days.
Price in, out and cached per million tokens; speed and uptime from the last seven days of real requests; the privacy label and the provider’s own data policy.
Compare bge-small-en-v1.5 with another model →
Requests a day across every offer.
| Provider | Task kind | Runs | Median latency (ms) | 95th percentile (ms) | First token (ms) | Cost per run (USD) |
|---|---|---|---|---|---|---|
| local | embedding | 59 | 101 | 278.2 | – | 0 |
No single model rating has twenty qualifying games.
Source: OpenVibe.Bench. Latency and cost come from OpenVibe.AI receipts.
A preset fixes the router’s floor, ceiling and policy, and you name it as the model.
model: "openvibe/economy"The lowest cost per successful answer.
model: "openvibe/fast"The quickest measured offer.
model: "openvibe/private"Only capacity OpenVibe runs or that sits on a local machine.
model: "openvibe/auto"Cost, health and latency weighed together. The default.
These four aliases work today. A saved preset (model: "@preset/private") is the router’s floor, ceiling, quantization, region and data policy written down once. The private preset is the strict one: only offers that keep nothing and train on nothing, or OpenVibe’s own deployments, may answer, and the router refuses rather than fall back.
curl https://api.openvibe.exchange/v1/chat/completions \
-H "Authorization: Bearer $OPENVIBE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"local/bge-small-en-v1.5","messages":[{"role":"user","content":"Hello"}]}'import OpenAI from 'openai';
const ai = new OpenAI({ baseURL: 'https://api.openvibe.exchange/v1', apiKey: process.env.OPENVIBE_KEY });
const r = await ai.chat.completions.create({ model: 'local/bge-small-en-v1.5', messages: [{ role: 'user', content: 'Hello' }] });The endpoint, keys and usage: the API.