diff --git a/VideoAnalysisCore/AICore/FFMPGE/FFMPGEHandle.cs b/VideoAnalysisCore/AICore/FFMPGE/FFMPGEHandle.cs index 617076d..aa220fe 100644 --- a/VideoAnalysisCore/AICore/FFMPGE/FFMPGEHandle.cs +++ b/VideoAnalysisCore/AICore/FFMPGE/FFMPGEHandle.cs @@ -84,7 +84,7 @@ namespace VideoAnalysisCore.AICore.FFMPGE keyFrames.Add((int)timestamp); //string outputPath = Path.Combine(outputDir, $"change_{timestamp:0000}.jpg"); //currFrame.Save(outputPath); - Console.WriteLine($"变化帧: {timestamp}秒,差异值: {ssim:F2}"); + //Console.WriteLine($"变化帧: {timestamp}秒,差异值: {ssim:F2}"); } //Console.WriteLine($"帧: {timestamp}秒,SSIM{ssim:F2} 差异值: {ssim:F2} "); diff --git a/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs b/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs index 79d0750..d95bff3 100644 --- a/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs +++ b/VideoAnalysisCore/AICore/GPT/DeepSeek/DeepSeek_GPT.cs @@ -200,42 +200,40 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek new ParallelOptions() { MaxDegreeOfParallelism = 20 }, async (s, c) => { - while (true) - { - var cArr = captionsArr - .Skip(spanCount * s) - .Take(spanCount); - if (cArr.Count() == 0) - return; - var nowCaptionStr = cArr.Select(s => s.Text).ToJson(); - var resFormat = """[string(修改结果)]"""; - var postMessages = - $"这是一堂中国{subject}课堂的字幕,由结果是语音识别提供。" + - $"字幕内容与{subject}学科{sections}章节相关。" + - $"但是识别出来的字幕包含错误的关键字 例如应当是'数列'被识别为'树列'。" + - $"所以需要你帮我修复其中的错别字,修复公式排版。" + - $"请注意,只允许对字幕进行修改。" + - $"输出内容只返回json格式({resFormat})" + - $"字幕内容(JSON字符串)" + - $"`{nowCaptionStr}`" + - $"字幕结束。" + - $"最后请确保输出字幕条数与输入字幕条数一致!!! 如果不一致则重新优化并且确保字幕条数一致!!!!"; - Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s}开始..."); - var resData = await ChatAsync(taskInfo.Id.ToString(), postMessages, "优化字幕", "deepseek-chat", 3000); - if (resData.Count() != cArr.Count()) - { - Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s} AI结果数量不匹配,重试×"); - continue; - } - newCaptionsList.AddRange(resData.Select((text, i) => new SenseVoiceRes() - { - Start = captionsArr[spanCount * s + i].Start, - End = captionsArr[spanCount * s + i].End, - Text = text, - })); - Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s}完成√ "); + var cArr = captionsArr + .Skip(spanCount * s) + .Take(spanCount); + if (cArr.Count() == 0) return; + var cStrArr = cArr.Select(s => s.Text); + var nowCaptionStr = cStrArr.ToJson(); + var resFormat = """[string(修改结果)]"""; + var postMessages = + $"这是一堂中国{subject}课堂的字幕,由结果是语音识别提供。" + + $"字幕内容与{subject}学科{sections}章节相关。" + + $"但是识别出来的字幕包含错误的关键字 例如应当是'数列'被识别为'树列'。" + + $"所以需要你帮我修复其中的错别字,修复公式排版。" + + $"请注意,只允许对字幕进行修改。" + + $"输出内容只返回json格式({resFormat})" + + $"字幕内容(JSON字符串)" + + $"`{nowCaptionStr}`" + + $"字幕结束。" + + $"最后请确保输出字幕条数与输入字幕条数一致!!! 如果不一致则重新优化并且确保字幕条数一致!!!!"; + Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s}开始..."); + var resData = await ChatAsync(taskInfo.Id.ToString(), postMessages, "优化字幕", "deepseek-chat", 3000); + if (resData.Count() != cArr.Count()) + { + resData = cStrArr.ToArray(); + Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s} AI结果数量不匹配,采用原始值"); } + newCaptionsList.AddRange(resData.Select((text, i) => new SenseVoiceRes() + { + Start = captionsArr[spanCount * s + i].Start, + End = captionsArr[spanCount * s + i].End, + Text = text, + })); + Console.WriteLine(DateTime.Now + $"=>{taskInfo.Id}字幕优化 分段{s}完成√ "); + return; }); var res = newCaptionsList.OrderBy(s => s.Start).ToArray(); Console.WriteLine(DateTime.Now + $"=>字幕优化执行完成"); @@ -505,6 +503,10 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek } } } + + if(insertData==null || insertData.Count==0|| insertQuestionKonw.Count==0) + return null; + //上传oss 并更新imageUrl ossClient.AddVideoQuestionUrl(insertData); diff --git a/VideoAnalysisCore/Common/DownloadFile.cs b/VideoAnalysisCore/Common/DownloadFile.cs index f79a042..834d3a2 100644 --- a/VideoAnalysisCore/Common/DownloadFile.cs +++ b/VideoAnalysisCore/Common/DownloadFile.cs @@ -12,6 +12,7 @@ using VideoAnalysisCore.Job; using VideoAnalysisCore.Model; using VideoAnalysisCore.Model.Enum; using AlibabaCloud.SDK.Vod20170321; +using UserCenter.Model.Enum; namespace VideoAnalysisCore.Common { diff --git a/VideoAnalysisCore/Controllers/LJZK_Controller.cs b/VideoAnalysisCore/Controllers/LJZK_Controller.cs index 26644c9..e90f665 100644 --- a/VideoAnalysisCore/Controllers/LJZK_Controller.cs +++ b/VideoAnalysisCore/Controllers/LJZK_Controller.cs @@ -70,11 +70,18 @@ namespace VideoAnalysisCore.Controllers var nodePackages = new List(reqArr.Count()); var videoIdArr = videoTaskDB.AsQueryable().Select(v => v.TagId).Distinct().ToArray(); var courseArr = await courseInfoDB.AsQueryable().ToArrayAsync(); + //ϵͳɽѧ + var subjectArr = new List + { + SubjectEnum.ѧ + }; foreach (var sGroup in reqArr.GroupBy(s => s.ContentId)) { var s = sGroup.FirstOrDefault(s => s.VideoType == VideoType.ͷ); if (s is null) return BadRequest("ЧʦڿƵ"); + //УѧЧ + if (!subjectArr.Contains(s.SubjectId)) continue; var stageId = s.StageId.GetHashCode(); var subjectId = s.SubjectId.GetHashCode(); var course = courseArr.FirstOrDefault(x => stageId == x.Stage_Id && subjectId == x.Subject_Id);