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 int Score { 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 =>
Bad?.Select(s => s.ImprovedMethods??string.Empty)?.ToArray();
}
}