Embedding
Implémentez la génération de vecteurs d'embedding pour les agents avec récupération augmentée et les colonnes d'embedding de tables gérées.
Les capacités d'embedding alimentent la récupération, la recherche sémantique et tout pipeline nécessitant des vecteurs denses. Les modèles doivent déclarer leur dimension de sortie.
Définir la capacité
import { defineCapabilityEmbedding } from "@scrydon/sdk-authoring/integrations/define";
const embeddingCapability = defineCapabilityEmbedding({
models: [
{
id: "text-embedding-v1",
name: "Text Embedding V1",
dimension: 1536,
benchmarks: [{ name: "MTEB Average", score: 62.3, source: "MTEB Leaderboard" }],
},
{
id: "text-embedding-v2",
name: "Text Embedding V2",
dimension: 3072,
benchmarks: [
{ name: "MTEB Average", score: 64.6, source: "MTEB Leaderboard" },
{ name: "MIRACL Average", score: 54.9, source: "MTEB Leaderboard" },
],
},
],
defaultModel: "text-embedding-v1",
async embed(request) {
const response = await fetch("https://api.example.com/v1/embeddings", {
method: "POST",
headers: {
Authorization: `Bearer ${request.apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ model: request.model, input: request.input }),
});
const data = await response.json();
return {
embeddings: data.data.map((d: any) => d.embedding),
model: request.model ?? "text-embedding-v1",
usage: {
promptTokens: data.usage.prompt_tokens,
totalTokens: data.usage.total_tokens,
},
};
},
});Métadonnées du modèle
| Champ | Type | Requis | Description |
|---|---|---|---|
id | string | oui | Identifiant unique du modèle (ex. "text-embedding-v2") |
name | string | oui | Nom d'affichage dans l'interface |
dimension | number | oui | Dimension du vecteur de sortie (ex. 1536, 3072) |
benchmarks | BenchmarkScore[] | non | MTEB / MIRACL — plus élevé est meilleur |
dimension est requis car la plateforme pré-alloue des colonnes pgvector et rejette les écritures qui ne correspondent pas. Définissez-le une fois par modèle — ne le modifiez jamais après publication.