Endpunkte
Embeddings
POST /embeddings erzeugt Vektor-Embeddings für semantische Suche, Clustering und RAG, kompatibel mit client.embeddings.create des OpenAI-SDK.
Im Playground testenWandeln Sie Text in Vektoren um, für semantische Suche, Clustering, Deduplizierung und Retrieval-Augmented Generation (RAG). Der Endpunkt hat dieselbe Form wie POST /embeddings von OpenAI, daher funktioniert client.embeddings.create(...) unverändert.
POST https://api14.com/api/v1/embeddings
Anfrage
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
model | string | ja | Eine Embeddings-Modell-ID, z. B. openai/text-embedding-3-small. |
input | string oder string[] | ja | Der einzubettende Text. Übergeben Sie ein Array, um mehrere Eingaben in einer Anfrage einzubetten. |
dimensions | integer | nein | Größe des Ausgabevektors, für Modelle, die eine Verkürzung unterstützen (z. B. text-embedding-3-*). |
encoding_format | string | nein | float (Standard) oder base64. |
user | string | nein | Ihre eigene Endnutzer-ID, die an den Upstream weitergereicht wird. |
provider | object | nein | Einstellungen für das Provider-Routing. Siehe Provider-Routing. |
Beispiel
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));
Antwort
{
"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 entspricht der Position der Eingabe in Ihrem input-Array.
Ein Modell auswählen
Listen Sie Embeddings-Modelle mit ihren Preisen ohne API-Schlüssel auf:
curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"
Vektoren verschiedener Modelle sind nicht vergleichbar. Speichern Sie die Modell-ID zu jedem Vektor und betten Sie Ihren Korpus neu ein, wenn Sie das Modell wechseln.
Preise
Embeddings werden pro Eingabe-Token zum gelisteten Preis des Modells abgerechnet, angezeigt als "$ / 1M Tokens". Die Kosten jeder Anfrage werden in usage.cost (USD) zurückgegeben und von Ihrem Guthaben abgebucht. Siehe Preise & Abrechnung.
Tipps
- Bündeln Sie Eingaben: Eine Anfrage mit 100 Strings ist schneller und zählt als eine Anfrage für Ihr Rate Limit.
- Halten Sie jede Eingabe unter der Kontextlänge des Modells; längerer Text wird vom Upstream abgelehnt.
- Normalisieren Sie die Vektoren (die meisten Modelle liefern bereits Einheitslänge) und verwenden Sie die Kosinus-Ähnlichkeit.
Fehler
| Status | Code | Wann |
|---|---|---|
| 400 | model_required / invalid_json | model fehlt oder der Body ist kein JSON-Objekt. |
| 401 | invalid_api_key | Schlüssel fehlt oder ist ungültig. |
| 402 | insufficient_balance | Ihr USD-Guthaben beträgt 0 $. |
| 403 | model_not_allowed | Die Modell-Allowlist des Schlüssels schließt dieses Modell aus. |
| 404 | model_not_found | Unbekannte oder deaktivierte Modell-ID. |
| 429 | rate_limited | Anfragen pro Minute überschritten. |
Vollständige Liste: Fehler.