接入deepseek

This commit is contained in:
启航老齐 2026-03-08 12:02:04 +08:00
parent fb8b9d8ad7
commit d09e81d59b
4 changed files with 65 additions and 16 deletions

View File

@ -155,6 +155,12 @@
<artifactId>langchain4j-ollama</artifactId>
<version>1.11.0</version>
</dependency>
<!-- OpenAI 集成用于DeepSeek API -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>1.11.0</version>
</dependency>
</dependencies>
<build>

View File

@ -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<PageRule> 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,7 +146,42 @@ public class AiService {
// 替换消息中的"今天"为具体日期
message = message.replace("今天", today);
// 根据模型名称创建对应的ChatModel
// 创建订单工具服务
OrderToolService orderToolService = new OrderToolService();
// 执行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) // 使用指定的模型
@ -142,18 +189,13 @@ public class AiService {
.timeout(Duration.ofSeconds(300)) // 超时时间设置为300秒5分钟
.build();
// 创建订单工具服务
OrderToolService orderToolService = new OrderToolService();
// 使用AiServices创建AI服务自动处理工具调用
OrderAiService aiService = AiServices.builder(OrderAiService.class)
aiService = AiServices.builder(OrderAiService.class)
.chatModel(modelInstance)
.tools(orderToolService)
.build();
System.out.println("使用Ollama处理消息模型: " + model);
}
// 执行AI服务添加今天的日期信息
String enhancedMessage = "今天的日期是:" + today + "\n" + message;
System.out.println("发送给AI的消息: " + enhancedMessage);
String result = aiService.chat(enhancedMessage);
System.out.println("AI返回的结果: " + result);
return result;

View File

@ -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

View File

@ -11,6 +11,7 @@
<el-select v-model="selectedModel" size="mini" style="width: 120px; margin-right: 10px;">
<el-option label="qwen3.5:2b" value="qwen3.5:2b"></el-option>
<el-option label="Llama 3" value="llama3"></el-option>
<el-option label="DeepSeek" value="deepseek"></el-option>
<el-option label="Gemini" value="gemini"></el-option>
<el-option label="Claude" value="claude"></el-option>
<el-option label="Gemma" value="gemma"></el-option>