diff --git a/yudao-module-ai/yudao-module-ai-api/pom.xml b/yudao-module-ai/yudao-module-ai-api/pom.xml
index 621c05171..ce9c41527 100644
--- a/yudao-module-ai/yudao-module-ai-api/pom.xml
+++ b/yudao-module-ai/yudao-module-ai-api/pom.xml
@@ -17,4 +17,22 @@
UTF-8
+
+
+
+ cn.iocoder.boot
+ yudao-common
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+ true
+
+
\ No newline at end of file
diff --git a/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiModelEnum.java b/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiModelEnum.java
new file mode 100644
index 000000000..ff1889fe7
--- /dev/null
+++ b/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/AiModelEnum.java
@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.module.ai.enums;
+
+import lombok.Getter;
+
+/**
+ * author: fansili
+ * time: 2024/3/4 12:36
+ */
+@Getter
+public enum AiModelEnum {
+
+ OPEN_AI_GPT_3_5("gpt-3.5-turbo", "GPT3.5"),
+ OPEN_AI_GPT_4("gpt-4-turbo", "GPT4")
+
+ ;
+
+ AiModelEnum(String value, String message) {
+ this.value = value;
+ this.message = message;
+ }
+
+ private String value;
+
+ private String message;
+}
diff --git a/yudao-module-ai/yudao-module-ai-biz/pom.xml b/yudao-module-ai/yudao-module-ai-biz/pom.xml
index 865dce912..0281c9ece 100644
--- a/yudao-module-ai/yudao-module-ai-biz/pom.xml
+++ b/yudao-module-ai/yudao-module-ai-biz/pom.xml
@@ -19,10 +19,38 @@
+
+ cn.iocoder.boot
+ yudao-module-ai-api
+ ${revision}
+
+
+ cn.iocoder.boot
+ yudao-common
+
+
org.springframework.ai
spring-ai-openai-spring-boot-starter
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-security
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 17
+
+
+
+
\ No newline at end of file
diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/ChatController.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/ChatController.java
new file mode 100644
index 000000000..b7ca740fb
--- /dev/null
+++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/ChatController.java
@@ -0,0 +1,60 @@
+package cn.iocoder.yudao.module.ai.controller.admin;
+
+import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.module.ai.ErrorCodeConstants;
+import cn.iocoder.yudao.module.ai.controller.admin.vo.AiChatReqVO;
+import cn.iocoder.yudao.module.ai.enums.AiModelEnum;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.ai.chat.ChatClient;
+import org.springframework.ai.openai.OpenAiChatClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * AI模块
+ *
+ * author: fansili
+ * time: 2024/3/3 20:28
+ */
+@Tag(name = "AI模块")
+@RestController
+@RequestMapping("/ai-api")
+public class ChatController {
+
+ @Autowired
+ private ApplicationContext applicationContext;
+
+ @PostMapping("/chat")
+ @Operation(summary = "对话聊天", description = "简单的ai聊天")
+ public CommonResult chat(@RequestBody @Validated AiChatReqVO reqVO) {
+ ChatClient chatClient = getChatClient(reqVO.getAiModel());
+ String res;
+ try {
+ res = chatClient.call(reqVO.getInputText());
+ } catch (Exception e) {
+ res = e.getMessage();
+ }
+ return CommonResult.success(res);
+ }
+
+ /**
+ * 根据 ai模型 获取对于的 模型实现类
+ *
+ * @param aiModelEnum
+ * @return
+ */
+ private ChatClient getChatClient(AiModelEnum aiModelEnum) {
+ if (AiModelEnum.OPEN_AI_GPT_3_5 == aiModelEnum) {
+ return applicationContext.getBean(OpenAiChatClient.class);
+ }
+ // AI模型暂不支持
+ throw ServiceExceptionUtil.exception(ErrorCodeConstants.AI_MODULE_NOT_SUPPORTED);
+ }
+}
diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/vo/AiChatReqVO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/vo/AiChatReqVO.java
new file mode 100644
index 000000000..43b29d283
--- /dev/null
+++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/vo/AiChatReqVO.java
@@ -0,0 +1,26 @@
+package cn.iocoder.yudao.module.ai.controller.admin.vo;
+
+import cn.iocoder.yudao.module.ai.enums.AiModelEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * ai 聊天 req
+ *
+ * author: fansili
+ * time: 2024/3/4 12:33
+ */
+@Schema(description = "用户 App - 上传文件 Request VO")
+@Data
+public class AiChatReqVO {
+
+ @Schema(description = "输入内容", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "输入内容不能为空")
+ private String inputText;
+
+ @Schema(description = "AI模型", requiredMode = Schema.RequiredMode.REQUIRED)
+ @NotNull(message = "AI模型不能为空")
+ private AiModelEnum aiModel;
+
+}
diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/package-info.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/package-info.java
new file mode 100644
index 000000000..f15447172
--- /dev/null
+++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/package-info.java
@@ -0,0 +1,5 @@
+/**
+ * author: fansili
+ * time: 2024/3/4 13:08
+ */
+package cn.iocoder.yudao.module.ai.controller;
\ No newline at end of file
diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/resources/application.properties b/yudao-module-ai/yudao-module-ai-biz/src/main/resources/application.properties
new file mode 100644
index 000000000..cb06af6ee
--- /dev/null
+++ b/yudao-module-ai/yudao-module-ai-biz/src/main/resources/application.properties
@@ -0,0 +1,6 @@
+# open ai
+
+# openAI https://openai.com/
+spring.ai.openai.api-key=${OPEN_AI_KEY}
+spring.ai.openai.chat.options.model=gpt-3.5-turbo
+spring.ai.openai.chat.options.temperature=0.7
\ No newline at end of file
diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/resources/application.yaml b/yudao-module-ai/yudao-module-ai-biz/src/main/resources/application.yaml
deleted file mode 100644
index e69de29bb..000000000