Skip to Content

埋め込み

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における埋め込みの詳細情報については、以下を参照してください: