Sfoglia il codice sorgente

错误信息国际化与AI参数优化及结构细化

本次提交主要内容:
- 支持TokenHub错误信息中文描述,提升本地化体验
- ChatRequest默认模型名与MaxTokens参数优化
- 增强AI查询日志与部分SSE提示注释
- ResourceController业务逻辑与进度提示优化
- LocalEntryInfo新增NeedCount字段,控制数据条数
- 其他变量命名与正则判断等细节修正
Lyyyi 1 settimana fa
parent
commit
66d9fc9f46

+ 0 - 1
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -4349,7 +4349,6 @@ namespace OASystem.API.Controllers
 
                             foreach (var bx in bx_arr) EncryptionProcessor.DecryptProperties(bx);
 
-
                             string bx_ClientName = insureDatas.Find(it => payInfo.DIId == it.DiId && payInfo.CId == it.Id)?.ClientName ?? "";
                             string bx_clientName = "-";
                             if (Regex.Match(bx_ClientName, @"\d+,?").Value.Length > 0)

+ 5 - 2
OASystem/OASystem.Api/Controllers/ResourceController.cs

@@ -8908,9 +8908,8 @@ WHERE
                 var targetCountrySet = new HashSet<string>(entryInfo.TargetCountry);
                 #endregion
 
-                await HttpContext.SendSseStepAsync(20, "正在解析本地典籍 (并行解密)...");
-
                 #region 2. 内存计算优化
+                //await HttpContext.SendSseStepAsync(20, "正在解析本地典籍 (并行解密)...");
                 //// 仅查询必要字段,减少 DataReader 压力
                 //var rawLocalDatas = await _sqlSugar.Queryable<Res_InvitationOfficialActivityData>()
                 //    .Where(x => x.IsDel == 0 && !string.IsNullOrEmpty(x.UnitName))
@@ -8941,6 +8940,8 @@ WHERE
 
                 #region 3. 混元 AI 协同炼金
 
+                await HttpContext.SendSseStepAsync(30, $"正在计算单位资料配额...");
+
                 // --- 差额补全 (Gap Filling) ---
                 var localDatas = new List<LocalAgencyInfo>();
                 var aiTasks = new List<CountryAIPormptInfo>();
@@ -8979,6 +8980,8 @@ WHERE
                         await HttpContext.SendSseStepAsync(-1, $"TokenHub AI 查询资料失败: {reply?.ErrorMessage}");
                     }
 
+                    _logger.LogInformation(@"respose json data:{jsondata};", searchRaw);
+
                     var aiParsed = CleanAndParseJson<List<LocalAgencyInfo>>(searchRaw);
                     if (aiParsed != null)
                     {

+ 1 - 1
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -2174,7 +2174,7 @@ AI 必须按顺序执行:
 仅在以下国家范围内执行全自动采集:
 {string.Join("、", tasks.Select(t => t.Country))}
 并严格遵守各国配额限制,
-执行五锁机制,输出纯净 JSON。
+执行五锁机制,输出纯净 JSON(压缩版)
 ";
             #endregion
         }

+ 3 - 3
OASystem/OASystem.Api/OAMethodLib/TokenHubAI/Models/ChatRequest.cs

@@ -15,13 +15,13 @@ public class ChatRequest
     /// </summary>
     /// <remarks>
     /// 可用模型:
-    /// - 混元系列:Hy3 preview 
+    /// - 混元系列:hy3-preview 
     /// - 智谱系列:glm-5.1, glm-5.1-s
     /// - DeepSeek:deepseek-v3, deepseek-r1
     /// - MiniMax:minimax-m2.7, minimax-m2.7-s
     /// - 通义千问:qwen-2.5-72b, qwen-2.5-32b
     /// </remarks>
-    public string Model { get; set; } = "Hy3 preview ";
+    public string Model { get; set; } = "hy3-preview";
 
     /// <summary>
     /// 消息列表
@@ -37,7 +37,7 @@ public class ChatRequest
     /// 范围:1-8192,默认 1024
     /// 控制响应长度,影响费用
     /// </remarks>
-    public int MaxTokens { get; set; } = 2048;
+    public int MaxTokens { get; set; } = 10240;
 
     /// <summary>
     /// 温度参数,控制随机性

+ 5 - 0
OASystem/OASystem.Api/OAMethodLib/TokenHubAI/Models/TokenHubError.cs

@@ -20,6 +20,11 @@ public class TokenHubError
     /// </summary>
     public string? Message { get; set; }
 
+    /// <summary>
+    /// 中文错误描述
+    /// </summary>
+    public string? Message_ZH { get; set; }
+
     /// <summary>
     /// 错误来源: client | gateway | upstream
     /// </summary>

+ 14 - 3
OASystem/OASystem.Api/OAMethodLib/TokenHubAI/TokenHubService.cs

@@ -59,7 +59,8 @@ public class TokenHubService : ITokenHubService, IDisposable
         {
             _logger.LogWarning(ex, ex.ErrorDetail?.Message ?? "-");
 
-            var message = TokenHubErrorExtensions.GetMessage(ex.ErrorCode);
+            var message = ex.ErrorDetail?.Message_ZH
+                ?? TokenHubErrorExtensions.GetMessage(ex.ErrorCode);
 
             throw new TokenHubException(message, 400, ex.ErrorDetail);
         }
@@ -110,9 +111,12 @@ public class TokenHubService : ITokenHubService, IDisposable
         {
             await SendStreamRequestAsync(request, onChunk, cancellationToken);
         }
-        catch (TokenHubException)
+        catch (TokenHubException ex)
         {
-            throw;
+            var message = ex.ErrorDetail?.Message_ZH
+                ?? TokenHubErrorExtensions.GetMessage(ex.ErrorCode);
+
+            throw new TokenHubException(message, 400, ex.ErrorDetail);
         }
         catch (TaskCanceledException ex) when (ex.CancellationToken == cancellationToken)
         {
@@ -502,6 +506,7 @@ public class TokenHubService : ITokenHubService, IDisposable
                     Type = simpleError.TryGetProperty("type", out var t) ? t.GetString() : null,
                     Code = simpleError.TryGetProperty("code", out var c) ? c.GetString() : null,
                     Message = simpleError.TryGetProperty("message", out var m) ? m.GetString() : null,
+                    Message_ZH = simpleError.TryGetProperty("message_zh", out var m_zh) ? m_zh.GetString() : null,
                     RequestId = simpleError.TryGetProperty("request_id", out var r) ? r.GetString() : null
                 };
             }
@@ -531,6 +536,9 @@ public class TokenHubService : ITokenHubService, IDisposable
         if (errorElement.TryGetProperty("message", out var message))
             error.Message = message.GetString();
 
+        if (errorElement.TryGetProperty("message_zh", out var message_zh))
+            error.Message_ZH = message_zh.GetString();
+
         if (errorElement.TryGetProperty("source", out var source))
             error.Source = source.GetString();
 
@@ -562,6 +570,9 @@ public class TokenHubService : ITokenHubService, IDisposable
         if (errorElement.TryGetProperty("message", out var message))
             error.Message = message.GetString();
 
+        if (errorElement.TryGetProperty("message_zh", out var message_zh))
+            error.Message_ZH = message_zh.GetString();
+
         if (errorElement.TryGetProperty("reqid", out var reqid))
             error.RequestId = reqid.GetString();
 

+ 5 - 1
OASystem/OASystem.Domain/Entities/Resource/Res_OpLocalAI.cs

@@ -206,7 +206,11 @@ namespace OASystem.Domain.Entities.Resource
     /// </summary>
     public class LocalEntryInfo:EntryInfo
     {
-        
+        /// <summary>
+        /// 数据条数
+        /// 每个国家获取数据总条数,默认10条
+        /// </summary>
+        public new int NeedCount { get; set; } = 10;
     }
 
     /// <summary>