Embed
Mastra utilise les fonctions embed et embedMany d'AI SDK pour générer des embeddings vectoriels à partir d'entrées textuelles, ce qui permet d'effectuer des recherches par similarité et de créer des Workflows RAG.
Embedding uniqueLien direct vers Embedding unique
La fonction embed génère un embedding vectoriel pour une seule entrée textuelle :
import { embed } from 'ai'
import { ModelRouterEmbeddingModel } from '@mastra/core/llm'
const result = await embed({
model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
value: 'Your text to embed',
maxRetries: 2, // optional, defaults to 2
})
ParamètresLien direct vers Paramètres
model:
EmbeddingModel
Le modèle d'embedding à utiliser (par exemple, openai.embedding('text-embedding-3-small'))
value:
string | Record<string, any>
Le contenu textuel ou l'objet à convertir en embedding
maxRetries?:
number
= 2
Nombre maximal de nouvelles tentatives par appel d'embedding. Définissez cette valeur sur 0 pour désactiver les nouvelles tentatives.
abortSignal?:
AbortSignal
Signal d'abandon facultatif permettant d'annuler la requête
headers?:
Record<string, string>
En-têtes HTTP supplémentaires pour la requête (uniquement pour les Providers reposant sur HTTP)
Valeur renvoyéeLien direct vers Valeur renvoyée
embedding:
number[]
Le vecteur d'embedding correspondant à l'entrée
Embeddings multiplesLien direct vers Embeddings multiples
Pour convertir plusieurs textes en embeddings en une seule fois, utilisez la fonction embedMany :
import { embedMany } from 'ai'
const result = await embedMany({
model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
values: ['First text', 'Second text', 'Third text'],
maxRetries: 2, // optional, defaults to 2
})
ParamètresLien direct vers Paramètres
model:
EmbeddingModel
Le modèle d'embedding à utiliser (par exemple, openai.embedding('text-embedding-3-small'))
values:
string[] | Record<string, any>[]
Tableau de contenus textuels ou d'objets à convertir en embeddings
maxRetries?:
number
= 2
Nombre maximal de nouvelles tentatives par appel d'embedding. Définissez cette valeur sur 0 pour désactiver les nouvelles tentatives.
abortSignal?:
AbortSignal
Signal d'abandon facultatif permettant d'annuler la requête
headers?:
Record<string, string>
En-têtes HTTP supplémentaires pour la requête (uniquement pour les Providers reposant sur HTTP)
Valeur renvoyéeLien direct vers Valeur renvoyée
embeddings:
number[][]
Tableau de vecteurs d'embedding correspondant aux valeurs d'entrée
Exemple d'utilisationLien direct vers Exemple d'utilisation
import { embed, embedMany } from 'ai'
// Single embedding
const singleResult = await embed({
model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
value: 'What is the meaning of life?',
})
// Multiple embeddings
const multipleResult = await embedMany({
model: new ModelRouterEmbeddingModel('openai/text-embedding-3-small'),
values: [
'First question about life',
'Second question about universe',
'Third question about everything',
],
})
Pour plus d'informations sur les embeddings dans Vercel AI SDK, consultez :