优化 任务处理进度同步速率

This commit is contained in:
小肥羊 2024-11-06 10:36:16 +08:00
parent 489aff9087
commit a2ef1d5d6d
8 changed files with 37 additions and 25 deletions

View File

@ -64,14 +64,8 @@ namespace Learn.VideoAnalysis.Components.Pages
StateHasChanged();
}
/// <summary>
/// 初始化
/// </summary>
protected override void OnInitialized()
{
var timer = new Timer(_ =>
{
InvokeAsync(() =>
private static System.Timers.Timer _timer;
public void StartTimer(Object source, System.Timers.ElapsedEventArgs e)
{
foreach (var item in _dataSource)
{
@ -79,9 +73,17 @@ namespace Learn.VideoAnalysis.Components.Pages
continue;
item.Progress = RedisExpand.Redis.HMGet<double>(RedisExpandKey.Task(item.Id), "Progress").FirstOrDefault();
}
} );
InvokeAsync(StateHasChanged);
}, null, dueTime: 500, period: 3000);
StateHasChanged();
}
/// <summary>
/// 初始化
/// </summary>
protected override void OnInitialized()
{
_timer = new System.Timers.Timer(2000);
_timer.Elapsed += StartTimer;
_timer.Enabled = true;
}
private async Task<bool> Comfirm(string message)

View File

@ -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; }
}
}

View File

@ -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);

View File

@ -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)
{

View File

@ -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);

View File

@ -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);

View File

@ -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)

View File

@ -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>