埋め込み
Mastraは、AI SDKのembed
およびembedMany
関数を使用してテキスト入力のベクトル埋め込みを生成し、類似性検索とRAGワークフローを可能にします。
単一埋め込み
embed
関数は、単一のテキスト入力に対してベクトル埋め込みを生成します:
import { embed } from 'ai';
const result = await embed({
model: openai.embedding('text-embedding-3-small'),
value: "Your text to embed",
maxRetries: 2 // optional, defaults to 2
});
パラメータ
model:
EmbeddingModel
使用する埋め込みモデル (例: openai.embedding('text-embedding-3-small'))
value:
string | Record<string, any>
埋め込むテキストコンテンツまたはオブジェクト
maxRetries?:
number
= 2
埋め込み呼び出しごとの最大リトライ回数。リトライを無効にするには0に設定します。
abortSignal?:
AbortSignal
リクエストをキャンセルするためのオプションの中止シグナル
headers?:
Record<string, string>
リクエストの追加HTTPヘッダー (HTTPベースのプロバイダーのみ)
戻り値
embedding:
number[]
入力の埋め込みベクトル
複数の埋め込み
複数のテキストを一度に埋め込むには、embedMany
関数を使用します:
import { embedMany } from 'ai';
const result = await embedMany({
model: openai.embedding('text-embedding-3-small'),
values: ["First text", "Second text", "Third text"],
maxRetries: 2 // optional, defaults to 2
});
パラメータ
model:
EmbeddingModel
使用する埋め込みモデル (例: openai.embedding('text-embedding-3-small'))
values:
string[] | Record<string, any>[]
埋め込むテキストコンテンツまたはオブジェクトの配列
maxRetries?:
number
= 2
埋め込み呼び出しごとの最大リトライ回数。リトライを無効にするには0に設定します。
abortSignal?:
AbortSignal
リクエストをキャンセルするためのオプションの中止シグナル
headers?:
Record<string, string>
リクエストの追加HTTPヘッダー (HTTPベースのプロバイダーのみ)
戻り値
embeddings:
number[][]
入力値に対応する埋め込みベクトルの配列
使用例
import { embed, embedMany } from 'ai';
import { openai } from '@ai-sdk/openai';
// Single embedding
const singleResult = await embed({
model: openai.embedding('text-embedding-3-small'),
value: "What is the meaning of life?",
});
// Multiple embeddings
const multipleResult = await embedMany({
model: openai.embedding('text-embedding-3-small'),
values: [
"First question about life",
"Second question about universe",
"Third question about everything"
],
});
Vercel AI SDKにおける埋め込みの詳細情報については、以下を参照してください: