diff --git a/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs b/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs index 0103b72..a917021 100644 --- a/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs +++ b/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs @@ -292,14 +292,17 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek postMessages = $"请通过视频字幕内容分析出视频中课堂的授课阶段。" + $"课堂内容与{taskInfo.Subject}学科下的{sections}章节相关。" + - $"授课阶段是每个知识点。" + $"{keyFrameArr}" + $"完整的课堂标准流程包含以下5个阶段:课程引入/新知讲解/例题精讲/课堂练习/知识总结。" + $"但本堂课是习题课,所以大部分阶段是不同的例题讲解内容。" + - $"通过授课阶段的主要讲解内容分析出对应的授课阶段内容总结。" + - $"通过生成的内容总结分析出对应的授课阶段主题。 " + - $"最后请检查每个授课阶段的时长,不允许出现低于50秒的阶段。" + - $"输出内容只返回json格式({resFormat})" + + $"1.初步划分阶段:基于PPT变化时间点,将字幕内容分割成时间段。每个时间段的起始和结束应接近这些时间点(例如,以时间点为中心,扩展至内容自然过渡处)。" + + $"2.内容分析:对每个时间段,提取主要讲解内容:识别关键词(如“例题”“证明”“练习”“总结”)和内容结构。" + + $"3.判断阶段类型:如果内容以解题为主,归类为“例题精讲”;如果涉及新知识讲解,归类为“新知讲解”;以此类推。" + + $"4.生成内容总结与主题:内容总结:用1-2句话简述该阶段的核心讲解内容(例如,“通过例题演示柯西不等式在求最值中的应用”)。" + + $"5.阶段主题:基于内容总结,提炼一个具体主题(例如,“柯西不等式的基本应用”)。" + + $"6.时长检查与调整:计算每个阶段的时长(结束时间减开始时间)。如果阶段时长低于50秒,则合并相邻的类似内容阶段(例如,将两个连续的例题讲解合并为一个阶段),或扩展时间段以确保最低50秒。调整时需保持内容连贯性。" + + $"7.输出要求:最终分析结果应列出每个阶段的开始时间、结束时间、阶段类型、主题和内容总结,确保划分合理、无重叠,且时长符合要求。" + + $"输出格式要求:内容只返回json格式({resFormat})" + $"字幕格式(开始秒:内容|下一段字幕).以下是包含时间的视频字幕文本。" + $"字幕列表 {captions.Captions} 字幕结束!"; break; @@ -658,6 +661,10 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek var taskInfo = await videoTaskDB.AsQueryable() .Where(s => s.Id == taskId) .FirstAsync(); + if (taskInfo.VideoType != null) + { + return; + } var subject = taskInfo.Subject.ToString(); var Course_Id = taskInfo.CourseId;