ProcessorProvider
ProcessorProvider est l’interface qu’un package implémente pour enregistrer un Processor configurable auprès de MastraEditor. Les fournisseurs de Processor remplissent deux fonctions :
- Découverte : l’interface utilisateur emploie
info,configSchemaetavailablePhasespour afficher les formulaires de configuration. - Exécution : l’Editor appelle
createProcessor(config)lors de l’hydratation de l’Agent afin d’instancier les Processors à partir de la configuration enregistrée.
Les fournisseurs sont transmis au moyen de MastraEditorConfig.processorProviders.
Exemple d’utilisationLien direct vers Exemple d’utilisation
src/mastra/index.ts
import { MastraEditor } from '@mastra/editor'
import { moderationProcessorProvider } from '@mastra/processors/moderation'
new MastraEditor({
processorProviders: {
moderation: moderationProcessorProvider,
},
})
PropriétésLien direct vers Propriétés
info:
ProcessorProviderInfo
Métadonnées relatives au fournisseur.
id:
string
Identifiant unique (par exemple,
"moderation" ou "token-limiter").name:
string
Nom lisible.
description?:
string
Courte description du fournisseur.
configSchema:
ZodSchema
Schéma Zod décrivant la configuration acceptée par ce fournisseur. Utilisé par l’interface utilisateur pour afficher un formulaire. L’objet de configuration validé est transmis à
createProcessor().availablePhases:
ProcessorPhase[]
Phases prises en charge par les Processors de ce fournisseur. Une ou plusieurs parmi
'processInput', 'processInputStep', 'processOutputStream', 'processOutputResult' et 'processOutputStep'.createProcessor:
(config: Record<string, unknown>) => Processor
Crée une instance de
Processor à partir de la configuration validée. Cette méthode est appelée lors de l’hydratation de l’Agent afin de convertir les configurations de Processor enregistrées en instances actives.Implémenter un fournisseurLien direct vers Implémenter un fournisseur
src/providers/my-processor.ts
import type { ProcessorProvider } from '@mastra/core/processor-provider'
import { z } from 'zod'
import { MyProcessor } from './my-processor-impl'
export const myProcessorProvider: ProcessorProvider = {
info: {
id: 'my-processor',
name: 'My Processor',
description: 'Filters output for sensitive content.',
},
configSchema: z.object({
threshold: z.number().min(0).max(1),
}),
availablePhases: ['processOutputStream', 'processOutputResult'],
createProcessor(config) {
return new MyProcessor(config as { threshold: number })
},
}
Voir aussiLien direct vers Voir aussi
- Classe MastraEditor : registre des fournisseurs.