diff --git a/VideoAnalysisCore/AICore/GPT/ChatGPTType.cs b/VideoAnalysisCore/AICore/GPT/ChatGPTType.cs index 9354423..072901a 100644 --- a/VideoAnalysisCore/AICore/GPT/ChatGPTType.cs +++ b/VideoAnalysisCore/AICore/GPT/ChatGPTType.cs @@ -11,7 +11,7 @@ namespace VideoAnalysisCore.AICore.GPT //public const string GPT5_mini = "gpt-5-mini"; //public const string GPT5 = "gpt-5-2025-08-07"; - public const string GPT54_mini = "gpt-5.4-mini"; + public const string GPT54_mini = "gpt-5.4-mini-2026-03-17"; public const string GPT54 = "gpt-5.4"; public const string Deepseek_Reasoner = "deepseek-reasoner"; diff --git a/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs b/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs index 4d2ab10..0cc9ede 100644 --- a/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs +++ b/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs @@ -220,16 +220,17 @@ namespace VideoAnalysisCore.AICore.GPT var checkMessage = $""" 请你担任一位专业的视频内容分析教研老师,擅长评估视频内容的结构和逻辑流暢度。 + {(taskInfo.VideoType == AttachmentsInfoType.复习 ?" 本堂课是复习课,分段可能是针对大段的知识点讲解" :string.Empty)} 核心任务: 请根据我提供的【分段方案】【完整字幕文本】,对该分段方案进行严谨评估。 补充上下文:{pptFormat} 本节课所属章节:{sections} 内容结构与主题合理性: - 分段准确性:评估单个分段内的课堂字幕内容与分段的Theme/Conten匹配、是否存在错误,捏造的情况(硬性指标)。 + 分段准确性:评估单个分段内的课堂字幕描述内容与分段的Theme/Conten匹配、是否存在错误,捏造的情况(硬性指标)。 知识点分配:检查分段内的知识点是否与分段Conten有关联,知识点分配给这个分段是否合理(硬性指标)。 逻辑过渡:评估分段之间的过渡是否自然流畅,后一段是否是前一段内容的合理延伸或转折。 额外补充: 1. 忽略掉分段没有结束时间的问题我会自己处理 - 2. 评估的分数只针对分段方案的内容是否与实际字幕描述内容符合 + 2. 评估的分数只针对分段方案的内容是否与实际字幕讲述内容符合 3. 字幕内容仅供参考不被计入扣分项 综合评分: 请基于以上分析,提供一个0-100的综合得分(70分及格,打分一定要严谨,总分一定要准确)。 @@ -394,7 +395,7 @@ namespace VideoAnalysisCore.AICore.GPT /// /// private async Task> Analytics(VideoTask taskInfo, - TotalCaptionsDto captions, string sections) + TotalCaptionsDto captions, string sections,string last改进意见) { var tryCount = 10; while (tryCount-- > 0) @@ -422,8 +423,10 @@ namespace VideoAnalysisCore.AICore.GPT 不分析课堂作业相关的内容我已经预处理了 初步划分阶段:{keyFrameStr} Stage:判断阶段类型如果内容以解题为主,归类为“例题精讲”;如果涉及新知识讲解,归类为“新知讲解”;以此类推。 - Content:简述单个阶段的核心讲解内容40~150字(如“例题”“证明”“练习”“总结”...), 必须完全基于字幕文本可推断的信息,禁止捏造不存在的内容(硬性条件)。 - Theme:理解Content,提炼一个精确的主题(例如,“柯西不等式的基本应用”)。 + Content:简述单个阶段的核心讲解内容40~150字(如“例题”“证明”“练习”“总结”...), 必须完全基于字幕文本可推断的信息,禁止捏造不存在的内容,表述可稍微收敛绝对化措辞,避免出现比字幕更强的结论外推(硬性条件)。 + Theme:理解Content,提炼一个精确的主题 (例如,“xxxx的基本应用” 标题尽量避免过度理想化,保持“教学实际流程”与“知识点概括”一致)。 + {(string.IsNullOrEmpty(last改进意见) ? last改进意见 :"我还有一段上次分析结果的的改进意见 也请你在分析时也参考不要在出现相同问题 "+ last改进意见)} + -------------------------------------------------------- 输出要求:确保阶段划分合理、无重叠、 输出格式要求:内容只返回json格式({resFormat}) 字幕格式(开始秒:内容|下一段字幕).以下是包含时间的视频字幕文本。 @@ -760,10 +763,11 @@ namespace VideoAnalysisCore.AICore.GPT var maxVideoTime = captions?.TimeBase?.LastOrDefault()?.End ?? 0; List? questionRes = null; var tryCount = 20; + var last改进意见 = string.Empty; while (tryCount-- > 0) { //视频字幕分析 - questionRes = await Analytics(taskInfo, captions, sections); + questionRes = await Analytics(taskInfo, captions, sections, last改进意见); if (questionRes is null) continue; //处理分段 知识点 List insertData = await GetVideoKnow(questionRes, taskInfo, sections, knowledgeInfos); @@ -774,6 +778,8 @@ namespace VideoAnalysisCore.AICore.GPT await _workflowManager.AddTaskLog(taskInfo.Id, $"==>课堂内容AI分析结果 得分=>{checkRes.Score}"); await _workflowManager.AddTaskLog(taskInfo.Id, $"==>改进意见 {checkRes.Suggestion}"); await _workflowManager.AddTaskLog(taskInfo.Id, $"==>扣分原因 {checkRes.MinusScore}"); + last改进意见 = checkRes.Suggestion; + // 质量复检 //if (checkRes != null) //{