优化 AI分析流程的注释
This commit is contained in:
parent
89432c681f
commit
1f5ecaa604
|
|
@ -163,9 +163,13 @@ namespace VideoAnalysisCore.AICore.GPT.Dto
|
|||
/// </summary>
|
||||
public decimal Score { get; set; }
|
||||
/// <summary>
|
||||
/// 评分
|
||||
/// 扣分原因
|
||||
/// </summary>
|
||||
public string Evaluation { get; set; }
|
||||
public string MinusScore { get; set; }
|
||||
/// <summary>
|
||||
/// 改进建议
|
||||
/// </summary>
|
||||
public string Suggestion { get; set; }
|
||||
public VideoKnowRes[] Data { get; set; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ namespace VideoAnalysisCore.AICore.GPT
|
|||
var chatResp = await PostJsonStreamAsync(Config.Host + Config.Path, chatReq, Config.ApiKey);
|
||||
if (!chatResp.IsSuccessStatusCode)
|
||||
{
|
||||
await redisManager.AddTaskLog(chatReq.taskId, "=>请求GPT服务器异常 " + chatResp?.StatusCode + " " + await chatResp.Content.ReadAsStringAsync());
|
||||
await redisManager.AddTaskLog(chatReq.taskId, "==>请求GPT服务器异常 " + chatResp?.StatusCode + " " + await chatResp.Content.ReadAsStringAsync());
|
||||
if (--i < 0)
|
||||
{
|
||||
throw new Exception("请求GPT服务器失败次数过多");
|
||||
|
|
@ -140,8 +140,8 @@ namespace VideoAnalysisCore.AICore.GPT
|
|||
}
|
||||
}
|
||||
}
|
||||
throw new Exception(DateTime.Now + "=>AI请求超时 " + chatReq.taskId);
|
||||
//await redisManager.AddTaskLog(chatReq.taskId, DateTime.Now + "=>AI请求超时 " + chatReq.taskId);
|
||||
throw new Exception(DateTime.Now + "==>AI请求超时 " + chatReq.taskId);
|
||||
//await redisManager.AddTaskLog(chatReq.taskId, DateTime.Now + "==>AI请求超时 " + chatReq.taskId);
|
||||
//return null;
|
||||
}
|
||||
|
||||
|
|
@ -206,11 +206,11 @@ namespace VideoAnalysisCore.AICore.GPT
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await redisManager.AddTaskLog(chatRep.taskId, $"=>GPT结果解析错误 重试剩余{tryCount} {ex.Message} {ex.StackTrace}");
|
||||
await redisManager.AddTaskLog(chatRep.taskId, $"==>GPT结果解析错误 重试剩余{tryCount} {ex.Message} {ex.StackTrace}");
|
||||
}
|
||||
}
|
||||
await redisManager.AddTaskLog(chatRep.taskId, $"=>GPT请求失败次数过多!!!");
|
||||
throw new Exception(DateTime.Now + "=>GPT请求失败次数过多!!!");
|
||||
await redisManager.AddTaskLog(chatRep.taskId, $"==>GPT请求失败次数过多!!!");
|
||||
throw new Exception(DateTime.Now + "==>GPT请求失败次数过多!!!");
|
||||
}
|
||||
|
||||
public async Task<HttpResponseMessage> PostJsonStreamAsync(
|
||||
|
|
@ -249,7 +249,7 @@ namespace VideoAnalysisCore.AICore.GPT
|
|||
{e.StackTrace}
|
||||
==============================================
|
||||
""";
|
||||
await redisManager.AddTaskLog(data.taskId, $"=>GPT Http请求失败 {msg} 1秒后重试");
|
||||
await redisManager.AddTaskLog(data.taskId, $"==>GPT Http请求失败 {msg} 1秒后重试");
|
||||
Thread.Sleep(1000);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
$"输出内容只返回json格式({checkResFormat1})\n" +
|
||||
$" 格式 (方法点Id|方法点名称) \n" +
|
||||
$"提供的`知识点名称({knows})。\n";
|
||||
await redisManager.AddTaskLog(taskInfo.Id, "=>2.开始分析视频内容知识点");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, "==>2.开始分析视频内容知识点");
|
||||
VideoKnowRes[] konwRes;
|
||||
var knowOK = false;
|
||||
var chatClentArr = new GPTClient[] { chatGPTClient, geminiClient,deepSeekClient };
|
||||
|
|
@ -189,7 +189,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
var pptFormat = taskInfo.VideoType == AttachmentsInfoType.复习
|
||||
? "这堂课是习题课,所讲解内容几乎都是试题。"
|
||||
: string.Empty;
|
||||
var checkResFormat = """{"Score":打分(number),"Evaluation":扣分原因/改进建议(string)""";//,"Data":优化后的分段(array)}""";
|
||||
var checkResFormat = """{"Score":打分(number),"MinusScore":简洁的扣分原因(string)",Suggestion":改进建议(string)""";//,"Data":优化后的分段(array)}""";
|
||||
var checkMessage =
|
||||
$"""
|
||||
请你担任一位专业的视频内容分析教研老师,擅长评估视频内容的结构和逻辑流暢度。
|
||||
|
|
@ -227,7 +227,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
var newCaptionsList = new List<SenseVoiceRes>(captionsArr.Length);
|
||||
var spanCount = 75;
|
||||
var totalCount = captionsArr.Length / spanCount + 1;
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>字幕优化");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>字幕优化");
|
||||
|
||||
var chatClentArr = new GPTClient[] { deepSeekClient,chatGPTClient, geminiClient };
|
||||
await Parallel.ForAsync(0, totalCount,
|
||||
|
|
@ -263,13 +263,13 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
if (resData.Count() == cArr.Count())
|
||||
break;
|
||||
else
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>字幕优化 分段{s} AI结果数量不匹配 重试{i}");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>字幕优化 分段{s} AI结果数量不匹配 重试{i}");
|
||||
}
|
||||
|
||||
if (resData.Count() != cArr.Count())
|
||||
{
|
||||
resData = cStrArr.ToArray();
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>字幕优化 分段{s} AI结果数量不匹配 采用原始值");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>字幕优化 分段{s} AI结果数量不匹配 采用原始值");
|
||||
}
|
||||
newCaptionsList.AddRange(resData.Select((text, i) => new SenseVoiceRes()
|
||||
{
|
||||
|
|
@ -349,7 +349,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
/// <returns></returns>
|
||||
private async Task<SenseVoiceRes[]> AnalysisVideoQuestions(VideoTask taskInfo, List<KnowledgeInfo> knowledgeInfos)
|
||||
{
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>{taskInfo.Id} 提取试题");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>{taskInfo.Id} 提取试题");
|
||||
if (taskInfo is null || string.IsNullOrEmpty(taskInfo.PPTKeyFrame))
|
||||
return null;
|
||||
var farmeArr = JsonSerializer.Deserialize<int[]>(taskInfo.PPTKeyFrame);
|
||||
|
|
@ -390,7 +390,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
break;
|
||||
|
||||
#if DEBUG
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>{taskInfo.Id} 提取{knowInfoArr.StartTime}秒试题的试题内容");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>{taskInfo.Id} 提取{knowInfoArr.StartTime}秒试题的试题内容");
|
||||
#endif
|
||||
|
||||
//var knowArr=JsonSerializer.Serialize(knowInfoArr.Select(s => new { s.KnowPointId, s.KnowPoint }));
|
||||
|
|
@ -449,7 +449,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>{taskInfo.Id} 提取{knowInfoArr.StartTime}秒试题出现错误 {ex.Message}");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>{taskInfo.Id} 提取{knowInfoArr.StartTime}秒试题出现错误 {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -531,12 +531,13 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
|
||||
if (questionRes is null) continue;
|
||||
//处理分段 知识点
|
||||
var insertData = await GetVideoKnow(questionRes, taskInfo, sections, knowledgeInfos);//ChatGPT
|
||||
var insertData = await GetVideoKnow(questionRes, taskInfo, sections, knowledgeInfos);
|
||||
//校验结果质量
|
||||
var checkRes = await VerifySpanQuality(questionRes, taskInfo, captions, sections, Course_Id);
|
||||
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>课堂内容AI分析结果 得分=>{checkRes.Score} ");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, checkRes.Evaluation);
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>课堂内容AI分析结果 得分=>{checkRes.Score}");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>改进意见 {checkRes.Suggestion}");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>扣分原因 {checkRes.MinusScore}");
|
||||
|
||||
if (checkRes != null && checkRes.Score >= 85)
|
||||
{
|
||||
|
|
@ -546,10 +547,10 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
break;
|
||||
}
|
||||
else
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"=>课堂内容AI分析结果不合格!即将重试 剩余次数{tryCount}");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, $"==>课堂内容AI分析结果不合格!即将重试 剩余次数{tryCount}");
|
||||
if (questionRes.Any(s => s.KeepTime < 30))
|
||||
{
|
||||
await redisManager.AddTaskLog(taskInfo.Id, "=>视频分段过短!! 重新进行AI分析");
|
||||
await redisManager.AddTaskLog(taskInfo.Id, "==>视频分段过短!! 重新进行AI分析");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
|
|||
//如果携带任务ID
|
||||
if (!string.IsNullOrEmpty(task))
|
||||
{
|
||||
await redisManager.AddTaskLog(task, "=> SenseVoice 字幕数量" + res.Count);
|
||||
await redisManager.AddTaskLog(task, "==> SenseVoice 字幕数量" + res.Count);
|
||||
var captionsStr = res.ToJson();
|
||||
await videoTaskDB.AsUpdateable()
|
||||
.SetColumns(it => it.Captions == captionsStr)
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@ namespace VideoAnalysisCore.Common
|
|||
throw new Exception(@enum + " 未实现");
|
||||
var tId = taskId.ToString();
|
||||
|
||||
await AddTaskLog(tId, "-------------> 开始执行任务 ");
|
||||
await AddTaskLog(tId, "==> 开始执行任务 ");
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
|
|
|
|||
Loading…
Reference in New Issue