Browse Source

智能质检

田爽 3 months ago
parent
commit
bf08d2425a

+ 3 - 1
src/Hotline.Ai.Jths/AiQualityService.cs

@@ -21,8 +21,10 @@ namespace Hotline.Ai.Jths
             _client = new RestClient();
             _baseUrl = baseUrl;
         }
+        public async Task CreateAiOrderQualityTask(string filename, CancellationToken cancellationToken) { }
 
-        public async Task CreateAiOrderQualityTask(
+
+		public async Task CreateAiOrderQualityTask(
              string id,
              string audioFile,
              string fromNo,

+ 24 - 44
src/Hotline.Ai.XingTang/AiQualityService.cs

@@ -19,36 +19,22 @@ namespace Hotline.Ai.XingTang
         }
 
         public async Task CreateAiOrderQualityTask(
-             string id,
-             string audioFile,
-             string fromNo,
-             DateTime? callStartTime,
-             string viteRecordPrefix,
-             string ywlxString,
-			 CancellationToken cancellationToken)
+            string id,
+            string audioFile,
+            string fromNo,
+            DateTime? callStartTime,
+            string viteRecordPrefix,
+            string ywlxString,
+            CancellationToken cancellationToken)
+        { 
+        }
+
+
+		public async Task CreateAiOrderQualityTask(string filename, CancellationToken cancellationToken)
         {
-            if (string.IsNullOrEmpty(audioFile)) return;
-            var fileExtension = Path.GetExtension(audioFile);
-            if (!string.IsNullOrEmpty(fileExtension) && fileExtension.StartsWith('.'))
-                fileExtension = fileExtension.Substring(1);
-            //var ywlx = !string.IsNullOrEmpty(ywlxString) ? ywlxString : model.Source.ToString();
-            var agentChannel = "AiAnswered".Equals(ywlxString) ? "2" : "3";
-			List <AiQualityDto> datalist = new List<AiQualityDto>();
-            AiQualityDto aiQuality = new AiQualityDto
-            {
-                RecordID = id,
-                RecordPath = viteRecordPrefix + audioFile,
-                AgentID = "1001",
-                CallNumber = fromNo,
-                CallTime = callStartTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? string.Empty,
-                RecordForm = fileExtension,//recordForm,
-                ywlx = ywlxString,
-                AgentChannel = agentChannel
-			};
-            datalist.Add(aiQuality);
-            var data = Newtonsoft.Json.JsonConvert.SerializeObject(datalist);
-            var baseUrl = new Uri(_baseUrl);
-            await ExecuteAsync(baseUrl.ToString() + "routeinfo/api", Method.Post, data, cancellationToken);
+            var url = _baseUrl + "/offlinerecog?filename=" + filename;
+			var baseUrl = new Uri(url);
+             await ExecuteAsync(baseUrl.ToString(), Method.Get, "", cancellationToken);
         }
 
         public async Task<ApiResponse<TResponse>> ExecuteAsync<TRequest, TResponse>(string path, Method httpMethod,
@@ -81,21 +67,15 @@ namespace Hotline.Ai.XingTang
             where TRequest : class
         {
             var req = new RestRequest(path, httpMethod);
-            req.AddHeader("content-type", "application/json");
-            req.AddHeader("token", "");
-            req.AddHeader("version", "V1.0");
-            var sign = MD5Encrypt(request.ToString());
-            req.AddHeader("sign", sign);
-            req.AddHeader("signType", "md5");
-            req.AddHeader("appkey", "MTAwMDAx");
-            if (httpMethod is Method.Get)
-            {
-                req.AddObject(request);
-            }
-            else
-            {
-                req.AddJsonBody(request);
-            }
+            req.Timeout = new TimeSpan(0,30,0);
+            //if (httpMethod is Method.Get)
+            //{
+            //    req.AddObject(request);
+            //}
+            //else
+            //{
+            //    req.AddJsonBody(request);
+            //}
 
             try
             {

+ 12 - 1
src/Hotline.Api/Controllers/TestController.cs

@@ -73,6 +73,7 @@ using static System.Runtime.InteropServices.JavaScript.JSType;
 using Order = Hotline.Orders.Order;
 using Hotline.Share.Dtos.Settings;
 using OrderDto = Hotline.Share.Dtos.Order.OrderDto;
+using Hotline.Ai.Quality;
 
 namespace Hotline.Api.Controllers;
 
@@ -144,6 +145,7 @@ public class TestController : BaseController
 	private readonly IOrderScreenRepository _orderScreenRepository;
 	private readonly IRepository<OrderVisit> _orderVisitRepository;
     private readonly IThirdIdentiyService _thirdIdentiyService;
+	private readonly IServiceProvider _serviceProvider;
 
 
 	public TestController(
@@ -201,7 +203,8 @@ ICallApplication callApplication,
         IRepository<OldSendProData> oldSendProDataRepository,
         IThirdIdentiyService thirdIdentiyService,
 		IOrderScreenRepository orderScreenRepository,
-		IRepository<OrderVisit> orderVisitRepository
+		IRepository<OrderVisit> orderVisitRepository,
+		IServiceProvider serviceProvider
 		)
     {
         _logger = logger;
@@ -255,6 +258,7 @@ ICallApplication callApplication,
         _thirdIdentiyService = thirdIdentiyService;
         _orderScreenRepository = orderScreenRepository;
         _orderVisitRepository = orderVisitRepository;
+        _serviceProvider = serviceProvider;
 	}
 
     /// <summary>
@@ -1447,5 +1451,12 @@ ICallApplication callApplication,
 
 	}
 
+	[HttpGet("aiXingTang")]
+	[AllowAnonymous]
+	public async Task aiXingTang() {
+		var aiQualityService = _serviceProvider.GetRequiredService<IAiQualityService>();
+        await aiQualityService.CreateAiOrderQualityTask("cs202501030002.mp3", HttpContext.RequestAborted);
+
+	}
 
 }

+ 1 - 1
src/Hotline.Api/config/appsettings.Development.json

@@ -27,7 +27,7 @@
     "ZiGong": {
       //智能质检
       "AiQuality": {
-        "Url": "http://118.122.73.80:19072/" // 正式
+        "Url": "http://175.10.86.234:10095" // 正式
         //"Url": "http://118.122.73.80:19072/", // 测试
       },
       "AreaCode": "510300",

+ 2 - 0
src/Hotline/Ai/Quality/IAiQualityService.cs

@@ -15,5 +15,7 @@ namespace Hotline.Ai.Quality
 	{  
         //TrCallRecord? call,
 		Task CreateAiOrderQualityTask(string id, string audioFile,string fromNo,DateTime? callStartTime, string viteRecordPrefix, string ywlxString, CancellationToken cancellationToken);
+
+		Task CreateAiOrderQualityTask(string filename, CancellationToken cancellationToken);
 	}
 }