diff --git a/Yi.Abp.Net8/Yi.Abp.sln b/Yi.Abp.Net8/Yi.Abp.sln index d61cae0e..c39106d9 100644 --- a/Yi.Abp.Net8/Yi.Abp.sln +++ b/Yi.Abp.Net8/Yi.Abp.sln @@ -188,6 +188,18 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.Stock.SqlSugar EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.SemanticKernel", "framework\Yi.Framework.SemanticKernel\Yi.Framework.SemanticKernel.csproj", "{2503116E-4D69-49E3-8ED7-A6CDD0C3B542}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ai-hub", "ai-hub", "{7AD5DBAE-44F9-474B-8F7B-837EDE908934}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.AiHub.Application", "module\ai-hub\Yi.Framework.AiHub.Application\Yi.Framework.AiHub.Application.csproj", "{1AD10DD2-535E-4EAB-A8A4-EC3FCA206895}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.AiHub.Application.Contracts", "module\ai-hub\Yi.Framework.AiHub.Application.Contracts\Yi.Framework.AiHub.Application.Contracts.csproj", "{123D1C81-D667-4060-8E85-FFE7FB4584AD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.AiHub.Domain", "module\ai-hub\Yi.Framework.AiHub.Domain\Yi.Framework.AiHub.Domain.csproj", "{8EB4C8BB-6B21-4811-9FAB-B98FA5CA754D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.AiHub.Domain.Shared", "module\ai-hub\Yi.Framework.AiHub.Domain.Shared\Yi.Framework.AiHub.Domain.Shared.csproj", "{5FC6CA90-D5B4-433E-9B2C-94330FFB4C48}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.AiHub.SqlSugarCore", "module\ai-hub\Yi.Framework.AiHub.SqlSugarCore\Yi.Framework.AiHub.SqlSugarCore.csproj", "{8698C812-4DDC-4E80-BCD6-24C5D56AEDB1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -474,6 +486,26 @@ Global {2503116E-4D69-49E3-8ED7-A6CDD0C3B542}.Debug|Any CPU.Build.0 = Debug|Any CPU {2503116E-4D69-49E3-8ED7-A6CDD0C3B542}.Release|Any CPU.ActiveCfg = Release|Any CPU {2503116E-4D69-49E3-8ED7-A6CDD0C3B542}.Release|Any CPU.Build.0 = Release|Any CPU + {1AD10DD2-535E-4EAB-A8A4-EC3FCA206895}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1AD10DD2-535E-4EAB-A8A4-EC3FCA206895}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1AD10DD2-535E-4EAB-A8A4-EC3FCA206895}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1AD10DD2-535E-4EAB-A8A4-EC3FCA206895}.Release|Any CPU.Build.0 = Release|Any CPU + {123D1C81-D667-4060-8E85-FFE7FB4584AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {123D1C81-D667-4060-8E85-FFE7FB4584AD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {123D1C81-D667-4060-8E85-FFE7FB4584AD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {123D1C81-D667-4060-8E85-FFE7FB4584AD}.Release|Any CPU.Build.0 = Release|Any CPU + {8EB4C8BB-6B21-4811-9FAB-B98FA5CA754D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8EB4C8BB-6B21-4811-9FAB-B98FA5CA754D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8EB4C8BB-6B21-4811-9FAB-B98FA5CA754D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8EB4C8BB-6B21-4811-9FAB-B98FA5CA754D}.Release|Any CPU.Build.0 = Release|Any CPU + {5FC6CA90-D5B4-433E-9B2C-94330FFB4C48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5FC6CA90-D5B4-433E-9B2C-94330FFB4C48}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5FC6CA90-D5B4-433E-9B2C-94330FFB4C48}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5FC6CA90-D5B4-433E-9B2C-94330FFB4C48}.Release|Any CPU.Build.0 = Release|Any CPU + {8698C812-4DDC-4E80-BCD6-24C5D56AEDB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8698C812-4DDC-4E80-BCD6-24C5D56AEDB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8698C812-4DDC-4E80-BCD6-24C5D56AEDB1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8698C812-4DDC-4E80-BCD6-24C5D56AEDB1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -558,6 +590,12 @@ Global {10273544-715D-4BB3-893C-6F010D947BDD} = {DB46873F-981A-43D8-91B0-D464CCB65943} {5F49318F-E6C7-4194-BAE0-83D4FB8D1983} = {DB46873F-981A-43D8-91B0-D464CCB65943} {2503116E-4D69-49E3-8ED7-A6CDD0C3B542} = {77B949E9-530E-45A5-9657-20F7D5C6875C} + {7AD5DBAE-44F9-474B-8F7B-837EDE908934} = {2317227D-7796-4E7B-BEDB-7CD1CAE7B853} + {1AD10DD2-535E-4EAB-A8A4-EC3FCA206895} = {7AD5DBAE-44F9-474B-8F7B-837EDE908934} + {123D1C81-D667-4060-8E85-FFE7FB4584AD} = {7AD5DBAE-44F9-474B-8F7B-837EDE908934} + {8EB4C8BB-6B21-4811-9FAB-B98FA5CA754D} = {7AD5DBAE-44F9-474B-8F7B-837EDE908934} + {5FC6CA90-D5B4-433E-9B2C-94330FFB4C48} = {7AD5DBAE-44F9-474B-8F7B-837EDE908934} + {8698C812-4DDC-4E80-BCD6-24C5D56AEDB1} = {7AD5DBAE-44F9-474B-8F7B-837EDE908934} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {23D6FBC9-C970-4641-BC1E-2AEA59F51C18} diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/Yi.Framework.AiHub.Application.Contracts.csproj b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/Yi.Framework.AiHub.Application.Contracts.csproj new file mode 100644 index 00000000..93996947 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/Yi.Framework.AiHub.Application.Contracts.csproj @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/YiFrameworkAiHubApplicationContractsModule.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/YiFrameworkAiHubApplicationContractsModule.cs new file mode 100644 index 00000000..562cb258 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application.Contracts/YiFrameworkAiHubApplicationContractsModule.cs @@ -0,0 +1,15 @@ +using Yi.Framework.AiHub.Domain.Shared; +using Yi.Framework.Ddd.Application.Contracts; + +namespace Yi.Framework.AiHub.Application.Contracts +{ + [DependsOn( + typeof(YiFrameworkAiHubDomainSharedModule), + + + typeof(YiFrameworkDddApplicationContractsModule))] + public class YiFrameworkAiHubApplicationContractsModule:AbpModule + { + + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Yi.Framework.AiHub.Application.csproj b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Yi.Framework.AiHub.Application.csproj new file mode 100644 index 00000000..30caa193 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Yi.Framework.AiHub.Application.csproj @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/YiFrameworkAiHubApplicationModule.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/YiFrameworkAiHubApplicationModule.cs new file mode 100644 index 00000000..7e71df01 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/YiFrameworkAiHubApplicationModule.cs @@ -0,0 +1,15 @@ +using Yi.Framework.AiHub.Application.Contracts; +using Yi.Framework.AiHub.Domain; +using Yi.Framework.Ddd.Application; + +namespace Yi.Framework.AiHub.Application +{ + [DependsOn( + typeof(YiFrameworkAiHubApplicationContractsModule), + typeof(YiFrameworkAiHubDomainModule), + typeof(YiFrameworkDddApplicationModule) + )] + public class YiFrameworkAiHubApplicationModule : AbpModule + { + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Yi.Framework.AiHub.Domain.Shared.csproj b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Yi.Framework.AiHub.Domain.Shared.csproj new file mode 100644 index 00000000..c5a91f0e --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/Yi.Framework.AiHub.Domain.Shared.csproj @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/YiFrameworkAiHubDomainSharedModule.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/YiFrameworkAiHubDomainSharedModule.cs new file mode 100644 index 00000000..39baace6 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain.Shared/YiFrameworkAiHubDomainSharedModule.cs @@ -0,0 +1,11 @@ +using Volo.Abp.Domain; + +namespace Yi.Framework.AiHub.Domain.Shared +{ + [DependsOn( + typeof(AbpDddDomainSharedModule))] + public class YiFrameworkAiHubDomainSharedModule : AbpModule + { + + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Yi.Framework.AiHub.Domain.csproj b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Yi.Framework.AiHub.Domain.csproj new file mode 100644 index 00000000..6f4cf426 --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/Yi.Framework.AiHub.Domain.csproj @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/YiFrameworkAiHubDomainModule.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/YiFrameworkAiHubDomainModule.cs new file mode 100644 index 00000000..6637ec2d --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Domain/YiFrameworkAiHubDomainModule.cs @@ -0,0 +1,25 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.SemanticKernel; +using Volo.Abp.Caching; +using Volo.Abp.Domain; +using Yi.Framework.AiHub.Domain.Shared; +using Yi.Framework.Mapster; +using Yi.Framework.SemanticKernel; + +namespace Yi.Framework.AiHub.Domain +{ + [DependsOn( + typeof(YiFrameworkAiHubDomainSharedModule), + typeof(YiFrameworkMapsterModule), + typeof(AbpDddDomainModule), + typeof(YiFrameworkSemanticKernelModule) + )] + public class YiFrameworkAiHubDomainModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + var services = context.Services; + } + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.SqlSugarCore/Yi.Framework.AiHub.SqlSugarCore.csproj b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.SqlSugarCore/Yi.Framework.AiHub.SqlSugarCore.csproj new file mode 100644 index 00000000..1cc076bc --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.SqlSugarCore/Yi.Framework.AiHub.SqlSugarCore.csproj @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.SqlSugarCore/YiFrameworkAiHubSqlSugarCoreModule.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.SqlSugarCore/YiFrameworkAiHubSqlSugarCoreModule.cs new file mode 100644 index 00000000..7c56730f --- /dev/null +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.SqlSugarCore/YiFrameworkAiHubSqlSugarCoreModule.cs @@ -0,0 +1,17 @@ +using Yi.Framework.AiHub.Domain; +using Yi.Framework.Mapster; +using Yi.Framework.SqlSugarCore; + +namespace Yi.Framework.AiHub.SqlSugarCore +{ + [DependsOn( + typeof(YiFrameworkMapsterModule), + typeof(YiFrameworkSqlSugarCoreModule) + )] + public class YiFrameworkAiHubSqlSugarCoreModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + } + } +} \ No newline at end of file diff --git a/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Application/Services/AiChatService.cs b/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Application/Services/AiChatService.cs index c085b43a..49b27d2b 100644 --- a/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Application/Services/AiChatService.cs +++ b/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Application/Services/AiChatService.cs @@ -20,6 +20,7 @@ namespace Yi.Framework.ChatHub.Application.Services /// /// ai聊天 /// + /// /// /// [Authorize] diff --git a/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Domain/Managers/AiManager.cs b/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Domain/Managers/AiManager.cs index f2abed72..73f1c05e 100644 --- a/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Domain/Managers/AiManager.cs +++ b/Yi.Abp.Net8/module/chat-hub/Yi.Framework.ChatHub.Domain/Managers/AiManager.cs @@ -27,7 +27,7 @@ namespace Yi.Framework.ChatHub.Domain.Managers var openSettings = new AzureOpenAIPromptExecutionSettings() { - MaxTokens = 1000, + MaxTokens = 3000, //MaxTokens = 1000 }; @@ -51,14 +51,9 @@ namespace Yi.Framework.ChatHub.Domain.Managers executionSettings: openSettings, kernel: _client.Kernel); - if (results is null) - { - yield return null; - } - await foreach (var result in results) { - yield return result.Content; + yield return result?.Content; } } }