Aller au contenu principal

Workflow.map()

La méthode .map() associe les données de sortie d’une étape précédente à l’entrée d’une étape suivante, ce qui permet de transformer les données entre les étapes.

Exemple d’utilisation
Lien direct vers Exemple d’utilisation

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

Paramètres
Lien direct vers Paramètres

mappingFunction:

(params: { inputData: any }) => any
Fonction qui transforme les données d’entrée et renvoie le résultat associé

Valeur renvoyée
Lien direct vers Valeur renvoyée

workflow:

Workflow
Instance de Workflow pour le chaînage de méthodes

Utiliser inputData
Lien direct vers using-inputdata

Utilisez inputData pour accéder à l’intégralité de la sortie de l’étape précédente.

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

Utiliser getStepResult()
Lien direct vers using-getstepresult

Utilisez getStepResult() pour accéder à l’intégralité de la sortie d’une étape spécifique en référençant l’instance de l’étape.

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

Utiliser getInitData()
Lien direct vers using-getinitdata

Utilisez getInitData<typeof workflow>() pour accéder aux données d’entrée initiales fournies au Workflow.

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

Utiliser mapVariable()
Lien direct vers using-mapvariable

La forme objet de .map() fournit une syntaxe déclarative alternative pour associer des champs. Au lieu d’écrire une fonction, vous définissez un objet dont chaque clé est un nouveau nom de champ et dont chaque valeur utilise mapVariable() pour extraire des données des étapes précédentes ou de l’entrée du Workflow. Importez mapVariable() depuis le module workflows :

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

Extraire des champs des sorties d’étapes
Lien direct vers Extraire des champs des sorties d’étapes

Utilisez mapVariable() avec step pour extraire un champ spécifique de la sortie d’une étape et l’associer à un nouveau nom de champ. Le paramètre path indique le champ à extraire. Dans cet exemple, le champ value de la sortie de step1 est extrait et associé à un nouveau champ appelé details :

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

Extraire des champs de l’entrée du Workflow
Lien direct vers Extraire des champs de l’entrée du Workflow

Utilisez mapVariable() avec initData pour extraire un champ spécifique des données d’entrée initiales du Workflow. Cela est utile lorsque vous devez transmettre l’entrée d’origine du Workflow à une étape ultérieure. Dans cet exemple, le champ value de l’entrée du Workflow est extrait et associé à un champ appelé details :

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

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