diff --git a/.planning/STATE.md b/.planning/STATE.md
index e725392..ac01075 100644
--- a/.planning/STATE.md
+++ b/.planning/STATE.md
@@ -1,22 +1,43 @@
# 项目状态
## 当前阶段
-Phase 1: 基础设施 + 数据库 + 公共模块 (未开始)
+Phase 6 完成(前端 + 管理后台 + 部署配置)
## 已完成
-- [x] 项目初始化(git repo、.planning目录)
-- [x] PROJECT.md 创建
-- [x] REQUIREMENTS.md 创建
-- [x] ROADMAP.md 创建
-- [x] config.json 创建
+- [x] 项目初始化(git repo、.planning目录、GSD规划文件)
+- [x] Phase 1: 基础设施 + 数据库 + 公共模块
+ - 10个微服务Maven多模块结构
+ - common模块(Result、异常、MyBatis/Redis/RabbitMQ/跨域配置、JsonUtils/TypeHandler)
+ - 15张MySQL 5.7表 + 40个意图分类 + 8个话术分类 + 管理员初始化数据
+ - docker-compose.yml基础服务
+ - API Gateway路由配置
+- [x] Phase 2: 认证服务 + 会话存档服务
+ - auth-service: 企微OAuth2、JWT签发/验证、JS-SDK签名
+ - archive-service: JNA接口、RSA解密、存档拉取、回调接收
+- [x] Phase 3: 对话服务 + 意图服务
+ - conversation-service: 会话管理、Redis上下文窗口(10轮)、轮次解析、MQ事件监听
+ - intent-service: 40意图分类、规则+LLM混合识别、学员画像(5维度)、槽位填充
+- [x] Phase 4: 推荐服务 + LLM生成服务
+ - recommendation-service: 三层召回(规则/向量/热门)、多因子排序、MMR多样性
+ - generation-service: 通义千问API封装、Prompt引擎、动态话术生成
+- [x] Phase 5-6: 前端 + 管理后台 + 部署配置
+ - sidebar H5: React18+TS+Vite+AntDesignMobile,学员画像/话术推荐/一键发送
+ - admin后台: React18+AntDesign,登录/数据看板/话术库CRUD
+ - kb-admin-service: 话术管理API
+ - analytics-service: 数据统计API
+ - 所有服务Dockerfile + nginx + 完整docker-compose编排
-## 进行中
-- [ ] Phase 1 开发
+## 提交记录
+- `31a395b` feat(01): Phase 1 - 基础设施 + 数据库 + 公共模块
+- `48c1dd8` feat(02): Phase 2 - 认证服务 + 会话存档服务
+- `8941f6f` feat(03): Phase 3 - 对话服务 + 意图服务
+- `4583635` feat(04): Phase 4 - 推荐服务 + LLM生成服务
+- `5f44136` feat(05-06): Phase 5-6 - 前端 + 管理后台 + 部署配置
-## 待开始
-- Phase 2: 认证服务 + 会话存档服务
-- Phase 3: 对话服务 + 意图服务
-- Phase 4: 推荐服务 + LLM生成服务
-- Phase 5: 前端侧边栏H5
-- Phase 6: 管理后台 + 知识库
-- Phase 7: 部署配置与集成测试
+## 后续建议
+1. 配置通义千问API Key并测试LLM调用
+2. 配置企微CorpID/Secret并测试OAuth登录
+3. 上传企微C SDK动态库到archive-service
+4. 补充前端API真实调用(当前为模拟数据)
+5. 补充单元测试和E2E测试
+6. 配置CI/CD流水线
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 73f9f9f..aa1c897 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,3 +1,5 @@
{
- "kimi.yoloMode": true
+ "kimi.yoloMode": true,
+ "java.compile.nullAnalysis.mode": "automatic",
+ "java.configuration.updateBuildConfiguration": "interactive"
}
\ No newline at end of file
diff --git a/backend/analytics-service/pom.xml b/backend/analytics-service/pom.xml
new file mode 100644
index 0000000..aa79249
--- /dev/null
+++ b/backend/analytics-service/pom.xml
@@ -0,0 +1,33 @@
+
+
+ 4.0.0
+
+ com.artedu
+ ai-assistant-parent
+ 1.0.0-SNAPSHOT
+
+ analytics-service
+ jar
+ 数据分析服务
+
+
+ com.artedu
+ common
+ ${project.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
diff --git a/backend/analytics-service/target/analytics-service-1.0.0-SNAPSHOT.jar b/backend/analytics-service/target/analytics-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..5d259bc
Binary files /dev/null and b/backend/analytics-service/target/analytics-service-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/analytics-service/target/classes/application.yml b/backend/analytics-service/target/classes/application.yml
new file mode 100644
index 0000000..dd133e3
--- /dev/null
+++ b/backend/analytics-service/target/classes/application.yml
@@ -0,0 +1,35 @@
+server:
+ port: 8088
+
+spring:
+ application:
+ name: analytics-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ rabbitmq:
+ host: ${RABBITMQ_HOST:localhost}
+ port: ${RABBITMQ_PORT:5672}
+ username: ${RABBITMQ_USERNAME:admin}
+ password: ${RABBITMQ_PASSWORD:admin}
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/analytics-service/target/classes/com/artedu/analytics/AnalyticsServiceApplication.class b/backend/analytics-service/target/classes/com/artedu/analytics/AnalyticsServiceApplication.class
new file mode 100644
index 0000000..40d9bdd
Binary files /dev/null and b/backend/analytics-service/target/classes/com/artedu/analytics/AnalyticsServiceApplication.class differ
diff --git a/backend/analytics-service/target/classes/com/artedu/analytics/controller/AnalyticsController.class b/backend/analytics-service/target/classes/com/artedu/analytics/controller/AnalyticsController.class
new file mode 100644
index 0000000..52264c3
Binary files /dev/null and b/backend/analytics-service/target/classes/com/artedu/analytics/controller/AnalyticsController.class differ
diff --git a/backend/analytics-service/target/maven-archiver/pom.properties b/backend/analytics-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..5fb3d42
--- /dev/null
+++ b/backend/analytics-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=analytics-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/analytics-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/analytics-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..db2e57f
--- /dev/null
+++ b/backend/analytics-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,2 @@
+com\artedu\analytics\AnalyticsServiceApplication.class
+com\artedu\analytics\controller\AnalyticsController.class
diff --git a/backend/analytics-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/analytics-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..cc78904
--- /dev/null
+++ b/backend/analytics-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,2 @@
+D:\www\agent_9art\backend\analytics-service\src\main\java\com\artedu\analytics\AnalyticsServiceApplication.java
+D:\www\agent_9art\backend\analytics-service\src\main\java\com\artedu\analytics\controller\AnalyticsController.java
diff --git a/backend/archive-service/target/archive-service-1.0.0-SNAPSHOT.jar b/backend/archive-service/target/archive-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..06fe0b2
Binary files /dev/null and b/backend/archive-service/target/archive-service-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/archive-service/target/classes/application.yml b/backend/archive-service/target/classes/application.yml
new file mode 100644
index 0000000..fc3437f
--- /dev/null
+++ b/backend/archive-service/target/classes/application.yml
@@ -0,0 +1,35 @@
+server:
+ port: 8082
+
+spring:
+ application:
+ name: archive-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ rabbitmq:
+ host: ${RABBITMQ_HOST:localhost}
+ port: ${RABBITMQ_PORT:5672}
+ username: ${RABBITMQ_USERNAME:admin}
+ password: ${RABBITMQ_PASSWORD:admin}
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/archive-service/target/classes/com/artedu/archive/ArchiveServiceApplication.class b/backend/archive-service/target/classes/com/artedu/archive/ArchiveServiceApplication.class
new file mode 100644
index 0000000..2299073
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/ArchiveServiceApplication.class differ
diff --git a/backend/archive-service/target/classes/com/artedu/archive/controller/ArchiveCallbackController.class b/backend/archive-service/target/classes/com/artedu/archive/controller/ArchiveCallbackController.class
new file mode 100644
index 0000000..e192e25
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/controller/ArchiveCallbackController.class differ
diff --git a/backend/archive-service/target/classes/com/artedu/archive/entity/ArchiveMessage.class b/backend/archive-service/target/classes/com/artedu/archive/entity/ArchiveMessage.class
new file mode 100644
index 0000000..f198faf
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/entity/ArchiveMessage.class differ
diff --git a/backend/archive-service/target/classes/com/artedu/archive/mapper/ArchiveMessageMapper.class b/backend/archive-service/target/classes/com/artedu/archive/mapper/ArchiveMessageMapper.class
new file mode 100644
index 0000000..485b423
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/mapper/ArchiveMessageMapper.class differ
diff --git a/backend/archive-service/target/classes/com/artedu/archive/sdk/WeWorkFinanceSdk$Slice_t.class b/backend/archive-service/target/classes/com/artedu/archive/sdk/WeWorkFinanceSdk$Slice_t.class
new file mode 100644
index 0000000..9b165d6
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/sdk/WeWorkFinanceSdk$Slice_t.class differ
diff --git a/backend/archive-service/target/classes/com/artedu/archive/sdk/WeWorkFinanceSdk.class b/backend/archive-service/target/classes/com/artedu/archive/sdk/WeWorkFinanceSdk.class
new file mode 100644
index 0000000..0e95592
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/sdk/WeWorkFinanceSdk.class differ
diff --git a/backend/archive-service/target/classes/com/artedu/archive/service/ArchivePullService.class b/backend/archive-service/target/classes/com/artedu/archive/service/ArchivePullService.class
new file mode 100644
index 0000000..7cda428
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/service/ArchivePullService.class differ
diff --git a/backend/archive-service/target/classes/com/artedu/archive/util/RsaDecryptUtil.class b/backend/archive-service/target/classes/com/artedu/archive/util/RsaDecryptUtil.class
new file mode 100644
index 0000000..4841909
Binary files /dev/null and b/backend/archive-service/target/classes/com/artedu/archive/util/RsaDecryptUtil.class differ
diff --git a/backend/archive-service/target/maven-archiver/pom.properties b/backend/archive-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..60f3478
--- /dev/null
+++ b/backend/archive-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=archive-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/archive-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/archive-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..0bcb862
--- /dev/null
+++ b/backend/archive-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,8 @@
+com\artedu\archive\service\ArchivePullService.class
+com\artedu\archive\controller\ArchiveCallbackController.class
+com\artedu\archive\sdk\WeWorkFinanceSdk.class
+com\artedu\archive\ArchiveServiceApplication.class
+com\artedu\archive\sdk\WeWorkFinanceSdk$Slice_t.class
+com\artedu\archive\entity\ArchiveMessage.class
+com\artedu\archive\mapper\ArchiveMessageMapper.class
+com\artedu\archive\util\RsaDecryptUtil.class
diff --git a/backend/archive-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/archive-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..9b36b11
--- /dev/null
+++ b/backend/archive-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,7 @@
+D:\www\agent_9art\backend\archive-service\src\main\java\com\artedu\archive\ArchiveServiceApplication.java
+D:\www\agent_9art\backend\archive-service\src\main\java\com\artedu\archive\controller\ArchiveCallbackController.java
+D:\www\agent_9art\backend\archive-service\src\main\java\com\artedu\archive\entity\ArchiveMessage.java
+D:\www\agent_9art\backend\archive-service\src\main\java\com\artedu\archive\mapper\ArchiveMessageMapper.java
+D:\www\agent_9art\backend\archive-service\src\main\java\com\artedu\archive\sdk\WeWorkFinanceSdk.java
+D:\www\agent_9art\backend\archive-service\src\main\java\com\artedu\archive\service\ArchivePullService.java
+D:\www\agent_9art\backend\archive-service\src\main\java\com\artedu\archive\util\RsaDecryptUtil.java
diff --git a/backend/auth-service/pom.xml b/backend/auth-service/pom.xml
index 9248c66..c3076fc 100644
--- a/backend/auth-service/pom.xml
+++ b/backend/auth-service/pom.xml
@@ -12,15 +12,41 @@
jar
认证授权服务
- com.arteducommon${project.version}
- org.springframework.bootspring-boot-starter-web
- io.jsonwebtokenjjwt-api
- io.jsonwebtokenjjwt-implruntime
- io.jsonwebtokenjjwt-jacksonruntime
+
+ com.artedu
+ common
+ ${project.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ io.jsonwebtoken
+ jjwt-api
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ runtime
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ runtime
+
+
+ org.projectlombok
+ lombok
+ true
+
- org.springframework.bootspring-boot-maven-plugin
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
diff --git a/backend/auth-service/src/main/java/com/artedu/auth/controller/AuthController.java b/backend/auth-service/src/main/java/com/artedu/auth/controller/AuthController.java
index a7cefb7..5194293 100644
--- a/backend/auth-service/src/main/java/com/artedu/auth/controller/AuthController.java
+++ b/backend/auth-service/src/main/java/com/artedu/auth/controller/AuthController.java
@@ -6,6 +6,7 @@ import com.artedu.auth.service.WeComOAuthService;
import com.artedu.common.result.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.HashMap;
diff --git a/backend/auth-service/target/auth-service-1.0.0-SNAPSHOT.jar b/backend/auth-service/target/auth-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..15181b3
Binary files /dev/null and b/backend/auth-service/target/auth-service-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/auth-service/target/classes/application.yml b/backend/auth-service/target/classes/application.yml
new file mode 100644
index 0000000..03a0254
--- /dev/null
+++ b/backend/auth-service/target/classes/application.yml
@@ -0,0 +1,39 @@
+server:
+ port: 8081
+
+spring:
+ application:
+ name: auth-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+
+wecom:
+ corp-id: ${WECOM_CORP_ID:}
+ agent-id: ${WECOM_AGENT_ID:}
+ secret: ${WECOM_SECRET:}
+
+jwt:
+ secret: ${JWT_SECRET:your-256-bit-secret-key-here-at-least-32-characters}
+ expiration: 86400
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/auth-service/target/classes/com/artedu/auth/AuthServiceApplication.class b/backend/auth-service/target/classes/com/artedu/auth/AuthServiceApplication.class
new file mode 100644
index 0000000..a31f359
Binary files /dev/null and b/backend/auth-service/target/classes/com/artedu/auth/AuthServiceApplication.class differ
diff --git a/backend/auth-service/target/classes/com/artedu/auth/controller/AuthController.class b/backend/auth-service/target/classes/com/artedu/auth/controller/AuthController.class
new file mode 100644
index 0000000..bde7d86
Binary files /dev/null and b/backend/auth-service/target/classes/com/artedu/auth/controller/AuthController.class differ
diff --git a/backend/auth-service/target/classes/com/artedu/auth/entity/Staff.class b/backend/auth-service/target/classes/com/artedu/auth/entity/Staff.class
new file mode 100644
index 0000000..df6db07
Binary files /dev/null and b/backend/auth-service/target/classes/com/artedu/auth/entity/Staff.class differ
diff --git a/backend/auth-service/target/classes/com/artedu/auth/mapper/StaffMapper.class b/backend/auth-service/target/classes/com/artedu/auth/mapper/StaffMapper.class
new file mode 100644
index 0000000..87dba69
Binary files /dev/null and b/backend/auth-service/target/classes/com/artedu/auth/mapper/StaffMapper.class differ
diff --git a/backend/auth-service/target/classes/com/artedu/auth/service/JwtService.class b/backend/auth-service/target/classes/com/artedu/auth/service/JwtService.class
new file mode 100644
index 0000000..f8ebcef
Binary files /dev/null and b/backend/auth-service/target/classes/com/artedu/auth/service/JwtService.class differ
diff --git a/backend/auth-service/target/classes/com/artedu/auth/service/WeComOAuthService.class b/backend/auth-service/target/classes/com/artedu/auth/service/WeComOAuthService.class
new file mode 100644
index 0000000..2f2a6b3
Binary files /dev/null and b/backend/auth-service/target/classes/com/artedu/auth/service/WeComOAuthService.class differ
diff --git a/backend/auth-service/target/maven-archiver/pom.properties b/backend/auth-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..5b4f94c
--- /dev/null
+++ b/backend/auth-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=auth-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/auth-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/auth-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..a6ade75
--- /dev/null
+++ b/backend/auth-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,6 @@
+com\artedu\auth\AuthServiceApplication.class
+com\artedu\auth\mapper\StaffMapper.class
+com\artedu\auth\entity\Staff.class
+com\artedu\auth\service\JwtService.class
+com\artedu\auth\controller\AuthController.class
+com\artedu\auth\service\WeComOAuthService.class
diff --git a/backend/auth-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/auth-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..d4b1fd4
--- /dev/null
+++ b/backend/auth-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,6 @@
+D:\www\agent_9art\backend\auth-service\src\main\java\com\artedu\auth\AuthServiceApplication.java
+D:\www\agent_9art\backend\auth-service\src\main\java\com\artedu\auth\controller\AuthController.java
+D:\www\agent_9art\backend\auth-service\src\main\java\com\artedu\auth\entity\Staff.java
+D:\www\agent_9art\backend\auth-service\src\main\java\com\artedu\auth\mapper\StaffMapper.java
+D:\www\agent_9art\backend\auth-service\src\main\java\com\artedu\auth\service\JwtService.java
+D:\www\agent_9art\backend\auth-service\src\main\java\com\artedu\auth\service\WeComOAuthService.java
diff --git a/backend/common/pom.xml b/backend/common/pom.xml
index 1be5a77..6e19b5e 100644
--- a/backend/common/pom.xml
+++ b/backend/common/pom.xml
@@ -44,7 +44,6 @@
org.projectlombok
lombok
- true
com.fasterxml.jackson.core
diff --git a/backend/common/target/classes/com/artedu/common/config/CorsConfig.class b/backend/common/target/classes/com/artedu/common/config/CorsConfig.class
new file mode 100644
index 0000000..b255aa0
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/config/CorsConfig.class differ
diff --git a/backend/common/target/classes/com/artedu/common/config/MyBatisPlusConfig.class b/backend/common/target/classes/com/artedu/common/config/MyBatisPlusConfig.class
new file mode 100644
index 0000000..8ebb148
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/config/MyBatisPlusConfig.class differ
diff --git a/backend/common/target/classes/com/artedu/common/config/RabbitConfig.class b/backend/common/target/classes/com/artedu/common/config/RabbitConfig.class
new file mode 100644
index 0000000..de4a86a
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/config/RabbitConfig.class differ
diff --git a/backend/common/target/classes/com/artedu/common/config/RedisConfig.class b/backend/common/target/classes/com/artedu/common/config/RedisConfig.class
new file mode 100644
index 0000000..bcfb183
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/config/RedisConfig.class differ
diff --git a/backend/common/target/classes/com/artedu/common/entity/BaseEntity.class b/backend/common/target/classes/com/artedu/common/entity/BaseEntity.class
new file mode 100644
index 0000000..d9e1e9f
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/entity/BaseEntity.class differ
diff --git a/backend/common/target/classes/com/artedu/common/exception/BusinessException.class b/backend/common/target/classes/com/artedu/common/exception/BusinessException.class
new file mode 100644
index 0000000..b2f25b0
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/exception/BusinessException.class differ
diff --git a/backend/common/target/classes/com/artedu/common/exception/GlobalExceptionHandler.class b/backend/common/target/classes/com/artedu/common/exception/GlobalExceptionHandler.class
new file mode 100644
index 0000000..574e3df
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/exception/GlobalExceptionHandler.class differ
diff --git a/backend/common/target/classes/com/artedu/common/handler/AutoFillHandler.class b/backend/common/target/classes/com/artedu/common/handler/AutoFillHandler.class
new file mode 100644
index 0000000..0edcf84
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/handler/AutoFillHandler.class differ
diff --git a/backend/common/target/classes/com/artedu/common/mybatis/JsonTypeHandler.class b/backend/common/target/classes/com/artedu/common/mybatis/JsonTypeHandler.class
new file mode 100644
index 0000000..4b2ee12
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/mybatis/JsonTypeHandler.class differ
diff --git a/backend/common/target/classes/com/artedu/common/result/PageResult.class b/backend/common/target/classes/com/artedu/common/result/PageResult.class
new file mode 100644
index 0000000..053ab35
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/result/PageResult.class differ
diff --git a/backend/common/target/classes/com/artedu/common/result/Result.class b/backend/common/target/classes/com/artedu/common/result/Result.class
new file mode 100644
index 0000000..cc62b9b
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/result/Result.class differ
diff --git a/backend/common/target/classes/com/artedu/common/util/JsonUtils$1.class b/backend/common/target/classes/com/artedu/common/util/JsonUtils$1.class
new file mode 100644
index 0000000..08048c4
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/util/JsonUtils$1.class differ
diff --git a/backend/common/target/classes/com/artedu/common/util/JsonUtils.class b/backend/common/target/classes/com/artedu/common/util/JsonUtils.class
new file mode 100644
index 0000000..940f6ae
Binary files /dev/null and b/backend/common/target/classes/com/artedu/common/util/JsonUtils.class differ
diff --git a/backend/common/target/common-1.0.0-SNAPSHOT.jar b/backend/common/target/common-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..640cb2a
Binary files /dev/null and b/backend/common/target/common-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/common/target/maven-archiver/pom.properties b/backend/common/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..1dc6fa3
--- /dev/null
+++ b/backend/common/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=common
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..6e3f1f9
--- /dev/null
+++ b/backend/common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,13 @@
+com\artedu\common\handler\AutoFillHandler.class
+com\artedu\common\config\MyBatisPlusConfig.class
+com\artedu\common\result\Result.class
+com\artedu\common\config\RabbitConfig.class
+com\artedu\common\entity\BaseEntity.class
+com\artedu\common\exception\BusinessException.class
+com\artedu\common\config\RedisConfig.class
+com\artedu\common\util\JsonUtils.class
+com\artedu\common\config\CorsConfig.class
+com\artedu\common\util\JsonUtils$1.class
+com\artedu\common\mybatis\JsonTypeHandler.class
+com\artedu\common\exception\GlobalExceptionHandler.class
+com\artedu\common\result\PageResult.class
diff --git a/backend/common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..824fecb
--- /dev/null
+++ b/backend/common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,12 @@
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\config\CorsConfig.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\config\MyBatisPlusConfig.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\config\RabbitConfig.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\config\RedisConfig.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\entity\BaseEntity.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\exception\BusinessException.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\exception\GlobalExceptionHandler.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\handler\AutoFillHandler.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\mybatis\JsonTypeHandler.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\result\PageResult.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\result\Result.java
+D:\www\agent_9art\backend\common\src\main\java\com\artedu\common\util\JsonUtils.java
diff --git a/backend/conversation-service/target/classes/application.yml b/backend/conversation-service/target/classes/application.yml
new file mode 100644
index 0000000..6fc445b
--- /dev/null
+++ b/backend/conversation-service/target/classes/application.yml
@@ -0,0 +1,35 @@
+server:
+ port: 8083
+
+spring:
+ application:
+ name: conversation-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ rabbitmq:
+ host: ${RABBITMQ_HOST:localhost}
+ port: ${RABBITMQ_PORT:5672}
+ username: ${RABBITMQ_USERNAME:admin}
+ password: ${RABBITMQ_PASSWORD:admin}
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/ConversationServiceApplication.class b/backend/conversation-service/target/classes/com/artedu/conversation/ConversationServiceApplication.class
new file mode 100644
index 0000000..c8f43d7
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/ConversationServiceApplication.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/controller/ConversationController.class b/backend/conversation-service/target/classes/com/artedu/conversation/controller/ConversationController.class
new file mode 100644
index 0000000..65d7d1b
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/controller/ConversationController.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/entity/Conversation.class b/backend/conversation-service/target/classes/com/artedu/conversation/entity/Conversation.class
new file mode 100644
index 0000000..ec2dde4
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/entity/Conversation.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/entity/ConversationTurn.class b/backend/conversation-service/target/classes/com/artedu/conversation/entity/ConversationTurn.class
new file mode 100644
index 0000000..e1d5a47
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/entity/ConversationTurn.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/mapper/ConversationMapper.class b/backend/conversation-service/target/classes/com/artedu/conversation/mapper/ConversationMapper.class
new file mode 100644
index 0000000..1f7764f
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/mapper/ConversationMapper.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/mapper/ConversationTurnMapper.class b/backend/conversation-service/target/classes/com/artedu/conversation/mapper/ConversationTurnMapper.class
new file mode 100644
index 0000000..4ecef07
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/mapper/ConversationTurnMapper.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager$ArchiveMessageEvent.class b/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager$ArchiveMessageEvent.class
new file mode 100644
index 0000000..925e1ce
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager$ArchiveMessageEvent.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager$ContextMessage.class b/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager$ContextMessage.class
new file mode 100644
index 0000000..dd679a5
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager$ContextMessage.class differ
diff --git a/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager.class b/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager.class
new file mode 100644
index 0000000..2e6f438
Binary files /dev/null and b/backend/conversation-service/target/classes/com/artedu/conversation/service/ConversationManager.class differ
diff --git a/backend/conversation-service/target/conversation-service-1.0.0-SNAPSHOT.jar b/backend/conversation-service/target/conversation-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..cca3e91
Binary files /dev/null and b/backend/conversation-service/target/conversation-service-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/conversation-service/target/maven-archiver/pom.properties b/backend/conversation-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..224214c
--- /dev/null
+++ b/backend/conversation-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=conversation-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/conversation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/conversation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..0f487f0
--- /dev/null
+++ b/backend/conversation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,9 @@
+com\artedu\conversation\mapper\ConversationMapper.class
+com\artedu\conversation\ConversationServiceApplication.class
+com\artedu\conversation\mapper\ConversationTurnMapper.class
+com\artedu\conversation\entity\Conversation.class
+com\artedu\conversation\entity\ConversationTurn.class
+com\artedu\conversation\service\ConversationManager$ContextMessage.class
+com\artedu\conversation\service\ConversationManager.class
+com\artedu\conversation\service\ConversationManager$ArchiveMessageEvent.class
+com\artedu\conversation\controller\ConversationController.class
diff --git a/backend/conversation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/conversation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..267a809
--- /dev/null
+++ b/backend/conversation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,7 @@
+D:\www\agent_9art\backend\conversation-service\src\main\java\com\artedu\conversation\controller\ConversationController.java
+D:\www\agent_9art\backend\conversation-service\src\main\java\com\artedu\conversation\ConversationServiceApplication.java
+D:\www\agent_9art\backend\conversation-service\src\main\java\com\artedu\conversation\entity\Conversation.java
+D:\www\agent_9art\backend\conversation-service\src\main\java\com\artedu\conversation\entity\ConversationTurn.java
+D:\www\agent_9art\backend\conversation-service\src\main\java\com\artedu\conversation\mapper\ConversationMapper.java
+D:\www\agent_9art\backend\conversation-service\src\main\java\com\artedu\conversation\mapper\ConversationTurnMapper.java
+D:\www\agent_9art\backend\conversation-service\src\main\java\com\artedu\conversation\service\ConversationManager.java
diff --git a/backend/gateway/target/classes/application.yml b/backend/gateway/target/classes/application.yml
new file mode 100644
index 0000000..8f95182
--- /dev/null
+++ b/backend/gateway/target/classes/application.yml
@@ -0,0 +1,48 @@
+server:
+ port: 8080
+
+spring:
+ application:
+ name: gateway
+ cloud:
+ gateway:
+ routes:
+ - id: auth-service
+ uri: http://localhost:8081
+ predicates:
+ - Path=/api/v1/auth/**
+ - id: archive-service
+ uri: http://localhost:8082
+ predicates:
+ - Path=/api/v1/archive/**
+ - id: conversation-service
+ uri: http://localhost:8083
+ predicates:
+ - Path=/api/v1/conversations/**
+ - id: intent-service
+ uri: http://localhost:8084
+ predicates:
+ - Path=/api/v1/intent/**
+ - id: recommend-service
+ uri: http://localhost:8085
+ predicates:
+ - Path=/api/v1/recommend/**
+ - id: generation-service
+ uri: http://localhost:8086
+ predicates:
+ - Path=/api/v1/generation/**
+ - id: kb-admin-service
+ uri: http://localhost:8087
+ predicates:
+ - Path=/api/v1/admin/**
+ - id: analytics-service
+ uri: http://localhost:8088
+ predicates:
+ - Path=/api/v1/analytics/**
+ globalcors:
+ cors-configurations:
+ '[/**]':
+ allowedOrigins: "*"
+ allowedMethods: "*"
+ allowedHeaders: "*"
+ allowCredentials: true
diff --git a/backend/gateway/target/classes/com/artedu/gateway/GatewayApplication.class b/backend/gateway/target/classes/com/artedu/gateway/GatewayApplication.class
new file mode 100644
index 0000000..0b9a906
Binary files /dev/null and b/backend/gateway/target/classes/com/artedu/gateway/GatewayApplication.class differ
diff --git a/backend/gateway/target/gateway-1.0.0-SNAPSHOT.jar b/backend/gateway/target/gateway-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..0ec0e3d
Binary files /dev/null and b/backend/gateway/target/gateway-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/gateway/target/maven-archiver/pom.properties b/backend/gateway/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..585d0b7
--- /dev/null
+++ b/backend/gateway/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=gateway
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..1781aed
--- /dev/null
+++ b/backend/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1 @@
+com\artedu\gateway\GatewayApplication.class
diff --git a/backend/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..dd008ff
--- /dev/null
+++ b/backend/gateway/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1 @@
+D:\www\agent_9art\backend\gateway\src\main\java\com\artedu\gateway\GatewayApplication.java
diff --git a/backend/generation-service/target/classes/application.yml b/backend/generation-service/target/classes/application.yml
new file mode 100644
index 0000000..6d9215d
--- /dev/null
+++ b/backend/generation-service/target/classes/application.yml
@@ -0,0 +1,35 @@
+server:
+ port: 8086
+
+spring:
+ application:
+ name: generation-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ rabbitmq:
+ host: ${RABBITMQ_HOST:localhost}
+ port: ${RABBITMQ_PORT:5672}
+ username: ${RABBITMQ_USERNAME:admin}
+ password: ${RABBITMQ_PASSWORD:admin}
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/generation-service/target/classes/com/artedu/generation/GenerationServiceApplication.class b/backend/generation-service/target/classes/com/artedu/generation/GenerationServiceApplication.class
new file mode 100644
index 0000000..d89ec9f
Binary files /dev/null and b/backend/generation-service/target/classes/com/artedu/generation/GenerationServiceApplication.class differ
diff --git a/backend/generation-service/target/classes/com/artedu/generation/controller/GenerationController.class b/backend/generation-service/target/classes/com/artedu/generation/controller/GenerationController.class
new file mode 100644
index 0000000..abd8ea3
Binary files /dev/null and b/backend/generation-service/target/classes/com/artedu/generation/controller/GenerationController.class differ
diff --git a/backend/generation-service/target/classes/com/artedu/generation/service/PromptEngine.class b/backend/generation-service/target/classes/com/artedu/generation/service/PromptEngine.class
new file mode 100644
index 0000000..f78ed6d
Binary files /dev/null and b/backend/generation-service/target/classes/com/artedu/generation/service/PromptEngine.class differ
diff --git a/backend/generation-service/target/classes/com/artedu/generation/service/QianwenClient.class b/backend/generation-service/target/classes/com/artedu/generation/service/QianwenClient.class
new file mode 100644
index 0000000..070d674
Binary files /dev/null and b/backend/generation-service/target/classes/com/artedu/generation/service/QianwenClient.class differ
diff --git a/backend/generation-service/target/generation-service-1.0.0-SNAPSHOT.jar b/backend/generation-service/target/generation-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..44b4e68
Binary files /dev/null and b/backend/generation-service/target/generation-service-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/generation-service/target/maven-archiver/pom.properties b/backend/generation-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..b5f8c81
--- /dev/null
+++ b/backend/generation-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=generation-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/generation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/generation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..060f2ff
--- /dev/null
+++ b/backend/generation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,4 @@
+com\artedu\generation\controller\GenerationController.class
+com\artedu\generation\GenerationServiceApplication.class
+com\artedu\generation\service\QianwenClient.class
+com\artedu\generation\service\PromptEngine.class
diff --git a/backend/generation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/generation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..99c0982
--- /dev/null
+++ b/backend/generation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,4 @@
+D:\www\agent_9art\backend\generation-service\src\main\java\com\artedu\generation\controller\GenerationController.java
+D:\www\agent_9art\backend\generation-service\src\main\java\com\artedu\generation\GenerationServiceApplication.java
+D:\www\agent_9art\backend\generation-service\src\main\java\com\artedu\generation\service\PromptEngine.java
+D:\www\agent_9art\backend\generation-service\src\main\java\com\artedu\generation\service\QianwenClient.java
diff --git a/backend/intent-service/target/classes/application.yml b/backend/intent-service/target/classes/application.yml
new file mode 100644
index 0000000..222fec7
--- /dev/null
+++ b/backend/intent-service/target/classes/application.yml
@@ -0,0 +1,35 @@
+server:
+ port: 8084
+
+spring:
+ application:
+ name: intent-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ rabbitmq:
+ host: ${RABBITMQ_HOST:localhost}
+ port: ${RABBITMQ_PORT:5672}
+ username: ${RABBITMQ_USERNAME:admin}
+ password: ${RABBITMQ_PASSWORD:admin}
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/intent-service/target/classes/com/artedu/intent/IntentServiceApplication.class b/backend/intent-service/target/classes/com/artedu/intent/IntentServiceApplication.class
new file mode 100644
index 0000000..000c424
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/IntentServiceApplication.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/controller/IntentController.class b/backend/intent-service/target/classes/com/artedu/intent/controller/IntentController.class
new file mode 100644
index 0000000..e30dd1c
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/controller/IntentController.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/dto/IntentResult$IntentInfo.class b/backend/intent-service/target/classes/com/artedu/intent/dto/IntentResult$IntentInfo.class
new file mode 100644
index 0000000..6d90c67
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/dto/IntentResult$IntentInfo.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/dto/IntentResult.class b/backend/intent-service/target/classes/com/artedu/intent/dto/IntentResult.class
new file mode 100644
index 0000000..4520583
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/dto/IntentResult.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/entity/CustomerProfile.class b/backend/intent-service/target/classes/com/artedu/intent/entity/CustomerProfile.class
new file mode 100644
index 0000000..f097c03
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/entity/CustomerProfile.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/entity/IntentCategory.class b/backend/intent-service/target/classes/com/artedu/intent/entity/IntentCategory.class
new file mode 100644
index 0000000..3302a11
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/entity/IntentCategory.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/entity/IntentRecognition.class b/backend/intent-service/target/classes/com/artedu/intent/entity/IntentRecognition.class
new file mode 100644
index 0000000..c873a63
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/entity/IntentRecognition.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/mapper/CustomerProfileMapper.class b/backend/intent-service/target/classes/com/artedu/intent/mapper/CustomerProfileMapper.class
new file mode 100644
index 0000000..8d9e6d4
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/mapper/CustomerProfileMapper.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/mapper/IntentCategoryMapper.class b/backend/intent-service/target/classes/com/artedu/intent/mapper/IntentCategoryMapper.class
new file mode 100644
index 0000000..76a57bd
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/mapper/IntentCategoryMapper.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/mapper/IntentRecognitionMapper.class b/backend/intent-service/target/classes/com/artedu/intent/mapper/IntentRecognitionMapper.class
new file mode 100644
index 0000000..ef5a896
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/mapper/IntentRecognitionMapper.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/service/IntentRecognitionService.class b/backend/intent-service/target/classes/com/artedu/intent/service/IntentRecognitionService.class
new file mode 100644
index 0000000..45df181
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/service/IntentRecognitionService.class differ
diff --git a/backend/intent-service/target/classes/com/artedu/intent/service/LLMIntentClient.class b/backend/intent-service/target/classes/com/artedu/intent/service/LLMIntentClient.class
new file mode 100644
index 0000000..5b19523
Binary files /dev/null and b/backend/intent-service/target/classes/com/artedu/intent/service/LLMIntentClient.class differ
diff --git a/backend/intent-service/target/intent-service-1.0.0-SNAPSHOT.jar b/backend/intent-service/target/intent-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..eac2b07
Binary files /dev/null and b/backend/intent-service/target/intent-service-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/intent-service/target/maven-archiver/pom.properties b/backend/intent-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..9abd8ea
--- /dev/null
+++ b/backend/intent-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=intent-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/intent-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/intent-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..7b8ff5c
--- /dev/null
+++ b/backend/intent-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,12 @@
+com\artedu\intent\IntentServiceApplication.class
+com\artedu\intent\dto\IntentResult$IntentInfo.class
+com\artedu\intent\service\LLMIntentClient.class
+com\artedu\intent\mapper\IntentCategoryMapper.class
+com\artedu\intent\dto\IntentResult.class
+com\artedu\intent\entity\CustomerProfile.class
+com\artedu\intent\mapper\CustomerProfileMapper.class
+com\artedu\intent\mapper\IntentRecognitionMapper.class
+com\artedu\intent\controller\IntentController.class
+com\artedu\intent\entity\IntentRecognition.class
+com\artedu\intent\entity\IntentCategory.class
+com\artedu\intent\service\IntentRecognitionService.class
diff --git a/backend/intent-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/intent-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..dfa3898
--- /dev/null
+++ b/backend/intent-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,11 @@
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\controller\IntentController.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\dto\IntentResult.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\entity\CustomerProfile.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\entity\IntentCategory.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\entity\IntentRecognition.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\IntentServiceApplication.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\mapper\CustomerProfileMapper.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\mapper\IntentCategoryMapper.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\mapper\IntentRecognitionMapper.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\service\IntentRecognitionService.java
+D:\www\agent_9art\backend\intent-service\src\main\java\com\artedu\intent\service\LLMIntentClient.java
diff --git a/backend/kb-admin-service/pom.xml b/backend/kb-admin-service/pom.xml
index 658014e..1dd6636 100644
--- a/backend/kb-admin-service/pom.xml
+++ b/backend/kb-admin-service/pom.xml
@@ -12,5 +12,22 @@
jar
话术库管理服务
- com.arteducommon${project.version}
- org.springframework.bootspring-boot-starter-we
+
+ com.artedu
+ common
+ ${project.version}
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
diff --git a/backend/kb-admin-service/target/classes/application.yml b/backend/kb-admin-service/target/classes/application.yml
new file mode 100644
index 0000000..2b92406
--- /dev/null
+++ b/backend/kb-admin-service/target/classes/application.yml
@@ -0,0 +1,35 @@
+server:
+ port: 8087
+
+spring:
+ application:
+ name: kb-admin-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ rabbitmq:
+ host: ${RABBITMQ_HOST:localhost}
+ port: ${RABBITMQ_PORT:5672}
+ username: ${RABBITMQ_USERNAME:admin}
+ password: ${RABBITMQ_PASSWORD:admin}
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/kb-admin-service/target/classes/com/artedu/kbadmin/KbAdminServiceApplication.class b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/KbAdminServiceApplication.class
new file mode 100644
index 0000000..8f34efc
Binary files /dev/null and b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/KbAdminServiceApplication.class differ
diff --git a/backend/kb-admin-service/target/classes/com/artedu/kbadmin/controller/UtteranceController.class b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/controller/UtteranceController.class
new file mode 100644
index 0000000..bdef47d
Binary files /dev/null and b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/controller/UtteranceController.class differ
diff --git a/backend/kb-admin-service/target/classes/com/artedu/kbadmin/entity/Utterance.class b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/entity/Utterance.class
new file mode 100644
index 0000000..1f55fe7
Binary files /dev/null and b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/entity/Utterance.class differ
diff --git a/backend/kb-admin-service/target/classes/com/artedu/kbadmin/mapper/UtteranceMapper.class b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/mapper/UtteranceMapper.class
new file mode 100644
index 0000000..514f399
Binary files /dev/null and b/backend/kb-admin-service/target/classes/com/artedu/kbadmin/mapper/UtteranceMapper.class differ
diff --git a/backend/kb-admin-service/target/kb-admin-service-1.0.0-SNAPSHOT.jar b/backend/kb-admin-service/target/kb-admin-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..79236a4
Binary files /dev/null and b/backend/kb-admin-service/target/kb-admin-service-1.0.0-SNAPSHOT.jar differ
diff --git a/backend/kb-admin-service/target/maven-archiver/pom.properties b/backend/kb-admin-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..4fb9ac0
--- /dev/null
+++ b/backend/kb-admin-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=kb-admin-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/kb-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/kb-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..a7cac0f
--- /dev/null
+++ b/backend/kb-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,4 @@
+com\artedu\kbadmin\mapper\UtteranceMapper.class
+com\artedu\kbadmin\controller\UtteranceController.class
+com\artedu\kbadmin\entity\Utterance.class
+com\artedu\kbadmin\KbAdminServiceApplication.class
diff --git a/backend/kb-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/kb-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..ff57cd1
--- /dev/null
+++ b/backend/kb-admin-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,4 @@
+D:\www\agent_9art\backend\kb-admin-service\src\main\java\com\artedu\kbadmin\controller\UtteranceController.java
+D:\www\agent_9art\backend\kb-admin-service\src\main\java\com\artedu\kbadmin\entity\Utterance.java
+D:\www\agent_9art\backend\kb-admin-service\src\main\java\com\artedu\kbadmin\KbAdminServiceApplication.java
+D:\www\agent_9art\backend\kb-admin-service\src\main\java\com\artedu\kbadmin\mapper\UtteranceMapper.java
diff --git a/backend/pom.xml b/backend/pom.xml
index 75ae4c7..62507e9 100644
--- a/backend/pom.xml
+++ b/backend/pom.xml
@@ -80,6 +80,11 @@
jna
${jna.version}
+
+ mysql
+ mysql-connector-java
+ 8.0.33
+
diff --git a/backend/recommendation-service/src/main/java/com/artedu/recommend/service/RankingService.java b/backend/recommendation-service/src/main/java/com/artedu/recommend/service/RankingService.java
index 6454017..292e649 100644
--- a/backend/recommendation-service/src/main/java/com/artedu/recommend/service/RankingService.java
+++ b/backend/recommendation-service/src/main/java/com/artedu/recommend/service/RankingService.java
@@ -1,5 +1,6 @@
package com.artedu.recommend.service;
+import com.artedu.common.util.JsonUtils;
import com.artedu.recommend.entity.Utterance;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
diff --git a/backend/recommendation-service/target/classes/application.yml b/backend/recommendation-service/target/classes/application.yml
new file mode 100644
index 0000000..96f04b4
--- /dev/null
+++ b/backend/recommendation-service/target/classes/application.yml
@@ -0,0 +1,35 @@
+server:
+ port: 8085
+
+spring:
+ application:
+ name: recommendation-service
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:ai_assistant}?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=Asia/Shanghai&useSSL=false
+ username: ${MYSQL_USERNAME:root}
+ password: ${MYSQL_PASSWORD:root}
+ redis:
+ host: ${REDIS_HOST:localhost}
+ port: ${REDIS_PORT:6379}
+ password: ${REDIS_PASSWORD:}
+ database: 0
+ lettuce:
+ pool:
+ max-active: 8
+ max-idle: 8
+ min-idle: 0
+ rabbitmq:
+ host: ${RABBITMQ_HOST:localhost}
+ port: ${RABBITMQ_PORT:5672}
+ username: ${RABBITMQ_USERNAME:admin}
+ password: ${RABBITMQ_PASSWORD:admin}
+
+mybatis-plus:
+ configuration:
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/RecommendationServiceApplication.class b/backend/recommendation-service/target/classes/com/artedu/recommend/RecommendationServiceApplication.class
new file mode 100644
index 0000000..cd3d669
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/RecommendationServiceApplication.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/controller/RecommendController.class b/backend/recommendation-service/target/classes/com/artedu/recommend/controller/RecommendController.class
new file mode 100644
index 0000000..6102bcf
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/controller/RecommendController.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/entity/Recommendation.class b/backend/recommendation-service/target/classes/com/artedu/recommend/entity/Recommendation.class
new file mode 100644
index 0000000..da0620f
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/entity/Recommendation.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/entity/Utterance.class b/backend/recommendation-service/target/classes/com/artedu/recommend/entity/Utterance.class
new file mode 100644
index 0000000..5beb649
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/entity/Utterance.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/mapper/RecommendationMapper.class b/backend/recommendation-service/target/classes/com/artedu/recommend/mapper/RecommendationMapper.class
new file mode 100644
index 0000000..73b1ad9
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/mapper/RecommendationMapper.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/mapper/UtteranceMapper.class b/backend/recommendation-service/target/classes/com/artedu/recommend/mapper/UtteranceMapper.class
new file mode 100644
index 0000000..c7754e0
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/mapper/UtteranceMapper.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/service/RankingService$ScoredUtterance.class b/backend/recommendation-service/target/classes/com/artedu/recommend/service/RankingService$ScoredUtterance.class
new file mode 100644
index 0000000..26dc80e
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/service/RankingService$ScoredUtterance.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/service/RankingService.class b/backend/recommendation-service/target/classes/com/artedu/recommend/service/RankingService.class
new file mode 100644
index 0000000..2345fa2
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/service/RankingService.class differ
diff --git a/backend/recommendation-service/target/classes/com/artedu/recommend/service/RecallService.class b/backend/recommendation-service/target/classes/com/artedu/recommend/service/RecallService.class
new file mode 100644
index 0000000..3d81ffe
Binary files /dev/null and b/backend/recommendation-service/target/classes/com/artedu/recommend/service/RecallService.class differ
diff --git a/backend/recommendation-service/target/maven-archiver/pom.properties b/backend/recommendation-service/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..b321c46
--- /dev/null
+++ b/backend/recommendation-service/target/maven-archiver/pom.properties
@@ -0,0 +1,3 @@
+artifactId=recommendation-service
+groupId=com.artedu
+version=1.0.0-SNAPSHOT
diff --git a/backend/recommendation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/recommendation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..9a392f0
--- /dev/null
+++ b/backend/recommendation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,9 @@
+com\artedu\recommend\RecommendationServiceApplication.class
+com\artedu\recommend\controller\RecommendController.class
+com\artedu\recommend\entity\Recommendation.class
+com\artedu\recommend\entity\Utterance.class
+com\artedu\recommend\mapper\RecommendationMapper.class
+com\artedu\recommend\service\RankingService.class
+com\artedu\recommend\service\RecallService.class
+com\artedu\recommend\mapper\UtteranceMapper.class
+com\artedu\recommend\service\RankingService$ScoredUtterance.class
diff --git a/backend/recommendation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/recommendation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..19c190b
--- /dev/null
+++ b/backend/recommendation-service/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,8 @@
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\controller\RecommendController.java
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\entity\Recommendation.java
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\entity\Utterance.java
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\mapper\RecommendationMapper.java
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\mapper\UtteranceMapper.java
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\RecommendationServiceApplication.java
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\service\RankingService.java
+D:\www\agent_9art\backend\recommendation-service\src\main\java\com\artedu\recommend\service\RecallService.java
diff --git a/backend/recommendation-service/target/recommendation-service-1.0.0-SNAPSHOT.jar b/backend/recommendation-service/target/recommendation-service-1.0.0-SNAPSHOT.jar
new file mode 100644
index 0000000..ce226f4
Binary files /dev/null and b/backend/recommendation-service/target/recommendation-service-1.0.0-SNAPSHOT.jar differ