| | | 1 | | namespace Intentum.Analytics.Models; |
| | | 2 | | |
| | | 3 | | /// <summary> |
| | | 4 | | /// Intent-based profile for an entity: aggregate intent names and confidence distribution → labels. |
| | | 5 | | /// Use for "user/system profile" derived from timeline (e.g. frequent researcher, quick decider). |
| | | 6 | | /// </summary> |
| | | 7 | | /// <param name="EntityId">Entity identifier (e.g. userId).</param> |
| | | 8 | | /// <param name="Start">Start of the time window used.</param> |
| | | 9 | | /// <param name="End">End of the time window used.</param> |
| | | 10 | | /// <param name="Labels">Derived labels (e.g. "frequent_researcher", "high_confidence").</param> |
| | | 11 | | /// <param name="TopIntents">Intent name → count (most frequent intents in the window).</param> |
| | | 12 | | /// <param name="AverageConfidenceScore">Average confidence score in the window.</param> |
| | | 13 | | /// <param name="HighConfidencePercent">Percentage of points with High (or Certain) confidence.</param> |
| | | 14 | | /// <param name="PointCount">Number of timeline points in the window.</param> |
| | 2 | 15 | | public sealed record IntentProfile( |
| | 2 | 16 | | string EntityId, |
| | 0 | 17 | | DateTimeOffset Start, |
| | 0 | 18 | | DateTimeOffset End, |
| | 2 | 19 | | IReadOnlyList<string> Labels, |
| | 3 | 20 | | IReadOnlyDictionary<string, int> TopIntents, |
| | 2 | 21 | | double AverageConfidenceScore, |
| | 1 | 22 | | double HighConfidencePercent, |
| | 4 | 23 | | int PointCount); |