优化 课程类型分析流程
This commit is contained in:
parent
2609f13ea5
commit
1cb53fe405
|
|
@ -308,7 +308,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
$"4.生成内容总结与主题:内容总结:用1-2句话简述该阶段的核心讲解内容(例如,“通过例题演示柯西不等式在求最值中的应用”)。" +
|
$"4.生成内容总结与主题:内容总结:用1-2句话简述该阶段的核心讲解内容(例如,“通过例题演示柯西不等式在求最值中的应用”)。" +
|
||||||
$"5.阶段主题:基于内容总结,提炼一个具体主题(例如,“柯西不等式的基本应用”)。" +
|
$"5.阶段主题:基于内容总结,提炼一个具体主题(例如,“柯西不等式的基本应用”)。" +
|
||||||
$"6.时长检查与调整:计算每个阶段的时长(结束时间减开始时间)。如果阶段时长低于50秒,则合并相邻的类似内容阶段(例如,将两个连续的例题讲解合并为一个阶段),或扩展时间段以确保最低50秒。调整时需保持内容连贯性。" +
|
$"6.时长检查与调整:计算每个阶段的时长(结束时间减开始时间)。如果阶段时长低于50秒,则合并相邻的类似内容阶段(例如,将两个连续的例题讲解合并为一个阶段),或扩展时间段以确保最低50秒。调整时需保持内容连贯性。" +
|
||||||
$"7.输出要求:最终分析结果应列出每个阶段的开始时间、结束时间、阶段类型、主题和内容总结(不包含提示词内容),确保划分合理、无重叠,且时长符合要求。" +
|
$"7.输出要求:最终分析结果应列出每个阶段的开始时间、结束时间、阶段类型、主题和详细的内容总结(50~100字不包含提示词内容),确保划分合理、无重叠,且时长符合要求。" +
|
||||||
$"输出内容只返回json格式({resFormat})" +
|
$"输出内容只返回json格式({resFormat})" +
|
||||||
$"字幕格式(开始秒:内容|下一段字幕).以下是包含时间的视频字幕文本。" +
|
$"字幕格式(开始秒:内容|下一段字幕).以下是包含时间的视频字幕文本。" +
|
||||||
$"字幕列表 {captions.Captions} 字幕结束!";
|
$"字幕列表 {captions.Captions} 字幕结束!";
|
||||||
|
|
@ -326,7 +326,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
$"4.生成内容总结与主题:内容总结:用1-2句话简述该阶段的核心讲解内容(例如,“通过例题演示柯西不等式在求最值中的应用”)。" +
|
$"4.生成内容总结与主题:内容总结:用1-2句话简述该阶段的核心讲解内容(例如,“通过例题演示柯西不等式在求最值中的应用”)。" +
|
||||||
$"5.阶段主题:基于内容总结,提炼一个具体主题(例如,“柯西不等式的基本应用”)。" +
|
$"5.阶段主题:基于内容总结,提炼一个具体主题(例如,“柯西不等式的基本应用”)。" +
|
||||||
$"6.时长检查与调整:计算每个阶段的时长(结束时间减开始时间)。如果阶段时长低于50秒,则合并相邻的类似内容阶段(例如,将两个连续的例题讲解合并为一个阶段),或扩展时间段以确保最低50秒。调整时需保持内容连贯性。" +
|
$"6.时长检查与调整:计算每个阶段的时长(结束时间减开始时间)。如果阶段时长低于50秒,则合并相邻的类似内容阶段(例如,将两个连续的例题讲解合并为一个阶段),或扩展时间段以确保最低50秒。调整时需保持内容连贯性。" +
|
||||||
$"7.输出要求:最终分析结果应列出每个阶段的开始时间、结束时间、阶段类型、主题和内容总结,确保划分合理、无重叠,且时长符合要求。" +
|
$"7.输出要求:最终分析结果应列出每个阶段的开始时间、结束时间、阶段类型、主题和详细的内容总结(50~100字不包含提示词内容),确保划分合理、无重叠,且时长符合要求。" +
|
||||||
$"输出格式要求:内容只返回json格式({resFormat})" +
|
$"输出格式要求:内容只返回json格式({resFormat})" +
|
||||||
$"字幕格式(开始秒:内容|下一段字幕).以下是包含时间的视频字幕文本。" +
|
$"字幕格式(开始秒:内容|下一段字幕).以下是包含时间的视频字幕文本。" +
|
||||||
$"字幕列表 {captions.Captions} 字幕结束!";
|
$"字幕列表 {captions.Captions} 字幕结束!";
|
||||||
|
|
@ -420,7 +420,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
$"输出内容只返回json格式为({resFormat})" +
|
$"输出内容只返回json格式为({resFormat})" +
|
||||||
$"以下是试题内容" +
|
$"以下是试题内容" +
|
||||||
$"`{sRes.Result.res.value}`";
|
$"`{sRes.Result.res.value}`";
|
||||||
var resData = await chatGPTClient.ChatAsync<VideoQuestionOSSDto[]>(taskInfo.Id.ToString(), postMessages, "提取试题");
|
var resData = await chatClient.ChatAsync<VideoQuestionOSSDto[]>(taskInfo.Id.ToString(), postMessages, "提取试题");
|
||||||
//var resData = await chatClient.ChatAsync<VideoQuestionOSSDto[]>(taskInfo.Id.ToString(), postMessages, "提取试题");
|
//var resData = await chatClient.ChatAsync<VideoQuestionOSSDto[]>(taskInfo.Id.ToString(), postMessages, "提取试题");
|
||||||
if (resData is null || resData.Count() == 0)
|
if (resData is null || resData.Count() == 0)
|
||||||
break;
|
break;
|
||||||
|
|
@ -621,11 +621,8 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
||||||
var taskInfo = await videoTaskDB.AsQueryable()
|
var taskInfo = await videoTaskDB.AsQueryable()
|
||||||
.Where(s => s.Id == taskId)
|
.Where(s => s.Id == taskId)
|
||||||
.FirstAsync();
|
.FirstAsync();
|
||||||
if (taskInfo.VideoType != null)
|
if (taskInfo.VideoType != null&& taskInfo.VideoType!=AttachmentsInfoType.无)
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
|
|
||||||
var subject = taskInfo.Subject.ToString();
|
var subject = taskInfo.Subject.ToString();
|
||||||
var Course_Id = taskInfo.CourseId;
|
var Course_Id = taskInfo.CourseId;
|
||||||
var videoTypeStr = string.Join(',', Enum.GetNames(typeof(AttachmentsInfoType)));
|
var videoTypeStr = string.Join(',', Enum.GetNames(typeof(AttachmentsInfoType)));
|
||||||
|
|
|
||||||
|
|
@ -310,11 +310,14 @@ namespace VideoAnalysisCore.Common
|
||||||
var oldTaskArr = Redis.LRange(RedisExpandKey.IDTask, 0, oldTaskCount);
|
var oldTaskArr = Redis.LRange(RedisExpandKey.IDTask, 0, oldTaskCount);
|
||||||
Redis.LTrim(RedisExpandKey.IDTask, 1, 0);//删除 redis 列表
|
Redis.LTrim(RedisExpandKey.IDTask, 1, 0);//删除 redis 列表
|
||||||
foreach (var oldTask in oldTaskArr)
|
foreach (var oldTask in oldTaskArr)
|
||||||
|
{
|
||||||
|
_ = Task.Run(async () =>
|
||||||
{
|
{
|
||||||
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "-------------> 接收上次未完成任务 " + oldTask);
|
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "-------------> 接收上次未完成任务 " + oldTask);
|
||||||
await ClearTaskError(long.Parse(oldTask));
|
await ClearTaskError(long.Parse(oldTask));
|
||||||
var lastEnum = (await Redis.HMGetAsync<RedisChannelEnum>(RedisExpandKey.Task(oldTask), "LastEnum")).FirstOrDefault();
|
var lastEnum = (await Redis.HMGetAsync<RedisChannelEnum>(RedisExpandKey.Task(oldTask), "LastEnum")).FirstOrDefault();
|
||||||
await InsertChannel(lastEnum, oldTask);
|
await InsertChannel(lastEnum, oldTask);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ namespace VideoAnalysisCore.Model.Enum
|
||||||
}
|
}
|
||||||
public enum AttachmentsInfoType
|
public enum AttachmentsInfoType
|
||||||
{
|
{
|
||||||
|
无 = -1,
|
||||||
新课 = 0,
|
新课 = 0,
|
||||||
[Description("复习/习题课")]
|
[Description("复习/习题课")]
|
||||||
复习 = 3,
|
复习 = 3,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue