メインコンテンツへ移動

Workflow.map()

.map() メソッドは、前のステップの出力データを後続ステップの入力へマッピングし、ステップ間でデータを変換できるようにします。

使用例
使用例への直接リンク

workflow.map(async ({ inputData }) => `${inputData.value} - map`)

パラメーター
パラメーターへの直接リンク

mappingFunction:

(params: { inputData: any }) => any
入力データを変換し、マッピングした結果を返す関数

戻り値
戻り値への直接リンク

workflow:

Workflow
メソッドチェーンに使用する Workflow インスタンス

inputData を使用する
using-inputdataへの直接リンク

前のステップの出力全体にアクセスするには、inputData を使用します。

.then(step1)
.map(({ inputData }) => {
console.log(inputData);
})

getStepResult() を使用する
using-getstepresultへの直接リンク

ステップのインスタンスを参照し、そのステップの出力全体にアクセスするには、getStepResult() を使用します。

.then(step1)
.map(async ({ getStepResult }) => {
console.log(getStepResult(step1));
})

getInitData() を使用する
using-getinitdataへの直接リンク

Workflow に渡された初期入力データへアクセスするには、getInitData<typeof workflow>() を使用します。

.then(step1)
.map(async ({ getInitData }) => {
console.log(getInitData<any>());
})

mapVariable() を使用する
using-mapvariableへの直接リンク

.map() のオブジェクト形式は、フィールドをマッピングするための宣言的な代替構文です。関数を記述する代わりに、各キーを新しいフィールド名とし、各値で mapVariable() を使用して前のステップまたは Workflow の入力からデータを抽出するオブジェクトを定義します。 workflows モジュールから mapVariable() をインポートします。

import { mapVariable } from '@mastra/core/workflows'

ステップの出力からフィールドを抽出する
ステップの出力からフィールドを抽出するへの直接リンク

ステップの出力から特定のフィールドを抽出し、新しいフィールド名にマッピングするには、step とともに mapVariable() を使用します。path パラメーターで抽出するフィールドを指定します。 この例では、step1 の出力から value フィールドを抽出し、details という新しいフィールドへマッピングしています。

.then(step1)
.map({
details: mapVariable({
step: step1,
path: "value"
})
})

Workflow の入力からフィールドを抽出する
Workflow の入力からフィールドを抽出するへの直接リンク

Workflow の初期入力データから特定のフィールドを抽出するには、initData とともに mapVariable() を使用します。元の Workflow 入力を後のステップへ渡す必要がある場合に役立ちます。 この例では、Workflow の入力から value フィールドを抽出し、details というフィールドへマッピングしています。

export const testWorkflow = createWorkflow({...});

testWorkflow
.then(step1)
.map({
details: mapVariable({
initData: testWorkflow,
path: "value"
})
})