Feedback
Ajouté dans : @mastra/core@1.18.0
Les API de Feedback stockent et interrogent les signaux d'Observability impliquant un humain, tels que les évaluations, les pouces, les commentaires et les corrections. Consultez le guide du Feedback pour découvrir les modèles d'utilisation.
Exemple d'utilisationLien direct vers Exemple d'utilisation
L'exemple suivant enregistre une évaluation pour une Trace persistée via le point d'entrée d'Observability. addFeedback() est facultatif sur ce point d'entrée ; vérifiez donc que l'implémentation active de l'Observability le prend en charge avant de l'appeler.
if (!mastra.observability.addFeedback) {
throw new Error('Feedback is not supported by the active observability implementation')
}
await mastra.observability.addFeedback({
traceId: 'trace-123',
spanId: 'span-456',
feedback: {
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
comment: 'Helpful answer.',
},
})
Création de feedbackLien direct vers Création de feedback
addFeedback(args)Lien direct vers addfeedbackargs
Ajoute du feedback à une Trace ou à un span persisté via le point d'entrée d'Observability.
await mastra.observability.addFeedback?.({
traceId: 'trace-123',
spanId: 'span-456',
feedback: {
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
comment: 'Helpful answer.',
},
})
traceId?:
spanId?:
correlationContext?:
feedback:
createFeedback(args)Lien direct vers createfeedbackargs
Crée un enregistrement de feedback via le domaine de stockage de l'Observability. Les appels au niveau du stockage écrivent directement dans celui-ci ; incluez donc timestamp.
await observability.createFeedback({
feedback: {
feedbackId: 'feedback-1',
timestamp: new Date(),
traceId: 'trace-123',
spanId: 'span-456',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
comment: 'Helpful answer.',
},
})
La route de création HTTP et du SDK client accepte CreateFeedbackBody et définit timestamp côté serveur. Elle génère feedbackId lorsque celui-ci est omis :
await mastraClient.createFeedback({
feedback: {
traceId: 'trace-123',
spanId: 'span-456',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
},
})
batchCreateFeedback(args)Lien direct vers batchcreatefeedbackargs
Crée plusieurs enregistrements de feedback via le domaine de stockage de l'Observability. Cette méthode n'est pas exposée par les routes HTTP ni par @mastra/client-js.
await observability.batchCreateFeedback({
feedbacks: [
{
feedbackId: 'feedback-1',
timestamp: new Date(),
traceId: 'trace-123',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
},
{
feedbackId: 'feedback-2',
timestamp: new Date(),
traceId: 'trace-123',
feedbackSource: 'qa',
feedbackType: 'comment',
value: 'Needs a citation before shipping.',
},
],
})
Liste du feedbackLien direct vers Liste du feedback
listFeedback(args?)Lien direct vers listfeedbackargs
Renvoie les enregistrements de feedback en mode page ou delta.
const response = await mastraClient.listFeedback({
filters: {
feedbackType: 'rating',
feedbackSource: 'studio',
},
pagination: { page: 0, perPage: 20 },
orderBy: { field: 'timestamp', direction: 'DESC' },
})
mode?:
filters?:
pagination?:
page commence à zéro.orderBy?:
after?:
limit?:
Requêtes OLAPLien direct vers Requêtes OLAP
Les requêtes OLAP de feedback s'appliquent aux champs value numériques.
getFeedbackAggregate(args)Lien direct vers getfeedbackaggregateargs
Renvoie une valeur agrégée de feedback.
const response = await mastraClient.getFeedbackAggregate({
feedbackType: 'rating',
feedbackSource: 'user',
aggregation: 'avg',
comparePeriod: 'previous_day',
})
feedbackType:
feedbackSource?:
aggregation:
filters?:
comparePeriod?:
getFeedbackBreakdown(args)Lien direct vers getfeedbackbreakdownargs
Renvoie les valeurs de feedback regroupées par dimensions.
const response = await mastraClient.getFeedbackBreakdown({
feedbackType: 'rating',
groupBy: ['entityName'],
aggregation: 'avg',
})
getFeedbackTimeSeries(args)Lien direct vers getfeedbacktimeseriesargs
Renvoie les valeurs de feedback regroupées par intervalles.
const response = await mastraClient.getFeedbackTimeSeries({
feedbackType: 'rating',
interval: '1h',
aggregation: 'avg',
groupBy: ['feedbackSource'],
})
getFeedbackPercentiles(args)Lien direct vers getfeedbackpercentilesargs
Renvoie les valeurs de percentile regroupées par intervalles.
const response = await mastraClient.getFeedbackPercentiles({
feedbackType: 'rating',
percentiles: [0.5, 0.95],
interval: '1d',
})
TypesLien direct vers Types
FeedbackRecordLien direct vers feedbackrecord
feedbackId?:
timestamp:
traceId?:
spanId?:
feedbackSource?:
source?:
feedbackSource.feedbackType:
value:
comment?:
feedbackUserId?:
sourceId?:
metadata?:
Champs de contexte partagésLien direct vers Champs de contexte partagés
Les enregistrements de feedback peuvent inclure des champs de contexte d'Observability partagés afin de filtrer, regrouper et corréler les Traces, les logs, les métriques et les scores.
entityType?:
entityId?:
entityName?:
parentEntityType?:
parentEntityId?:
parentEntityName?:
rootEntityType?:
rootEntityId?:
rootEntityName?:
userId?:
organizationId?:
resourceId?:
runId?:
sessionId?:
threadId?:
requestId?:
environment?:
serviceName?:
scope?:
entityVersionId?:
parentEntityVersionId?:
rootEntityVersionId?:
experimentId?:
executionSource?:
FeedbackInputLien direct vers feedbackinput
Utilisez FeedbackInput avec mastra.observability.addFeedback(), recordedTrace.addFeedback() et recordedSpan.addFeedback().
feedbackSource?:
source?:
feedbackSource.feedbackType:
value:
comment?:
feedbackUserId?:
userId?:
feedbackUserId.metadata?:
experimentId?:
sourceId?:
FeedbackFilterLien direct vers feedbackfilter
Utilisez FeedbackFilter dans listFeedback() et dans les filters des requêtes OLAP.
timestamp?:
traceId?:
spanId?:
feedbackType?:
feedbackSource?:
source?:
feedbackSource.feedbackUserId?:
entityType?:
entityName?:
entityVersionId?:
parentEntityType?:
parentEntityName?:
parentEntityVersionId?:
rootEntityType?:
rootEntityName?:
rootEntityVersionId?:
userId?:
organizationId?:
resourceId?:
runId?:
sessionId?:
threadId?:
requestId?:
serviceName?:
environment?:
executionSource?:
experimentId?:
Routes HTTPLien direct vers Routes HTTP
| Méthode | Chemin | Objectif | Autorisation |
|---|---|---|---|
GET | /api/observability/feedback | Répertorier les enregistrements de feedback | Aucune autorisation dérivée |
POST | /api/observability/feedback | Créer un enregistrement de feedback | Aucune autorisation dérivée |
POST | /api/observability/feedback/aggregate | Renvoyer une valeur agrégée | observability:read |
POST | /api/observability/feedback/breakdown | Regrouper le feedback par dimensions | observability:read |
POST | /api/observability/feedback/timeseries | Regrouper le feedback par intervalles | observability:read |
POST | /api/observability/feedback/percentiles | Renvoyer une série de percentiles | observability:read |