From d09e81d59b488cb60367118f21b8cf478ee36c7f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=90=AF=E8=88=AA=E8=80=81=E9=BD=90?= <280645618@qq.com>
Date: Sun, 8 Mar 2026 12:02:04 +0800
Subject: [PATCH] =?UTF-8?q?=E6=8E=A5=E5=85=A5deepseek?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api/ai-agent/pom.xml | 6 ++
.../qihangerp/erp/serviceImpl/AiService.java | 70 +++++++++++++++----
.../src/main/resources/application.yml | 4 +-
vue/src/views/index.vue | 1 +
4 files changed, 65 insertions(+), 16 deletions(-)
diff --git a/api/ai-agent/pom.xml b/api/ai-agent/pom.xml
index 794e7b0d..c9a3d65c 100644
--- a/api/ai-agent/pom.xml
+++ b/api/ai-agent/pom.xml
@@ -155,6 +155,12 @@
langchain4j-ollama
1.11.0
+
+
+ dev.langchain4j
+ langchain4j-open-ai
+ 1.11.0
+
diff --git a/api/ai-agent/src/main/java/cn/qihangerp/erp/serviceImpl/AiService.java b/api/ai-agent/src/main/java/cn/qihangerp/erp/serviceImpl/AiService.java
index af4d2738..43d9de83 100644
--- a/api/ai-agent/src/main/java/cn/qihangerp/erp/serviceImpl/AiService.java
+++ b/api/ai-agent/src/main/java/cn/qihangerp/erp/serviceImpl/AiService.java
@@ -1,7 +1,9 @@
package cn.qihangerp.erp.serviceImpl;
import dev.langchain4j.model.ollama.OllamaChatModel;
+import dev.langchain4j.model.openai.OpenAiChatModel;
import dev.langchain4j.service.AiServices;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.BufferedReader;
import java.io.IOException;
@@ -38,6 +40,16 @@ public class AiService {
// 页面规则列表
private List pageRules = new ArrayList<>();
+ // DeepSeek API 配置
+ @Value("${deepseek.api.key:}")
+ private String deepSeekApiKey;
+
+ @Value("${deepseek.api.endpoint:https://api.deepseek.com/v1/chat/completions}")
+ private String deepSeekApiEndpoint;
+
+ @Value("${deepseek.api.model:deepseek-chat}")
+ private String deepSeekModel;
+
/**
* 构造方法,加载页面规则
*/
@@ -134,26 +146,56 @@ public class AiService {
// 替换消息中的"今天"为具体日期
message = message.replace("今天", today);
- // 根据模型名称创建对应的ChatModel
- OllamaChatModel modelInstance = OllamaChatModel.builder()
- .baseUrl("http://localhost:11434") // Ollama默认端口
- .modelName(model) // 使用指定的模型
- .temperature(0.7)
- .timeout(Duration.ofSeconds(300)) // 超时时间设置为300秒(5分钟)
- .build();
-
// 创建订单工具服务
OrderToolService orderToolService = new OrderToolService();
- // 使用AiServices创建AI服务,自动处理工具调用
- OrderAiService aiService = AiServices.builder(OrderAiService.class)
- .chatModel(modelInstance)
- .tools(orderToolService)
- .build();
-
// 执行AI服务,添加今天的日期信息
String enhancedMessage = "今天的日期是:" + today + "\n" + message;
System.out.println("发送给AI的消息: " + enhancedMessage);
+
+ // 根据模型名称选择使用Ollama还是DeepSeek API
+ OrderAiService aiService;
+ if (model.startsWith("deepseek")) {
+ // 使用DeepSeek API
+ if (deepSeekApiKey == null || deepSeekApiKey.isEmpty()) {
+ return "错误: DeepSeek API密钥未配置,请在application.yml中设置deepseek.api.key";
+ }
+
+ try {
+ // 尝试创建DeepSeek模型实例
+ OpenAiChatModel deepSeekModelInstance = OpenAiChatModel.builder()
+ .baseUrl(deepSeekApiEndpoint)
+ .apiKey(deepSeekApiKey)
+ .modelName(deepSeekModel)
+ .temperature(0.7)
+ .timeout(Duration.ofSeconds(300))
+ .build();
+
+ aiService = AiServices.builder(OrderAiService.class)
+ .chatModel(deepSeekModelInstance)
+ .tools(orderToolService)
+ .build();
+ System.out.println("使用DeepSeek API处理消息");
+ } catch (Exception e) {
+ // 如果DeepSeek依赖不可用,返回错误消息
+ return "错误: DeepSeek API依赖未配置,请检查Maven依赖是否正确";
+ }
+ } else {
+ // 使用Ollama
+ OllamaChatModel modelInstance = OllamaChatModel.builder()
+ .baseUrl("http://localhost:11434") // Ollama默认端口
+ .modelName(model) // 使用指定的模型
+ .temperature(0.7)
+ .timeout(Duration.ofSeconds(300)) // 超时时间设置为300秒(5分钟)
+ .build();
+
+ aiService = AiServices.builder(OrderAiService.class)
+ .chatModel(modelInstance)
+ .tools(orderToolService)
+ .build();
+ System.out.println("使用Ollama处理消息,模型: " + model);
+ }
+
String result = aiService.chat(enhancedMessage);
System.out.println("AI返回的结果: " + result);
return result;
diff --git a/api/ai-agent/src/main/resources/application.yml b/api/ai-agent/src/main/resources/application.yml
index 0715caf0..70dc9623 100644
--- a/api/ai-agent/src/main/resources/application.yml
+++ b/api/ai-agent/src/main/resources/application.yml
@@ -96,6 +96,6 @@ mybatis-plus:
deepseek:
api:
- key:
- endpoint: https://api.deepseek.com/chat/completions
+ key: sk-8318ebe8e9d049d2b2a8bf506ba9b5ff
+ endpoint: https://api.deepseek.com/v1
model: deepseek-chat
\ No newline at end of file
diff --git a/vue/src/views/index.vue b/vue/src/views/index.vue
index b6212b66..825c2201 100644
--- a/vue/src/views/index.vue
+++ b/vue/src/views/index.vue
@@ -11,6 +11,7 @@
+