152 lines
4.0 KiB
C#
152 lines
4.0 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 问题解释
|
|
/// </summary>
|
|
public float? StartTime { get; set; }
|
|
public float? EndTime { get; set; }
|
|
///// <summary>
|
|
///// 持续时间
|
|
///// </summary>
|
|
public float? KeepTime => (EndTime ?? 0) - StartTime ?? 0;
|
|
/// <summary>
|
|
/// 主题
|
|
/// </summary>
|
|
public string? Theme { get; set; }
|
|
/// <summary>
|
|
/// 主题详情
|
|
/// </summary>
|
|
public string? ThemeDetalis { get; set; }
|
|
/// <summary>
|
|
/// 章节
|
|
/// </summary>
|
|
public string? Section { get; set; }
|
|
/// <summary>
|
|
/// 内容总结
|
|
/// </summary>
|
|
public string? Content { get; set; }
|
|
|
|
}
|
|
public class FileNameInfo
|
|
{
|
|
/// <summary>
|
|
/// 问题解释
|
|
/// </summary>
|
|
public string? 授课章节 { get; set; }
|
|
public string? 授课内容 { get; set; }
|
|
|
|
}
|
|
public class QuestionRes
|
|
{
|
|
/// <summary>
|
|
/// 对应问题的id
|
|
/// </summary>
|
|
public long 问题编号 { get; set; }
|
|
/// <summary>
|
|
/// 结果
|
|
/// </summary>
|
|
public JsonDocument 结果 { get; set; }
|
|
|
|
private object? _cached = null;
|
|
/// <summary>
|
|
/// 转换结果为对象
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
/// <returns></returns>
|
|
public T? ToObject<T>()
|
|
{
|
|
try
|
|
{
|
|
if (_cached != null)
|
|
return (T)_cached;
|
|
var r = 结果.RootElement.GetRawText();
|
|
if (r is null)
|
|
return default;
|
|
_cached = System.Text.Json.JsonSerializer.Deserialize<T>(r);
|
|
|
|
if (_cached is null)
|
|
return default;
|
|
return (T)_cached;
|
|
}
|
|
catch
|
|
{
|
|
return default;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 问题解释
|
|
/// </summary>
|
|
public string? 问题解释 { get; set; }
|
|
|
|
}
|
|
/// <summary>
|
|
/// 课堂AI评价
|
|
/// </summary>
|
|
public class CourseCriteria
|
|
{
|
|
/// <summary>
|
|
/// AI解析
|
|
/// </summary>
|
|
public string Analyze { get; set; } = string.Empty;
|
|
/// <summary>
|
|
/// 问题编号
|
|
/// </summary>
|
|
public long Id { get; set; }
|
|
/// <summary>
|
|
/// AI评估得分
|
|
/// </summary>
|
|
public decimal Score { get; set; }
|
|
/// <summary>
|
|
/// 总分
|
|
/// </summary>
|
|
public decimal TotalScore { get; set; }
|
|
/// <summary>
|
|
/// 及格分数
|
|
/// </summary>
|
|
public decimal PassScore { get; set; }
|
|
/// <summary>
|
|
/// 提词
|
|
/// </summary>
|
|
public string Prompt { get; set; } = string.Empty;
|
|
/// <summary>
|
|
/// 改进意见
|
|
/// <para>适用于:差的评价<see cref="AssessmentDto.Bad"/></para>
|
|
/// </summary>
|
|
public string? ImprovedMethods { get; set; }
|
|
|
|
}
|
|
/// <summary>
|
|
/// 课堂AI评价结果
|
|
/// </summary>
|
|
public class AssessmentDto
|
|
{
|
|
/// <summary>
|
|
/// 优秀的评价
|
|
/// </summary>
|
|
public CourseCriteria[]? Merit { get; set; }
|
|
/// <summary>
|
|
/// 差的评价
|
|
/// </summary>
|
|
public CourseCriteria[]? Bad { get; set; }
|
|
/// <summary>
|
|
/// 改进意见
|
|
/// </summary>
|
|
public string[]? BadImprovedMethods =>
|
|
(Merit?.Select(s => s.ImprovedMethods ?? string.Empty)?.ToArray() ?? [])
|
|
.Concat(Bad?.Select(s => s.ImprovedMethods ?? string.Empty)?.ToArray() ?? []).ToArray();
|
|
}
|
|
|
|
}
|