From 8abe276c9d8bbbc9315847dc7ba67bb8fae5db2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=B0=8F=E8=82=A5=E7=BE=8A?= <1048382248@qq.com>
Date: Fri, 10 Apr 2026 18:19:19 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20=E6=8F=90=E7=A4=BA?=
=?UTF-8?q?=E8=AF=8D=20=E5=8A=A0=E4=B8=8A=E5=88=86=E6=9E=90=E7=9A=84?=
=?UTF-8?q?=E6=94=B9=E8=BF=9B=E6=84=8F=E8=A7=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
VideoAnalysisCore/AICore/GPT/ChatGPTType.cs | 2 +-
VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs | 18 ++++++++++++------
2 files changed, 13 insertions(+), 7 deletions(-)
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)
//{