Endpoints
Embeddings
Zet tekst om in vectoren met POST /embeddings voor semantisch zoeken, clustering en RAG, met parameters, prijzen en foutcodes.
Probeer het in de playgroundZet tekst om in vectoren voor semantisch zoeken, clustering, ontdubbelen en retrieval-augmented generation (RAG). Het endpoint heeft dezelfde vorm als POST /embeddings van OpenAI, dus client.embeddings.create(...) werkt ongewijzigd.
POST https://api14.com/api/v1/embeddings
Request
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
model | string | ja | Een embeddings-model-id, bijv. openai/text-embedding-3-small. |
input | string of string[] | ja | Te embedden tekst. Geef een array mee om meerdere invoeren in één request te embedden. |
dimensions | integer | nee | Grootte van de uitvoervector, voor modellen die inkorten ondersteunen (bijv. text-embedding-3-*). |
encoding_format | string | nee | float (standaard) of base64. |
user | string | nee | Je eigen eindgebruiker-id, doorgegeven aan de upstream. |
provider | object | nee | Voorkeuren voor provider routing. Zie Provider routing. |
Voorbeeld
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.embeddings.create({
"model": "openai/text-embedding-3-small",
"input": [
"The quick brown fox",
"Lorem ipsum"
]
});
console.log(result.data.map((d) => d.embedding.length));
Response
{
"object": "list",
"data": [
{ "object": "embedding", "index": 0, "embedding": [0.0023, -0.0091, 0.0154, "..."] }
],
"model": "openai/text-embedding-3-small",
"usage": { "prompt_tokens": 8, "total_tokens": 8, "cost": 0.00000016 }
}
data[i].index komt overeen met de positie van de invoer in je input-array.
Een model kiezen
Toon embeddings-modellen met hun prijzen, zonder API-key:
curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"
Vectoren van verschillende modellen zijn niet vergelijkbaar. Bewaar het model-id bij elke vector en embed je corpus opnieuw wanneer je van model wisselt.
Prijzen
Embeddings worden per invoertoken gefactureerd tegen de vermelde prijs van het model, getoond als "$ / 1M tokens". De kosten van elk request staan in usage.cost (USD) en worden van je saldo afgeschreven. Zie Prijzen en facturering.
Tips
- Bundel invoer: één request met 100 strings is sneller en telt als één request voor je rate limit.
- Houd elke invoer onder de contextlengte van het model; langere tekst wordt upstream geweigerd.
- Normaliseer vectoren (de meeste modellen geven al eenheidslengte terug) en gebruik cosinusgelijkenis.
Fouten
| Status | Code | Wanneer |
|---|---|---|
| 400 | model_required / invalid_json | model ontbreekt of de body is geen JSON-object. |
| 401 | invalid_api_key | Ontbrekende of ongeldige key. |
| 402 | insufficient_balance | Je USD-saldo is $0. |
| 403 | model_not_allowed | De modelallowlist van de key sluit dit model uit. |
| 404 | model_not_found | Onbekend of uitgeschakeld model-id. |
| 429 | rate_limited | Requests per minuut overschreden. |
Volledige lijst: Fouten.