diff --git a/Directory.Packages.props b/Directory.Packages.props
index 2af73264b7..3df490c971 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -87,7 +87,8 @@
-
+
+
diff --git a/framework/src/Volo.Abp.AI.Abstractions/FodyWeavers.xml b/framework/src/Volo.Abp.AI.Abstractions/FodyWeavers.xml
new file mode 100644
index 0000000000..bc5a74a236
--- /dev/null
+++ b/framework/src/Volo.Abp.AI.Abstractions/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/framework/src/Volo.Abp.AI.Abstractions/FodyWeavers.xsd b/framework/src/Volo.Abp.AI.Abstractions/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/framework/src/Volo.Abp.AI.Abstractions/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.AI.Abstractions/Volo.Abp.AI.Abstractions.abppkg b/framework/src/Volo.Abp.AI.Abstractions/Volo.Abp.AI.Abstractions.abppkg
new file mode 100644
index 0000000000..f4bad072d2
--- /dev/null
+++ b/framework/src/Volo.Abp.AI.Abstractions/Volo.Abp.AI.Abstractions.abppkg
@@ -0,0 +1,3 @@
+{
+ "role": "lib.framework"
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.AI.Abstractions/Volo.Abp.AI.Abstractions.csproj b/framework/src/Volo.Abp.AI.Abstractions/Volo.Abp.AI.Abstractions.csproj
new file mode 100644
index 0000000000..8a07e40cd9
--- /dev/null
+++ b/framework/src/Volo.Abp.AI.Abstractions/Volo.Abp.AI.Abstractions.csproj
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ netstandard2.0;netstandard2.1;net8.0;net9.0
+ enable
+ Nullable
+ Volo.Abp.AI.Abstractions
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/framework/src/Volo.Abp.AI.Abstractions/Volo/Abp/AI/AbpAIAbstractionsModule.cs b/framework/src/Volo.Abp.AI.Abstractions/Volo/Abp/AI/AbpAIAbstractionsModule.cs
new file mode 100644
index 0000000000..cc478d8503
--- /dev/null
+++ b/framework/src/Volo.Abp.AI.Abstractions/Volo/Abp/AI/AbpAIAbstractionsModule.cs
@@ -0,0 +1,10 @@
+using Microsoft.Extensions.AI;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.DependencyInjection.Extensions;
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.AI;
+
+public class AbpAIAbstractionsModule : AbpModule
+{
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.AI/Volo/Abp/AI/ChatClientNameAttribute.cs b/framework/src/Volo.Abp.AI.Abstractions/Volo/Abp/AI/ChatClientNameAttribute.cs
similarity index 100%
rename from framework/src/Volo.Abp.AI/Volo/Abp/AI/ChatClientNameAttribute.cs
rename to framework/src/Volo.Abp.AI.Abstractions/Volo/Abp/AI/ChatClientNameAttribute.cs
diff --git a/framework/src/Volo.Abp.AI/Volo/Abp/AI/IChatClient.cs b/framework/src/Volo.Abp.AI.Abstractions/Volo/Abp/AI/IChatClient.cs
similarity index 100%
rename from framework/src/Volo.Abp.AI/Volo/Abp/AI/IChatClient.cs
rename to framework/src/Volo.Abp.AI.Abstractions/Volo/Abp/AI/IChatClient.cs
diff --git a/framework/src/Volo.Abp.AI/Volo.Abp.AI.csproj b/framework/src/Volo.Abp.AI/Volo.Abp.AI.csproj
index b5e4382254..7b146edea4 100644
--- a/framework/src/Volo.Abp.AI/Volo.Abp.AI.csproj
+++ b/framework/src/Volo.Abp.AI/Volo.Abp.AI.csproj
@@ -16,6 +16,7 @@
+
diff --git a/nupkg/common.ps1 b/nupkg/common.ps1
index e916a379d2..6fac2bfb9e 100644
--- a/nupkg/common.ps1
+++ b/nupkg/common.ps1
@@ -93,6 +93,8 @@ $solutions = (
$projects = (
# framework
+ "framework/src/Volo.Abp.AI.Abstractions",
+ "framework/src/Volo.Abp.AI",
"framework/src/Volo.Abp.ApiVersioning.Abstractions",
"framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer",
"framework/src/Volo.Abp.AspNetCore.Authentication.OAuth",