优化 任务预览流程

This commit is contained in:
小肥羊 2025-01-13 18:22:25 +08:00
parent eb45f0fd41
commit cbb6315fac
6 changed files with 25 additions and 21 deletions

View File

@ -19,11 +19,11 @@
</TitleTemplate> </TitleTemplate>
<ColumnDefinitions Context="row"> <ColumnDefinitions Context="row">
<Selection /> <Selection />
<PropertyColumn Property="c=>c.Id" Width="130px" Filterable="true" Sortable="true" /> <PropertyColumn Property="c=>c.Id" Width="110px" Filterable="true" Sortable="true" />
<PropertyColumn Property="c=>c.MediaName" Width="200px" />
<PropertyColumn Property="c=>c.TagId" Width="160px" /> <PropertyColumn Property="c=>c.TagId" Width="160px" />
<PropertyColumn Property="c=>c.LastEnum" Width="150px" /> <PropertyColumn Property="c=>c.LastEnum" Width="150px" />
<PropertyColumn Property="c=>c.Subject" Width="100px" /> <PropertyColumn Property="c=>c.Subject" Width="100px" />
<PropertyColumn Property="c=>c.ApiToken" Width="150px" />
<PropertyColumn Property="c=>c.ComeFrom" Width="100px" /> <PropertyColumn Property="c=>c.ComeFrom" Width="100px" />
<PropertyColumn Property="c=>c.MediaUrl" Width="320px" /> <PropertyColumn Property="c=>c.MediaUrl" Width="320px" />
<PropertyColumn Property="c=>c.TotalTokens" Width="100px" /> <PropertyColumn Property="c=>c.TotalTokens" Width="100px" />

View File

@ -4,6 +4,7 @@
@if (videoKnows != null) @if (videoKnows != null)
{ {
<div id="segmentsContainer"> <div id="segmentsContainer">
<h2>@nowTask.MediaName</h2>
@for (int i = 0; i < videoKnows.Length; i++) @for (int i = 0; i < videoKnows.Length; i++)
{ {
var item = videoKnows[i]; var item = videoKnows[i];

View File

@ -205,7 +205,7 @@ namespace Learn.VideoAnalysis.Controllers
Subject = req.Subject, Subject = req.Subject,
Tag = req.Tag, Tag = req.Tag,
TagId = req.TagId, TagId = req.TagId,
MediaName = req.MediaName MediaName = req.Name
}; };
//Èë¿â //Èë¿â
task.Id = await videoTaskDB.InsertReturnBigIdentityAsync(task); task.Id = await videoTaskDB.InsertReturnBigIdentityAsync(task);

View File

@ -15,14 +15,12 @@ namespace Learn.VideoAnalysis.Controllers.Dto
/// 媒体路径 /// 媒体路径
/// </summary> /// </summary>
[Required(ErrorMessage = "资源URL是必填项")] [Required(ErrorMessage = "资源URL是必填项")]
[Url(ErrorMessage = "请输入有效的 URL")]
public string MediaUrl { get; set; } = string.Empty; public string MediaUrl { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 资源名称 /// 资源名称
/// </summary> /// </summary>
[Required(ErrorMessage = "资源名称是必要的")] [Required(ErrorMessage = "资源名称是必要的")]
[Url(ErrorMessage = "请输入有效的 资源名称")] public string Name { get; set; } = string.Empty;
public string MediaName { get; set; } = string.Empty;
/// <summary> /// <summary>
/// ApiKey /// ApiKey
/// </summary> /// </summary>

View File

@ -80,11 +80,11 @@ namespace VideoAnalysisCore.AICore.GPT.ChatGPT
.Where(s => s.Course_Id == 27 .Where(s => s.Course_Id == 27
&& s.Depth == 2) && s.Depth == 2)
.Select(s => s.Name).ToArrayAsync(); .Select(s => s.Name).ToArrayAsync();
string title = "周三1.3)《第八章——统计与概率:超几何分布的极限为二项分布》"; string title = taskInfo.MediaName;
var fileNameResFormat = "{授课章节: string|null, 授课内容:string}"; var fileNameResFormat = "{授课章节: string|null, 授课内容:string}";
var fileNamePostMessages = title + var fileNamePostMessages = title +
" 这是一堂课的标题,请你帮我分析一些关于课堂方面的内容." + " 这是一堂课的标题,请你帮我分析一些关于课堂方面的内容." +
$"1.分析出高中{subject}课堂授课的主要章节(例如 章节: 数列),章节范围限定在[{xkwKnows}]范围." + $"1.分析出高中{subject}课堂授课的主要章节(例如 章节: 数列),章节范围限定在[{string.Join(',', xkwKnows)}]范围." +
$"2.分析出这堂课的主要授课内容." + $"2.分析出这堂课的主要授课内容." +
$"输出格式 json字符串 对象格式{fileNameResFormat}"; $"输出格式 json字符串 对象格式{fileNameResFormat}";
var fileNameInfoRes = await ChatAsync<FileNameInfo>(task, fileNamePostMessages, fileNameResFormat); var fileNameInfoRes = await ChatAsync<FileNameInfo>(task, fileNamePostMessages, fileNameResFormat);
@ -92,7 +92,7 @@ namespace VideoAnalysisCore.AICore.GPT.ChatGPT
var captions = ExpandFunction.GetSpeakerCaptions(task); var captions = ExpandFunction.GetSpeakerCaptions(task);
var criteriaBuilder = new StringBuilder(); var criteriaBuilder = new StringBuilder();
var resFormat = """[{"StartTime":开始秒(number),"EndTime":结束秒(number),"Section":章节(string),"Theme":主题(string),"Content":内容总结(string)}]"""; var resFormat = """[{"StartTime":开始秒(number),"EndTime":结束秒(number),"Section":章节(string),"Theme":主题(string),"NewTheme":新主题(string),"Content":内容总结(string)}]""";
var know = await knowledgeInfoDB.GetFirstAsync(s => s.Name == fileNameInfoRes.); var know = await knowledgeInfoDB.GetFirstAsync(s => s.Name == fileNameInfoRes.);
var knowledgeInfos = await knowledgeInfoDB.AsQueryable().ToChildListAsync(s => s.Parent_Id, know.Id); var knowledgeInfos = await knowledgeInfoDB.AsQueryable().ToChildListAsync(s => s.Parent_Id, know.Id);
var knows = "数列的概念,数列的定义,项的表示,数列的表示方法,通项公式,递推公式,图像表示,数列的类型,等差数列,等比数列,其他特殊数列,数列的性质,单调性,有限性,数列的求和,等差数列求和公式,等比数列求和公式,数列极限,递推关系"; var knows = "数列的概念,数列的定义,项的表示,数列的表示方法,通项公式,递推公式,图像表示,数列的类型,等差数列,等比数列,其他特殊数列,数列的性质,单调性,有限性,数列的求和,等差数列求和公式,等比数列求和公式,数列极限,递推关系";
@ -107,6 +107,7 @@ namespace VideoAnalysisCore.AICore.GPT.ChatGPT
$"4.关联合并相似的知识点来合并为内容片段。" + $"4.关联合并相似的知识点来合并为内容片段。" +
$"内容片段使用关联知识点中的最小(开始秒)和(最大)结束秒,主题为关联知识点的主题分析,内容总结为关联知识点的内容总结分析。" + $"内容片段使用关联知识点中的最小(开始秒)和(最大)结束秒,主题为关联知识点的主题分析,内容总结为关联知识点的内容总结分析。" +
$"延长内容片段时间区间来获取更加详细的上下文。" + $"延长内容片段时间区间来获取更加详细的上下文。" +
$"基于内容片段的内容总结加上主题来分析这个片段对主题的讲解内容为新的主题 例(数列的基本概念)。" +
$"输入:包含时间戳的视频字幕文本。" + $"输入:包含时间戳的视频字幕文本。" +
$"以下是包含时间的视频字幕文本。" + $"以下是包含时间的视频字幕文本。" +
$"字幕格式(说话人:开始秒:结束秒:内容|下一段字幕).字幕列表 {captions.Captions}" + $"字幕格式(说话人:开始秒:结束秒:内容|下一段字幕).字幕列表 {captions.Captions}" +
@ -130,20 +131,20 @@ namespace VideoAnalysisCore.AICore.GPT.ChatGPT
await RedisExpand.Redis await RedisExpand.Redis
.HMSetAsync(RedisExpandKey.Task(task), "VideoKnows", questionRes); .HMSetAsync(RedisExpandKey.Task(task), "VideoKnows", questionRes);
var postMessages1 = //var postMessages1 =
$"你的任务是分析json内容并合并含义相似的主题为新的主题" + // $"你的任务是分析json内容并合并含义相似的主题为新的主题" +
$"按以下步骤完成:" + // $"按以下步骤完成:" +
$"1.合理合并主题字段重复相似的对象为新的json对象确保内容的连贯性和逻辑性。" + // $"1.合理合并主题字段重复相似的对象为新的json对象确保内容的连贯性和逻辑性。" +
$"2.合并对象属性持续时间低于60秒的对象" + // $"2.合并对象属性持续时间低于60秒的对象" +
$"3.结构化输出。" + // $"3.结构化输出。" +
$"输入json对象 包含总结开始秒,结束秒,持续时间,主题,章节,内容总结" + // $"输入json对象 包含总结开始秒,结束秒,持续时间,主题,章节,内容总结" +
$"以下是包含json内容的文本。" + // $"以下是包含json内容的文本。" +
$" {JsonSerializer.Serialize(questionRes)}" + // $" {JsonSerializer.Serialize(questionRes)}" +
$"返回固定的JSON格式({resFormat})"; // $"返回固定的JSON格式({resFormat})";
var questionRes1 = await ChatAsync<VideoKnowRes[]>(task, postMessages1, resFormat); //var questionRes1 = await ChatAsync<VideoKnowRes[]>(task, postMessages1, resFormat);
//questionRes1 = MergeRes(questionRes1).ToArray(); ////questionRes1 = MergeRes(questionRes1).ToArray();
var gptRes = new TaskRes(captions); var gptRes = new TaskRes(captions);
await RedisExpand.Redis await RedisExpand.Redis

View File

@ -26,6 +26,10 @@ namespace VideoAnalysisCore.AICore.GPT.Dto
/// </summary> /// </summary>
public string? Theme { get; set; } public string? Theme { get; set; }
/// <summary> /// <summary>
/// 新主题
/// </summary>
public string? NewTheme { get; set; }
/// <summary>
/// 章节 /// 章节
/// </summary> /// </summary>
public string? Section { get; set; } public string? Section { get; set; }