优化 任务处理进度同步速率
This commit is contained in:
parent
489aff9087
commit
a2ef1d5d6d
|
|
@ -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<double>(RedisExpandKey.Task(item.Id), "Progress").FirstOrDefault();
|
||||
}
|
||||
|
||||
StateHasChanged();
|
||||
}
|
||||
/// <summary>
|
||||
/// 初始化
|
||||
/// </summary>
|
||||
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<double>(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<bool> Comfirm(string message)
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@ namespace VideoAnalysisCore.AICore.ChatGPT.Dto
|
|||
/// <summary>
|
||||
/// 结果
|
||||
/// </summary>
|
||||
public object[]? 结果 { get; set; }
|
||||
public object? 结果 { get; set; }
|
||||
/// <summary>
|
||||
/// 问题解释
|
||||
/// </summary>
|
||||
public string 问题解释 { get; set; }
|
||||
public string? 问题解释 { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
|||
model = modelId,
|
||||
messages = new List<MessagesItem>(){
|
||||
new MessagesItem(postMessages,"system"),
|
||||
new MessagesItem(postMessages,"assistant"),
|
||||
new MessagesItem(resFormat,"assistant"),
|
||||
}
|
||||
};
|
||||
var chatResp = await moonshotClient.Chat(chatRep);
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using Newtonsoft.Json.Linq;
|
|||
using System.Net.Http;
|
||||
using Newtonsoft.Json;
|
||||
using System.Net.Http.Json;
|
||||
using AntDesign;
|
||||
|
||||
/// <summary>
|
||||
/// https://platform.moonshot.cn/docs/api-reference
|
||||
|
|
@ -68,7 +69,15 @@ namespace VideoAnalysisCore.AICore.ChatGPT.KIMI
|
|||
/// <exception cref="Exception"></exception>
|
||||
public async Task<int?> GetAsTiMateTokenCount(string chatReqText)
|
||||
{
|
||||
var response = await PostJsonAsync("/v1/tokenizers/estimate-token-count", chatReqText);
|
||||
var reqObject = new
|
||||
{
|
||||
model = "moonshot-v1-128k",
|
||||
messages = new List<MessagesItem>()
|
||||
{
|
||||
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)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ namespace VideoAnalysisCore.Common
|
|||
/// <param name="taskId"></param>
|
||||
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));
|
||||
|
||||
}
|
||||
/// <summary>
|
||||
|
|
@ -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<VideoTask>()
|
||||
.SetColumns(it => it.LastEnum == key)
|
||||
.Where(it => it.Id == tID)
|
||||
|
|
|
|||
|
|
@ -34,16 +34,16 @@ namespace VideoAnalysisCore.Model.Dto
|
|||
[DisplayName("最后执行")]
|
||||
public RedisChannelEnum LastEnum { get; set; }
|
||||
/// <summary>
|
||||
/// 执行进度
|
||||
/// </summary>
|
||||
[DisplayName("进度")]
|
||||
public double Progress { get; set; }
|
||||
/// <summary>
|
||||
/// 错误信息
|
||||
/// </summary>
|
||||
[DisplayName("错误信息")]
|
||||
public string? ErrorMessage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 执行进度
|
||||
/// </summary>
|
||||
[DisplayName("进度")]
|
||||
public double Progress { get; set; }
|
||||
/// <summary>
|
||||
/// 媒体路径
|
||||
/// </summary>
|
||||
|
|
|
|||
Loading…
Reference in New Issue