UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

46 lines (45 loc) 1.72 kB
/** * RecommendationMetrics — 推荐效果度量追踪 * * 追踪推荐系统的关键指标: * - 展示次数 (display) * - 查看次数 (view) * - 采纳次数 (adopt) * - 忽略次数 (dismiss) * - 采纳率 = adopt / (adopt + dismiss) * - CTR = view / display * * 所有数据委托给 FeedbackStore 持久化。 * 本类只负责实时聚合 + 对外暴露接口。 */ import type { FeedbackStore } from './FeedbackStore.js'; import type { RecommendationMetricsSnapshot, ScoredRecommendation } from './types.js'; interface MetricsCounters { displayed: number; viewed: number; adopted: number; dismissed: number; expired: number; } export declare class RecommendationMetrics { #private; constructor(feedbackStore: FeedbackStore); /** 记录推荐已展示 (dashboard/MCP 返回推荐列表时调用) */ trackDisplayed(recommendations: ScoredRecommendation[]): void; /** 记录推荐被采纳 */ trackAdopted(recommendationId: string, source?: string, category?: string): Promise<void>; /** 记录推荐被忽略 */ trackDismissed(recommendationId: string, reason?: string, source?: string, category?: string): Promise<void>; /** 记录推荐过期 */ trackExpired(recommendationId: string, source?: string): Promise<void>; /** 获取当前会话的指标 */ getSessionMetrics(): MetricsCounters & { adoptionRate: number; ctr: number; }; /** 获取全局指标快照 (含持久化历史) */ getGlobalSnapshot(since?: Date): RecommendationMetricsSnapshot; /** 获取指定来源的采纳率 */ getAdoptionRateBySource(source: string): number; } export default RecommendationMetrics;