diff --git a/.gitignore b/.gitignore
index 549e00a..dcfe917 100644
--- a/.gitignore
+++ b/.gitignore
@@ -31,3 +31,4 @@ build/
### VS Code ###
.vscode/
+/src/main/resources/application-dev.yml
diff --git a/pom.xml b/pom.xml
index 77f5e16..f208525 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,7 +39,7 @@
org.projectlombok
lombok
true
- 1.18.36
+ 1.18.38
org.springframework.boot
@@ -52,7 +52,7 @@
hutool-all
5.8.37
-
+
com.github.xiaoymin
knife4j-openapi3-jakarta-spring-boot-starter
@@ -75,7 +75,12 @@
com.baomidou
mybatis-plus-jsqlparser
-
+
+
+ com.alibaba
+ dashscope-sdk-java
+ 2.20.0
+
@@ -100,6 +105,7 @@
org.projectlombok
lombok
+ 1.18.38
diff --git a/src/main/java/com/huangge1199/aiagent/controller/HealthController.java b/src/main/java/com/huangge1199/aiagent/controller/HealthController.java
index 25cdf88..d89d811 100644
--- a/src/main/java/com/huangge1199/aiagent/controller/HealthController.java
+++ b/src/main/java/com/huangge1199/aiagent/controller/HealthController.java
@@ -1,5 +1,7 @@
package com.huangge1199.aiagent.controller;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -12,9 +14,11 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/health")
+@Tag(name = "程序健康检测")
public class HealthController {
@GetMapping
+ @Operation(summary = "简单返回")
public String healthCheck() {
return "OK";
}
diff --git a/src/main/java/com/huangge1199/aiagent/controller/invoke/InvokeController.java b/src/main/java/com/huangge1199/aiagent/controller/invoke/InvokeController.java
new file mode 100644
index 0000000..67e87fa
--- /dev/null
+++ b/src/main/java/com/huangge1199/aiagent/controller/invoke/InvokeController.java
@@ -0,0 +1,41 @@
+package com.huangge1199.aiagent.controller.invoke;
+
+import com.alibaba.dashscope.aigc.generation.GenerationResult;
+import com.alibaba.dashscope.exception.ApiException;
+import com.alibaba.dashscope.exception.InputRequiredException;
+import com.alibaba.dashscope.exception.NoApiKeyException;
+import com.alibaba.dashscope.utils.JsonUtils;
+import com.huangge1199.aiagent.common.R;
+import com.huangge1199.aiagent.demo.invoke.SdkAiInvoke;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.annotation.Resource;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * InvokeController
+ *
+ * @author huangge1199
+ * @since 2025/5/14 12:56:17
+ */
+@RestController
+@RequestMapping("/mbgk/data")
+@Tag(name = "AI大模型接入")
+public class InvokeController {
+
+ @Resource
+ private SdkAiInvoke sdkAiInvoke;
+
+ @PostMapping("/sdk")
+ @Operation(summary = "sdk接入")
+ public R sdkAiInvoke() {
+ try {
+ GenerationResult result = sdkAiInvoke.callWithMessage();
+ return R.ok(JsonUtils.toJson(result));
+ } catch (ApiException | NoApiKeyException | InputRequiredException e) {
+ return R.fail(e.getMessage());
+ }
+ }
+}
diff --git a/src/main/java/com/huangge1199/aiagent/demo/invoke/SdkAiInvoke.java b/src/main/java/com/huangge1199/aiagent/demo/invoke/SdkAiInvoke.java
new file mode 100644
index 0000000..f618d79
--- /dev/null
+++ b/src/main/java/com/huangge1199/aiagent/demo/invoke/SdkAiInvoke.java
@@ -0,0 +1,49 @@
+package com.huangge1199.aiagent.demo.invoke;
+
+import java.util.Arrays;
+import java.lang.System;
+import com.alibaba.dashscope.aigc.generation.Generation;
+import com.alibaba.dashscope.aigc.generation.GenerationParam;
+import com.alibaba.dashscope.aigc.generation.GenerationResult;
+import com.alibaba.dashscope.common.Message;
+import com.alibaba.dashscope.common.Role;
+import com.alibaba.dashscope.exception.ApiException;
+import com.alibaba.dashscope.exception.InputRequiredException;
+import com.alibaba.dashscope.exception.NoApiKeyException;
+import com.alibaba.dashscope.utils.JsonUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+/**
+ * SdkAiInvoke
+ *
+ * @author huangge1199
+ * @since 2025/5/14 12:27:47
+ */
+@Component
+public class SdkAiInvoke {
+
+ @Value("${bailian.API-KEY}")
+ private String baiLianKey;
+
+ public GenerationResult callWithMessage() throws ApiException, NoApiKeyException, InputRequiredException {
+ Generation gen = new Generation();
+ Message systemMsg = Message.builder()
+ .role(Role.SYSTEM.getValue())
+ .content("You are a helpful assistant.")
+ .build();
+ Message userMsg = Message.builder()
+ .role(Role.USER.getValue())
+ .content("你是谁?")
+ .build();
+ GenerationParam param = GenerationParam.builder()
+ // 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
+ .apiKey(baiLianKey)
+ // 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
+ .model("qwen-plus")
+ .messages(Arrays.asList(systemMsg, userMsg))
+ .resultFormat(GenerationParam.ResultFormat.MESSAGE)
+ .build();
+ return gen.call(param);
+ }
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0df8a44..af5a5b7 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -2,7 +2,7 @@ spring:
application:
name: long-ai-agent
profiles:
- active: local
+ active: dev
server:
port: 8123
servlet: