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