优化提示词逻辑
This commit is contained in:
parent
8bf9caedf1
commit
c06878db59
|
|
@ -67,6 +67,8 @@ namespace Learn.VideoAnalysis.Components.Pages
|
|||
private static System.Timers.Timer _timer;
|
||||
public void StartTimer(Object source, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
if (_dataSource is null)
|
||||
return;
|
||||
foreach (var item in _dataSource)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(item.ErrorMessage) || item.LastEnum == RedisChannelEnum.EndTask)
|
||||
|
|
|
|||
|
|
@ -25,9 +25,9 @@ namespace Learn.VideoAnalysis.Controllers.Dto
|
|||
/// <summary>
|
||||
///回调Api地址
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "回调Api地址是必填项")]
|
||||
[Url(ErrorMessage = "请输入有效的 URL")]
|
||||
public string CallBackUrl { get; set; } = string.Empty;
|
||||
//[Required(ErrorMessage = "回调Api地址是必填项")]
|
||||
//[Url(ErrorMessage = "请输入有效的 URL")]
|
||||
//public string CallBackUrl { get; set; } = string.Empty;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ using VideoAnalysisCore.Enum;
|
|||
using System.Reflection;
|
||||
using FreeRedis;
|
||||
using VideoAnalysisCore.Model.Dto;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
||||
{
|
||||
|
|
@ -54,7 +55,7 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
|||
criteriaBuilder.Append(item.Id);
|
||||
criteriaBuilder.Append(":");
|
||||
criteriaBuilder.Append(item.NamePrompt);
|
||||
criteriaBuilder.Append("结果类型 bool|");
|
||||
criteriaBuilder.Append("结果类型 int (1-10分 5分不合格 10分满分)|");
|
||||
}
|
||||
//拼接枚举提问
|
||||
foreach (var value in System.Enum.GetValues(typeof(QuestionTypeEnum)))
|
||||
|
|
@ -95,17 +96,20 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
|||
};
|
||||
var chatResp = await moonshotClient.Chat(chatRep);
|
||||
if (chatResp is null || chatResp.error != null)
|
||||
throw new Exception($"KIMI模型返回异常 Chat 请求参数: {JsonSerializer.Serialize(chatRep)} " +
|
||||
$" chatResp {JsonSerializer.Serialize(chatResp)}");
|
||||
throw new Exception($"KIMI模型返回异常 Chat 请求参数: {System.Text.Json.JsonSerializer.Serialize(chatRep)} " +
|
||||
$" chatResp {System.Text.Json.JsonSerializer.Serialize(chatResp)}");
|
||||
var chatResContent = chatResp?.choices.FirstOrDefault()?.message.content;
|
||||
if (chatResContent is null)
|
||||
throw new Exception("KIMIGPT返回message无效结果");
|
||||
|
||||
var questionRes = JsonSerializer.Deserialize<QuestionRes[]>(chatResContent);
|
||||
var questionRes = JsonConvert.DeserializeObject<QuestionRes[]>(chatResContent);
|
||||
var gptRes = new CallGPTRes(captions);
|
||||
if (questionRes is null)
|
||||
throw new Exception("KIMIGPT返回无效结果");
|
||||
//处理 ai问答提问
|
||||
var arr1 = questionRes.Where(s => s.问题编号 < 100);
|
||||
var arr2 = questionRes.Where(s => s.问题编号 >= 100).ToDictionary(s => s.问题编号);
|
||||
var arr2 = questionRes.Where(s => s.问题编号 >= 100)
|
||||
.ToDictionary(s => s.问题编号);
|
||||
//AI综合评估
|
||||
var criteriaDic = criteriaArr.ToDictionary(s => s.Id);
|
||||
gptRes.Assessment = new AssessmentDto()
|
||||
|
|
@ -122,8 +126,9 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
|||
.Select(s => new CourseCriteria()
|
||||
{
|
||||
Id = criteriaDic[s.问题编号].Id,
|
||||
ImprovedMethods = criteriaDic[s.问题编号].ImprovedMethods,
|
||||
Prompt = criteriaDic[s.问题编号].ImprovedMethods,
|
||||
//ImprovedMethods = criteriaDic[s.问题编号].ImprovedMethods,
|
||||
Analyze = s.问题解释 ?? string.Empty,
|
||||
Prompt = criteriaDic[s.问题编号].Advantage,
|
||||
}).ToArray(),
|
||||
};
|
||||
|
||||
|
|
@ -140,7 +145,16 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
|||
End = double.Parse(s.key.Split(":")[2]??0.ToString()),
|
||||
Content = s.value,
|
||||
});
|
||||
//todo 分析上课时间段情况 分析 独立学习 小组合作 随堂练习等情况
|
||||
//分析上课时间段情况 分析 独立学习 小组合作 随堂练习等情况
|
||||
var extraTimeBase = arr2[(int)QuestionTypeEnum.额外课堂情况]
|
||||
.结果.ToObject<KeyValue<string>[]>()?.Select(s =>
|
||||
new TimeBase
|
||||
{
|
||||
Start = double.Parse(s.key.Split(":")[1] ?? 0.ToString()),
|
||||
End = double.Parse(s.key.Split(":")[2] ?? 0.ToString()),
|
||||
Content = s.value,
|
||||
});
|
||||
|
||||
|
||||
|
||||
var tId = long.Parse(task);
|
||||
|
|
|
|||
|
|
@ -192,15 +192,16 @@ namespace VideoAnalysisCore.Common
|
|||
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "-> " + key + " " + taskId);
|
||||
if (action is not null)
|
||||
{
|
||||
var tID = long.Parse(taskId);
|
||||
Redis.HMSet(RedisExpandKey.Task(taskId), "LastEnum", key);
|
||||
Redis.HMSet(RedisExpandKey.Task(taskId), "Progress", 0);
|
||||
await DbScoped.SugarScope.Updateable<VideoTask>()
|
||||
.SetColumns(it => it.LastEnum == key)
|
||||
.Where(it => it.Id == tID)
|
||||
.ExecuteCommandAsync();
|
||||
try
|
||||
{
|
||||
var tID = long.Parse(taskId);
|
||||
Redis.HMSet(RedisExpandKey.Task(taskId), "LastEnum", key);
|
||||
Redis.HMSet(RedisExpandKey.Task(taskId), "Progress", 0);
|
||||
await DbScoped.SugarScope.Updateable<VideoTask>()
|
||||
.SetColumns(it => it.LastEnum == key)
|
||||
.Where(it => it.Id == tID)
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
await action(taskId);
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
|
@ -208,7 +209,6 @@ namespace VideoAnalysisCore.Common
|
|||
//执行任务时出现异常
|
||||
var error = ex.Message + ex.StackTrace;
|
||||
await SetTaskErrorMessage(long.Parse(taskId), error);
|
||||
Redis.HMSet(RedisExpandKey.Task(taskId), "Error", error);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -11,10 +11,13 @@ namespace VideoAnalysisCore.Enum
|
|||
{
|
||||
|
||||
[Display(Prompt = "分析授课中使用的高频词10个频率从高到低 结果类型[]")]
|
||||
高频词 =100,
|
||||
高频词 = 100,
|
||||
[Display(Prompt = "分析字幕中每5分钟的一个概览 结果类型[{key:时间段,value:概览}]")]
|
||||
时间段概览 = 101,
|
||||
[Display(Prompt = "统计授课中教师提问类型的次数 类型[重复回答,老师追问,简单性表演,老师补充答案,表扬并补充答案] 结果类型[{key:类型,value:次数}]")]
|
||||
提问类型 = 102,
|
||||
|
||||
[Display(Prompt = " 分析授课中教师提到 类型[独立学习,小组合作,随堂练习]的时间段 结果类型[{key:类型,value:时间段/null}] ")]
|
||||
额外课堂情况 = 103,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -84,14 +84,14 @@ namespace VideoAnalysisCore.Model
|
|||
/// Chat模型分析缓存
|
||||
/// </summary>
|
||||
[SugarColumn(ColumnName = "ChatAnalysis", ColumnDataType = "longtext", IsNullable = true)]
|
||||
public string _ChatAnalysis { get; set; } = "[]";
|
||||
public string _ChatAnalysis { get; set; } = "{}";
|
||||
/// <summary>
|
||||
/// Chat模型分析缓存
|
||||
/// </summary>
|
||||
[SugarColumn(IsIgnore = true)]
|
||||
public CallGPTRes? ChatAnalysis
|
||||
{
|
||||
get => JsonSerializer.Deserialize<CallGPTRes>(_ChatAnalysis ?? "[]");
|
||||
get => JsonSerializer.Deserialize<CallGPTRes>(_ChatAnalysis ?? "{}");
|
||||
set => _ChatAnalysis = JsonSerializer.Serialize(value);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue