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.ChatGPT.Dto { 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(); } }