回饋
新增於:@mastra/core@1.18.0
回饋 API 可儲存及查詢人工介入的可觀測性 signal,例如評分、拇指評價、留言與修正。如需使用模式,請參閱回饋指南。
使用範例「使用範例」的直接連結
以下範例透過可觀測性進入點,為已持久化的 trace 記錄評分。addFeedback() 在此進入點上為選用,因此呼叫前請先檢查作用中的可觀測性實作是否支援。
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.',
},
})
建立回饋「建立回饋」的直接連結
addFeedback(args)「addfeedbackargs」的直接連結
透過可觀測性進入點,將回饋新增至已持久化的 trace 或 span。
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)「createfeedbackargs」的直接連結
透過可觀測性 storage domain 建立一筆回饋記錄。儲存層級呼叫會直接寫入儲存區,因此請包含 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.',
},
})
HTTP 與 client SDK 的建立 route 接受 CreateFeedbackBody,並由 server 端設定 timestamp。省略 feedbackId 時會自動產生:
await mastraClient.createFeedback({
feedback: {
traceId: 'trace-123',
spanId: 'span-456',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
},
})
batchCreateFeedback(args)「batchcreatefeedbackargs」的直接連結
透過可觀測性 storage domain 建立多筆回饋記錄。HTTP route 與 @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.',
},
],
})
列出回饋「列出回饋」的直接連結
listFeedback(args?)「listfeedbackargs」的直接連結
以分頁模式或 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 從零開始編號。orderBy?:
after?:
limit?:
OLAP 查詢「OLAP 查詢」的直接連結
OLAP 回饋查詢會針對數值型 value 欄位運作。
getFeedbackAggregate(args)「getfeedbackaggregateargs」的直接連結
傳回單一彙總回饋值。
const response = await mastraClient.getFeedbackAggregate({
feedbackType: 'rating',
feedbackSource: 'user',
aggregation: 'avg',
comparePeriod: 'previous_day',
})
feedbackType:
feedbackSource?:
aggregation:
filters?:
comparePeriod?:
getFeedbackBreakdown(args)「getfeedbackbreakdownargs」的直接連結
傳回依維度分組的回饋值。
const response = await mastraClient.getFeedbackBreakdown({
feedbackType: 'rating',
groupBy: ['entityName'],
aggregation: 'avg',
})
getFeedbackTimeSeries(args)「getfeedbacktimeseriesargs」的直接連結
傳回依時間間隔分桶的回饋值。
const response = await mastraClient.getFeedbackTimeSeries({
feedbackType: 'rating',
interval: '1h',
aggregation: 'avg',
groupBy: ['feedbackSource'],
})
getFeedbackPercentiles(args)「getfeedbackpercentilesargs」的直接連結
傳回依時間間隔分桶的百分位數值。
const response = await mastraClient.getFeedbackPercentiles({
feedbackType: 'rating',
percentiles: [0.5, 0.95],
interval: '1d',
})
型別「型別」的直接連結
FeedbackRecord「feedbackrecord」的直接連結
feedbackId?:
timestamp:
traceId?:
spanId?:
feedbackSource?:
source?:
feedbackSource 的已淘汰 alias。feedbackType:
value:
comment?:
feedbackUserId?:
sourceId?:
metadata?:
共用 context 欄位「共用 context 欄位」的直接連結
回饋記錄可包含共用的可觀測性 context 欄位,用於篩選、分組,以及與 trace、log、指標和分數建立關聯。
entityType?:
entityId?:
entityName?:
parentEntityType?:
parentEntityId?:
parentEntityName?:
rootEntityType?:
rootEntityId?:
rootEntityName?:
userId?:
organizationId?:
resourceId?:
runId?:
sessionId?:
threadId?:
requestId?:
environment?:
serviceName?:
scope?:
entityVersionId?:
parentEntityVersionId?:
rootEntityVersionId?:
experimentId?:
executionSource?:
FeedbackInput「feedbackinput」的直接連結
請搭配 mastra.observability.addFeedback()、recordedTrace.addFeedback() 與 recordedSpan.addFeedback() 使用 FeedbackInput。
feedbackSource?:
source?:
feedbackSource 的已淘汰 alias。feedbackType:
value:
comment?:
feedbackUserId?:
userId?:
feedbackUserId 的已淘汰 alias。metadata?:
experimentId?:
sourceId?:
FeedbackFilter「feedbackfilter」的直接連結
請在 listFeedback() 與 OLAP 查詢的 filters 中使用 FeedbackFilter。
timestamp?:
traceId?:
spanId?:
feedbackType?:
feedbackSource?:
source?:
feedbackSource 的已淘汰 alias。feedbackUserId?:
entityType?:
entityName?:
entityVersionId?:
parentEntityType?:
parentEntityName?:
parentEntityVersionId?:
rootEntityType?:
rootEntityName?:
rootEntityVersionId?:
userId?:
organizationId?:
resourceId?:
runId?:
sessionId?:
threadId?:
requestId?:
serviceName?:
environment?:
executionSource?:
experimentId?:
HTTP route「HTTP route」的直接連結
| 方法 | 路徑 | 用途 | 權限 |
|---|---|---|---|
GET | /api/observability/feedback | 列出回饋記錄 | 無衍生權限 |
POST | /api/observability/feedback | 建立回饋記錄 | 無衍生權限 |
POST | /api/observability/feedback/aggregate | 傳回單一彙總值 | observability:read |
POST | /api/observability/feedback/breakdown | 依維度將回饋分組 | observability:read |
POST | /api/observability/feedback/timeseries | 依時間間隔將回饋分桶 | observability:read |
POST | /api/observability/feedback/percentiles | 傳回百分位數序列 | observability:read |