using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json; using System.Text.Json.Nodes; using System.Threading.Tasks; namespace VideoAnalysisCore.AICore.GPT.Dto { public class VideoKnowRes { /// /// 问题解释 /// public float? StartTime { get; set; } public float? EndTime { get; set; } /// /// 持续时间 /// public float? KeepTime => (EndTime ?? 0) - StartTime ?? 0; /// /// 主题 /// public string? Theme { get; set; } /// /// 新主题 /// public string? NewTheme { get; set; } /// /// 章节 /// public string? Section { get; set; } /// /// 内容总结 /// public string? Content { get; set; } } public class FileNameInfo { /// /// 问题解释 /// public string? 授课章节 { get; set; } public string? 授课内容 { get; set; } } public class QuestionRes { /// /// 对应问题的id /// public long 问题编号 { get; set; } /// /// 结果 /// public JsonDocument 结果 { get; set; } private object? _cached = null; /// /// 转换结果为对象 /// /// /// public T? ToObject() { try { if (_cached != null) return (T)_cached; var r = 结果.RootElement.GetRawText(); if (r is null) return default; _cached = System.Text.Json.JsonSerializer.Deserialize(r); if (_cached is null) return default; return (T)_cached; } catch { return default; } } /// /// 问题解释 /// public string? 问题解释 { get; set; } } /// /// 课堂AI评价 /// public class CourseCriteria { /// /// AI解析 /// public string Analyze { get; set; } = string.Empty; /// /// 问题编号 /// public long Id { get; set; } /// /// AI评估得分 /// public decimal Score { get; set; } /// /// 总分 /// public decimal TotalScore { get; set; } /// /// 及格分数 /// public decimal PassScore { get; set; } /// /// 提词 /// public string Prompt { get; set; } = string.Empty; /// /// 改进意见 /// 适用于:差的评价 /// public string? ImprovedMethods { get; set; } } /// /// 课堂AI评价结果 /// public class AssessmentDto { /// /// 优秀的评价 /// public CourseCriteria[]? Merit { get; set; } /// /// 差的评价 /// public CourseCriteria[]? Bad { get; set; } /// /// 改进意见 /// public string[]? BadImprovedMethods => (Merit?.Select(s => s.ImprovedMethods ?? string.Empty)?.ToArray() ?? []) .Concat(Bad?.Select(s => s.ImprovedMethods ?? string.Empty)?.ToArray() ?? []).ToArray(); } }