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;
}
}
}