diff --git a/Learn.VideoAnalysis.API/appsettings.json b/Learn.VideoAnalysis.API/appsettings.json index 5ef3ad7..11991ec 100644 --- a/Learn.VideoAnalysis.API/appsettings.json +++ b/Learn.VideoAnalysis.API/appsettings.json @@ -66,15 +66,15 @@ "EndPoint": "vod.cn-shanghai.aliyuncs.com" //上传节点 }, "AliyunOSS": { - "AccessKeyId": "LTAI5tDC6p9h747B7FHbgwkH", - "AccessKeySecret": "vRKgmbp1LB05LaGOjh3ZrZxbHSLYLF", + "AccessKeyId": "LTAI5tFLXyC3ixVdxhxLih8K", + "AccessKeySecret": "dlGu3WMoW0XQaoAYxiCPpnxry6qLhB", "BucketDomain": "https://learn-videoanalysis.oss-cn-chengdu.aliyuncs.com", "Region": "cn-chengdu", "BucketName": "learn-videoanalysis", "EndPoint": "oss-cn-chengdu.aliyuncs.com" //上传节点 }, "OtherDBArr": [ - {// 线上正式环境库 + { // 线上正式环境库 "ConfigId": 1001, //ResourceBank "ConnectionString": "AllowLoadLocalInfile=true;Server=rm-2vc20nd3d11g0oh6g2o.rwlb.cn-chengdu.rds.aliyuncs.com;User ID=marking;Password=poiuytPOIUYT098765)(*&^%;Port=3306;Database=resourcebank;CharSet=utf8mb4;pooling=true;SslMode=None", "SqlType": "MySql" diff --git a/VideoAnalysis/appsettings.Production.json b/VideoAnalysis/appsettings.Production.json index 25c98a4..5f79412 100644 --- a/VideoAnalysis/appsettings.Production.json +++ b/VideoAnalysis/appsettings.Production.json @@ -22,14 +22,6 @@ "FFmpeg": { " TimeSlice": 600 }, - "AliyunOSS": { - "AccessKeyId": "LTAI5tDC6p9h747B7FHbgwkH", - "AccessKeySecret": "vRKgmbp1LB05LaGOjh3ZrZxbHSLYLF", - "BucketDomain": "https://learn-videoanalysis.oss-cn-chengdu.aliyuncs.com", - "Region": "cn-chengdu", - "BucketName": "learn-videoanalysis", - "EndPoint": "oss-cn-chengdu.aliyuncs.com" //上传节点 - }, "DB": { //"ConnectionString": "AllowLoadLocalInfile=true;Server=10.255.255.3;Port=3306;Database=learn.videoanalysis;User ID=marking;Password=qwe123!@#;CharSet=utf8mb4;pooling=true;SslMode=None", "ConnectionString": "AllowLoadLocalInfile=true;Server=rm-2vc20nd3d11g0oh6g2o.rwlb.cn-chengdu.rds.aliyuncs.com;User ID=marking;Password=poiuytPOIUYT098765)(*&^%;Port=3306;Database=learn.videoanalysis;CharSet=utf8mb4;pooling=true;SslMode=None", diff --git a/VideoAnalysis/appsettings.json b/VideoAnalysis/appsettings.json index 2a4389d..ab07d01 100644 --- a/VideoAnalysis/appsettings.json +++ b/VideoAnalysis/appsettings.json @@ -76,7 +76,7 @@ //"ConnectionString": "AllowLoadLocalInfile=true;Server=rm-2vc20nd3d11g0oh6g2o.rwlb.cn-chengdu.rds.aliyuncs.com;User ID=marking;Password=poiuytPOIUYT098765)(*&^%;Port=3306;Database=learn.videoanalysis;CharSet=utf8mb4;pooling=true;SslMode=None", "SqlType": "MySql", - "UpdateTable": true + "UpdateTable": false }, "AlibabaCloudVod": { "AccessKeyId": "LTAI5tDC6p9h747B7FHbgwkH", @@ -84,8 +84,8 @@ "EndPoint": "vod.cn-shanghai.aliyuncs.com" //上传节点 }, "AliyunOSS": { - "AccessKeyId": "LTAI5tDC6p9h747B7FHbgwkH", - "AccessKeySecret": "vRKgmbp1LB05LaGOjh3ZrZxbHSLYLF", + "AccessKeyId": "LTAI5tFLXyC3ixVdxhxLih8K", + "AccessKeySecret": "dlGu3WMoW0XQaoAYxiCPpnxry6qLhB", "BucketDomain": "https://learn-videoanalysis.oss-cn-chengdu.aliyuncs.com", "Region": "cn-chengdu", "BucketName": "learn-videoanalysis", diff --git a/VideoAnalysisCore/AICore/GPT/BserGPT.cs b/VideoAnalysisCore/AICore/GPT/BaseGPT.cs similarity index 96% rename from VideoAnalysisCore/AICore/GPT/BserGPT.cs rename to VideoAnalysisCore/AICore/GPT/BaseGPT.cs index 890d984..f8cf941 100644 --- a/VideoAnalysisCore/AICore/GPT/BserGPT.cs +++ b/VideoAnalysisCore/AICore/GPT/BaseGPT.cs @@ -16,7 +16,7 @@ using VideoAnalysisCore.AICore.GPT.Gemini; namespace VideoAnalysisCore.AICore.GPT { - public interface IBserGPTWorkflow + public interface IBaseGPTWorkflow { /// /// 访问GPT @@ -185,10 +185,13 @@ namespace VideoAnalysisCore.AICore.GPT public static void AddGPTService(this IServiceCollection services) { services.AddSingleton(); - services.AddSingleton(); + services.AddSingleton(); services.AddSingleton(); services.AddSingleton(); - services.AddSingleton(); + services.AddSingleton(); } diff --git a/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs b/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs index f7a35b4..4ce85dc 100644 --- a/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs +++ b/VideoAnalysisCore/AICore/GPT/GTP_Analysis_1.cs @@ -33,7 +33,7 @@ namespace VideoAnalysisCore.AICore.GPT /// /// 视频分析工作流1 /// - public class GTP_Analysis_1 : IBserGPTWorkflow + public class GTP_Analysis_1 : IBaseGPTWorkflow { private readonly GeminiGPTClient geminiClient; private readonly DeepSeekGPTClient deepSeekClient; diff --git a/VideoAnalysisCore/Common/VideoSliceWorkflowManager.cs b/VideoAnalysisCore/Common/VideoSliceWorkflowManager.cs index f436704..94d869c 100644 --- a/VideoAnalysisCore/Common/VideoSliceWorkflowManager.cs +++ b/VideoAnalysisCore/Common/VideoSliceWorkflowManager.cs @@ -67,21 +67,21 @@ namespace VideoAnalysisCore.Common SubscribeList.Add(RedisChannelEnum.AI课程类型, async (task) => { using var scope = _serviceProvider.CreateScope(); - var service = scope.ServiceProvider.GetService(); + var service = scope.ServiceProvider.GetService(); if (service is null) throw new Exception("IBserGPT 未注入"); await service.GetVideoType(task); }); SubscribeList.Add(RedisChannelEnum.AI模型分析, async (task) => { using var scope = _serviceProvider.CreateScope(); - var service = scope.ServiceProvider.GetService(); + var service = scope.ServiceProvider.GetService(); if (service is null) throw new Exception("IBserGPT 未注入"); await service.GetKnow(task); }); SubscribeList.Add(RedisChannelEnum.AI分析试题, async (task) => { using var scope = _serviceProvider.CreateScope(); - var service = scope.ServiceProvider.GetService(); + var service = scope.ServiceProvider.GetService(); if (service is null) throw new Exception("IBserGPT 未注入"); await service.GetVideoQuestion(task); }); diff --git a/VideoAnalysisCore/Controllers/VideoTaskController.cs b/VideoAnalysisCore/Controllers/VideoTaskController.cs index d6f1202..896456d 100644 --- a/VideoAnalysisCore/Controllers/VideoTaskController.cs +++ b/VideoAnalysisCore/Controllers/VideoTaskController.cs @@ -132,9 +132,9 @@ namespace VideoAnalysisCore.Controllers public IActionResult StartTask(bool task) { if (task) - videoSliceWorkflowManager.StopTask=false; + videoSliceWorkflowManager.StopTask = false; else - videoSliceWorkflowManager.StopTask=true; + videoSliceWorkflowManager.StopTask = true; return Ok(); } /// @@ -168,7 +168,7 @@ namespace VideoAnalysisCore.Controllers { using var s = file.OpenReadStream(); var res = senseVoice.RunTask(s); - return Ok(res); + return Ok(res); } /// /// 语音识别 @@ -248,7 +248,7 @@ namespace VideoAnalysisCore.Controllers /// 请求体 /// [HttpPost(Name = "VideoAnalysis_Batch")] - public async Task VideoAnalysis_Batch(VideoAnalysisReq[] req) + public async Task VideoAnalysis_Batch(VideoAnalysisReq[] req) { foreach (var item in req) await VideoAnalysis(item); @@ -371,8 +371,8 @@ namespace VideoAnalysisCore.Controllers .LRangeAsync(RedisExpandKey.TaskLog, 0, 99)) .Where(s => s.VideoTaskId == id); - logArr = logArr.Concat(insertData).ToArray(); - + logArr = logArr.Concat(insertData).ToArray(); + // 获取所有相关工作流的状态 var workflows = await baseService.Context.Queryable() .Where(w => w.VideoTaskId == id) @@ -464,7 +464,15 @@ namespace VideoAnalysisCore.Controllers { // 扫描 Heartbeat Key var pattern = RedisExpandKey.DeviceHeartbeat("*"); - var keys = redisManager.Redis.Scan(pattern, 1000).ToList(); + var keys = new List(); + long cursor = 0; + do + { + var scanResult = redisManager.Redis.Scan(cursor, pattern, 1000, null); + keys.AddRange(scanResult.items); + cursor = scanResult.cursor; + } while (cursor != 0); + var prefix = RedisExpandKey.DeviceHeartbeat(""); var devices = keys.Select(k => k.Replace(prefix, "")).ToList(); return Ok(devices); @@ -490,7 +498,15 @@ namespace VideoAnalysisCore.Controllers oldTaskArr = new List(); // 直接扫描 Heartbeat Key 获取在线设备 var pattern = RedisExpandKey.DeviceHeartbeat("*"); - var keys = redisManager.Redis.Scan(pattern, 1000).ToList(); + var keys = new List(); + long cursor = 0; + do + { + var scanResult = redisManager.Redis.Scan(cursor, pattern, 1000, null); + keys.AddRange(scanResult.items); + cursor = scanResult.cursor; + } while (cursor != 0); + var prefix = RedisExpandKey.DeviceHeartbeat(""); var onlineDevices = keys.Select(k => k.Replace(prefix, "")).ToList(); @@ -537,7 +553,7 @@ namespace VideoAnalysisCore.Controllers public async Task ErrorTaskList([FromBody] QueryRequestBase model) { var sqlquery = base.BaseQuery(model) - .Where(s => s.ErrorMessage!=null && s.ErrorMessage !="") + .Where(s => s.ErrorMessage != null && s.ErrorMessage != "") .Select(s => new VideoTask { Id = s.Id, @@ -562,14 +578,14 @@ namespace VideoAnalysisCore.Controllers /// 查询模型 /// [HttpGet] - public async Task> TaskLog(long id ) + public async Task> TaskLog(long id) { var logArr = await taskLogDB.AsQueryable() .Where(s => s.VideoTaskId == id) .ToArrayAsync(); var insertData = (await redisManager.Redis .LRangeAsync(RedisExpandKey.TaskLog, 0, 99)) - .Where(s=>s.VideoTaskId == id); + .Where(s => s.VideoTaskId == id); return logArr.Concat(insertData); } @@ -586,10 +602,10 @@ namespace VideoAnalysisCore.Controllers var result = await db.Queryable() .Where(s => s.VideoTaskId == id) .FirstAsync(); - + if (result == null) return BadRequest("未找到 TidySlide 任务结果"); - + return Ok(result); } }