Aller au contenu principal

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 unique
Lien 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ètres
Lien 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ée
Lien direct vers Valeur renvoyée

embedding:

number[]
Le vecteur d'embedding correspondant à l'entrée

Embeddings multiples
Lien 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ètres
Lien 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ée
Lien direct vers Valeur renvoyée

embeddings:

number[][]
Tableau de vecteurs d'embedding correspondant aux valeurs d'entrée

Exemple d'utilisation
Lien 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 :