From 7b0e4fcc73356d45730d21ba03b7464cbd727e6a Mon Sep 17 00:00:00 2001 From: chenchun Date: Mon, 11 Aug 2025 18:05:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DEmbedding=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=E5=92=8C=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=8F=AF=E7=A9=BA=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优化Embedding输入类型判断逻辑,支持string和JsonElement数组类型 - 将EncodingFormat字段设置为可空类型,提高兼容性 - 注释知识库场景下的消息统计功能,避免不必要的数据记录 --- .../OpenAi/Embeddings/ThorEmbeddingInput.cs | 2 +- .../Managers/AiGateWayManager.cs | 41 ++++++++++--------- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/OpenAi/Embeddings/ThorEmbeddingInput.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/OpenAi/Embeddings/ThorEmbeddingInput.cs index 9d854ead..82838d23 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/OpenAi/Embeddings/ThorEmbeddingInput.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Dtos/OpenAi/Embeddings/ThorEmbeddingInput.cs @@ -11,7 +11,7 @@ public sealed class ThorEmbeddingInput public object Input { get; set; } [JsonPropertyName("encoding_format")] - public string EncodingFormat { get; set; } + public string? EncodingFormat { get; set; } [JsonPropertyName("dimensions")] public int? Dimensions { get; set; } diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs index c451c43d..31eca5c8 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Managers/AiGateWayManager.cs @@ -360,11 +360,7 @@ public class AiGateWayManager : DomainService //dto进行转换,支持多种格式 if (input.Input is JsonElement str) { - if (str.ValueKind == JsonValueKind.String) - { - embeddingCreateRequest.Input = str.ToString(); - } - else if (str.ValueKind == JsonValueKind.Array) + if (str.ValueKind == JsonValueKind.Array) { var inputString = str.EnumerateArray().Select(x => x.ToString()).ToArray(); embeddingCreateRequest.InputAsList = inputString.ToList(); @@ -374,6 +370,10 @@ public class AiGateWayManager : DomainService throw new Exception("Input,输入格式错误,非string或Array类型"); } } + else if (input.Input is string strInput) + { + embeddingCreateRequest.Input = strInput; + } else { throw new Exception("Input,输入格式错误,未找到类型"); @@ -398,21 +398,22 @@ public class AiGateWayManager : DomainService Usage = usage }); - await _aiMessageManager.CreateUserMessageAsync(userId, sessionId, - new MessageInputDto - { - Content = string.Empty, - ModelId = input.Model, - TokenUsage = usage, - }); - - await _aiMessageManager.CreateSystemMessageAsync(userId, sessionId, - new MessageInputDto - { - Content = string.Empty, - ModelId = input.Model, - TokenUsage = usage - }); + //知识库暂不使用message统计 + // await _aiMessageManager.CreateUserMessageAsync(userId, sessionId, + // new MessageInputDto + // { + // Content = string.Empty, + // ModelId = input.Model, + // TokenUsage = usage, + // }); + // + // await _aiMessageManager.CreateSystemMessageAsync(userId, sessionId, + // new MessageInputDto + // { + // Content = string.Empty, + // ModelId = input.Model, + // TokenUsage = usage + // }); await _usageStatisticsManager.SetUsageAsync(userId, input.Model, usage); }