Endpoint
Embeddings
Trasforma il testo in vettori con POST /embeddings per ricerca semantica, clustering e RAG, con parametri, risposta, scelta del modello e costi.
Provalo nel playgroundTrasforma il testo in vettori per la ricerca semantica, il clustering, la deduplicazione e la retrieval-augmented generation (RAG). L'endpoint ha la stessa forma di POST /embeddings di OpenAI, quindi client.embeddings.create(...) funziona senza modifiche.
POST https://api14.com/api/v1/embeddings
Richiesta
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
model | string | sì | L'id di un modello di embeddings, ad es. openai/text-embedding-3-small. |
input | string o string[] | sì | Testo da trasformare in embedding. Passa un array per elaborare più input in una sola richiesta. |
dimensions | integer | no | Dimensione del vettore in uscita, per i modelli che ne supportano la riduzione (ad es. text-embedding-3-*). |
encoding_format | string | no | float (predefinito) o base64. |
user | string | no | L'id del tuo utente finale, inoltrato all'upstream. |
provider | object | no | Preferenze di instradamento dei provider. Vedi Instradamento dei provider. |
Esempio
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));
Risposta
{
"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 corrisponde alla posizione dell'input nel tuo array input.
Scegliere un modello
Elenca i modelli di embeddings con i relativi prezzi, senza chiave API:
curl https://api14.com/api/v1/embeddings/models
# or, with categories and our prices:
curl "https://api14.com/api/v1/models?category=embeddings"
I vettori di modelli diversi non sono confrontabili. Salva l'id del modello accanto a ogni vettore e rigenera gli embedding dell'intero corpus quando cambi modello.
Prezzi
Gli embeddings sono fatturati per token di input al prezzo indicato per il modello, mostrato come "$ / 1M token". Il costo di ogni richiesta viene restituito in usage.cost (USD) e scalato dal tuo saldo. Vedi Prezzi e fatturazione.
Suggerimenti
- Raggruppa gli input: una richiesta con 100 stringhe è più veloce e conta come una sola richiesta rispetto al tuo limite di frequenza.
- Mantieni ogni input sotto la lunghezza di contesto del modello; il testo più lungo viene rifiutato dall'upstream.
- Normalizza i vettori (la maggior parte dei modelli li restituisce già a lunghezza unitaria) e usa la similarità coseno.
Errori
| Stato | Codice | Quando |
|---|---|---|
| 400 | model_required / invalid_json | Manca model oppure il corpo non è un oggetto JSON. |
| 401 | invalid_api_key | Chiave mancante o non valida. |
| 402 | insufficient_balance | Il tuo saldo in USD è $0. |
| 403 | model_not_allowed | La lista dei modelli consentiti della chiave esclude questo modello. |
| 404 | model_not_found | Id del modello sconosciuto o disattivato. |
| 429 | rate_limited | Superato il limite di richieste al minuto. |
Elenco completo: Errori.