diff --git a/VideoAnalysis/Components/Pages/VideoTaskPage.razor.cs b/VideoAnalysis/Components/Pages/VideoTaskPage.razor.cs index 7cdd79c..12c0952 100644 --- a/VideoAnalysis/Components/Pages/VideoTaskPage.razor.cs +++ b/VideoAnalysis/Components/Pages/VideoTaskPage.razor.cs @@ -64,24 +64,26 @@ namespace Learn.VideoAnalysis.Components.Pages StateHasChanged(); } + private static System.Timers.Timer _timer; + public void StartTimer(Object source, System.Timers.ElapsedEventArgs e) + { + foreach (var item in _dataSource) + { + if (!string.IsNullOrEmpty(item.ErrorMessage) || item.LastEnum == RedisChannelEnum.EndTask) + continue; + item.Progress = RedisExpand.Redis.HMGet(RedisExpandKey.Task(item.Id), "Progress").FirstOrDefault(); + } + + StateHasChanged(); + } /// /// 初始化 /// protected override void OnInitialized() { - var timer = new Timer(_ => - { - InvokeAsync(() => - { - foreach (var item in _dataSource) - { - if (!string.IsNullOrEmpty(item.ErrorMessage) || item.LastEnum == RedisChannelEnum.EndTask) - continue; - item.Progress = RedisExpand.Redis.HMGet(RedisExpandKey.Task(item.Id), "Progress").FirstOrDefault(); - } - } ); - InvokeAsync(StateHasChanged); - }, null, dueTime: 500, period: 3000); + _timer = new System.Timers.Timer(2000); + _timer.Elapsed += StartTimer; + _timer.Enabled = true; } private async Task Comfirm(string message) diff --git a/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs b/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs index df90eee..372f6a5 100644 --- a/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs +++ b/VideoAnalysisCore/AICore/ChatGPT/Dto/QuestionRes.cs @@ -15,11 +15,11 @@ namespace VideoAnalysisCore.AICore.ChatGPT.Dto /// /// 结果 /// - public object[]? 结果 { get; set; } + public object? 结果 { get; set; } /// /// 问题解释 /// - public string 问题解释 { get; set; } + public string? 问题解释 { get; set; } } } diff --git a/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs b/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs index ce7d493..88ec897 100644 --- a/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs +++ b/VideoAnalysisCore/AICore/ChatGPT/KIMI/KIMI_GPT.cs @@ -87,7 +87,7 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI model = modelId, messages = new List(){ new MessagesItem(postMessages,"system"), - new MessagesItem(postMessages,"assistant"), + new MessagesItem(resFormat,"assistant"), } }; var chatResp = await moonshotClient.Chat(chatRep); diff --git a/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs b/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs index 9419182..dfbd14f 100644 --- a/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs +++ b/VideoAnalysisCore/AICore/ChatGPT/KIMI/MoonshotClient.cs @@ -6,6 +6,7 @@ using Newtonsoft.Json.Linq; using System.Net.Http; using Newtonsoft.Json; using System.Net.Http.Json; +using AntDesign; /// /// https://platform.moonshot.cn/docs/api-reference @@ -68,7 +69,15 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI /// public async Task GetAsTiMateTokenCount(string chatReqText) { - var response = await PostJsonAsync("/v1/tokenizers/estimate-token-count", chatReqText); + var reqObject = new + { + model = "moonshot-v1-128k", + messages = new List() + { + new MessagesItem(chatReqText,"system"), + } + }; + var response = await PostJsonStreamAsync("/v1/tokenizers/estimate-token-count", JsonConvert.SerializeObject(reqObject)); var responseText = await response.Content.ReadAsStringAsync(); if (response.IsSuccessStatusCode) { diff --git a/VideoAnalysisCore/AICore/SherpaOnnx/Speaker.cs b/VideoAnalysisCore/AICore/SherpaOnnx/Speaker.cs index 2ddf81b..f39132e 100644 --- a/VideoAnalysisCore/AICore/SherpaOnnx/Speaker.cs +++ b/VideoAnalysisCore/AICore/SherpaOnnx/Speaker.cs @@ -55,7 +55,7 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx (numProcessedChunks, numTotalChunks, arg) => { i++; - if(i%50 !=0) + if(i%20 !=0) return 1; var progress = (double)numProcessedChunks / numTotalChunks * 100; RedisExpand.SetTaskProgress(task, progress); diff --git a/VideoAnalysisCore/Common/DownloadFile.cs b/VideoAnalysisCore/Common/DownloadFile.cs index f31ef05..221b567 100644 --- a/VideoAnalysisCore/Common/DownloadFile.cs +++ b/VideoAnalysisCore/Common/DownloadFile.cs @@ -82,7 +82,7 @@ namespace VideoAnalysisCore.Common totalBytesRead += bytesRead; // 计算下载进度 - if (count % 50 == 0) + if (count % 30 == 0) { var progress = (double)totalBytesRead / totalBytes.Value * 100; RedisExpand.SetTaskProgress(task, progress); diff --git a/VideoAnalysisCore/Common/RedisExpand.cs b/VideoAnalysisCore/Common/RedisExpand.cs index b00d9d1..eefeac1 100644 --- a/VideoAnalysisCore/Common/RedisExpand.cs +++ b/VideoAnalysisCore/Common/RedisExpand.cs @@ -107,7 +107,7 @@ namespace VideoAnalysisCore.Common /// public static void SetTaskProgress(object taskId,double p) { - Redis.HMSet(RedisExpandKey.Task(taskId), "Progress", p); + Redis.HMSet(RedisExpandKey.Task(taskId), "Progress", Math.Round(p,2)); } /// @@ -194,6 +194,7 @@ namespace VideoAnalysisCore.Common { var tID = long.Parse(taskId); Redis.HMSet(RedisExpandKey.Task(taskId), "LastEnum", key); + Redis.HMSet(RedisExpandKey.Task(taskId), "Progress", 0); await DbScoped.SugarScope.Updateable() .SetColumns(it => it.LastEnum == key) .Where(it => it.Id == tID) diff --git a/VideoAnalysisCore/Model/Dto/VideoTaskDto.cs b/VideoAnalysisCore/Model/Dto/VideoTaskDto.cs index 20a98fa..5c1ba0b 100644 --- a/VideoAnalysisCore/Model/Dto/VideoTaskDto.cs +++ b/VideoAnalysisCore/Model/Dto/VideoTaskDto.cs @@ -34,16 +34,16 @@ namespace VideoAnalysisCore.Model.Dto [DisplayName("最后执行")] public RedisChannelEnum LastEnum { get; set; } /// + /// 执行进度 + /// + [DisplayName("进度")] + public double Progress { get; set; } + /// /// 错误信息 /// [DisplayName("错误信息")] public string? ErrorMessage { get; set; } - /// - /// 执行进度 - /// - [DisplayName("进度")] - public double Progress { get; set; } /// /// 媒体路径 ///