Feedback
新增於: @mastra/core@1.18.0
Feedback API 會儲存及查詢人工介入的可觀測性訊號,例如評分、讚好/不讚好、留言及修正。使用模式請參閱 Feedback 指南。
使用範例使用範例 的直接連結
以下範例透過可觀測性進入點,為已持久保存的 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.',
},
})
建立 Feedback建立 Feedback 的直接連結
addFeedback(args)addfeedbackargs 的直接連結
透過可觀測性進入點,將 Feedback 加至已持久保存的 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 的直接連結
透過可觀測性儲存 domain 建立一筆 Feedback 記錄。儲存層級的呼叫會直接寫入儲存空間,因此須包含 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 及用戶端 SDK 的建立路由接受 CreateFeedbackBody,並由伺服器端設定 timestamp。如省略 feedbackId,系統會自動產生:
await mastraClient.createFeedback({
feedback: {
traceId: 'trace-123',
spanId: 'span-456',
feedbackSource: 'user',
feedbackType: 'rating',
value: 1,
},
})
batchCreateFeedback(args)batchcreatefeedbackargs 的直接連結
透過可觀測性儲存 domain 建立多筆 Feedback 記錄。HTTP 路由及 @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.',
},
],
})
列出 Feedback列出 Feedback 的直接連結
listFeedback(args?)listfeedbackargs 的直接連結
以分頁模式或增量模式傳回 Feedback 記錄。
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 Feedback 查詢會處理數值型別的 value 欄位。
getFeedbackAggregate(args)getfeedbackaggregateargs 的直接連結
傳回一個彙總 Feedback 值。
const response = await mastraClient.getFeedbackAggregate({
feedbackType: 'rating',
feedbackSource: 'user',
aggregation: 'avg',
comparePeriod: 'previous_day',
})
feedbackType:
feedbackSource?:
aggregation:
filters?:
comparePeriod?:
getFeedbackBreakdown(args)getfeedbackbreakdownargs 的直接連結
傳回按維度分組的 Feedback 值。
const response = await mastraClient.getFeedbackBreakdown({
feedbackType: 'rating',
groupBy: ['entityName'],
aggregation: 'avg',
})
getFeedbackTimeSeries(args)getfeedbacktimeseriesargs 的直接連結
傳回按時間間距分桶的 Feedback 值。
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',
})
類型類型 的直接連結
FeedbackRecordfeedbackrecord 的直接連結
feedbackId?:
timestamp:
traceId?:
spanId?:
feedbackSource?:
source?:
feedbackSource 已棄用的別名。feedbackType:
value:
comment?:
feedbackUserId?:
sourceId?:
metadata?:
共用 context 欄位共用 context 欄位 的直接連結
Feedback 記錄可包含共用的可觀測性 context 欄位,用於篩選、分組,以及與 Trace、日誌、指標和分數建立關聯。
entityType?:
entityId?:
entityName?:
parentEntityType?:
parentEntityId?:
parentEntityName?:
rootEntityType?:
rootEntityId?:
rootEntityName?:
userId?:
organizationId?:
resourceId?:
runId?:
sessionId?:
threadId?:
requestId?:
environment?:
serviceName?:
scope?:
entityVersionId?:
parentEntityVersionId?:
rootEntityVersionId?:
experimentId?:
executionSource?:
FeedbackInputfeedbackinput 的直接連結
將 FeedbackInput 與 mastra.observability.addFeedback()、recordedTrace.addFeedback() 及 recordedSpan.addFeedback() 一併使用。
feedbackSource?:
source?:
feedbackSource 已棄用的別名。feedbackType:
value:
comment?:
feedbackUserId?:
userId?:
feedbackUserId 已棄用的別名。metadata?:
experimentId?:
sourceId?:
FeedbackFilterfeedbackfilter 的直接連結
在 listFeedback() 及 OLAP 查詢的 filters 中使用 FeedbackFilter。
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?:
HTTP 路由HTTP 路由 的直接連結
| 方法 | 路徑 | 用途 | 權限 |
|---|---|---|---|
GET | /api/observability/feedback | 列出 Feedback 記錄 | 無衍生權限 |
POST | /api/observability/feedback | 建立一筆 Feedback 記錄 | 無衍生權限 |
POST | /api/observability/feedback/aggregate | 傳回一個彙總值 | observability:read |
POST | /api/observability/feedback/breakdown | 按維度將 Feedback 分組 | observability:read |
POST | /api/observability/feedback/timeseries | 按時間間距將 Feedback 分桶 | observability:read |
POST | /api/observability/feedback/percentiles | 傳回百分位數序列 | observability:read |