feat:langchain4j接入

This commit is contained in:
xiang
2026-03-12 23:58:02 +08:00
parent ba859299a4
commit 06d5b6ca63
24 changed files with 569 additions and 128 deletions

View File

@@ -3,7 +3,10 @@ package com.xiang;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.ConfigurationPropertiesScan;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.env.Environment;

View File

@@ -1,40 +1,22 @@
package com.xiang.xsa.xservice.ai.server;
import com.xiang.xservice.ai.agent.BaseAgent;
import com.xiang.xservice.ai.core.enums.ModelTypeEnum;
import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.chat.memory.ChatMemory;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;
@RestController
@RequiredArgsConstructor
public class ChatController {
private final ChatClient chatClient;
private final ChatMemory chatMemory;
private final BaseAgent baseAgent;
@PostMapping("/chat")
@GetMapping("/chat")
public String chatDemo(@RequestParam("question") String question) {
return chatClient.prompt(question).call().content();
baseAgent.chat(ModelTypeEnum.OPEN_AI, question);
return "321";
}
@PostMapping(value = "/chatWithFlux")
public Flux<String> chatWithFlux(@RequestParam("question") String question) {
return chatClient.prompt(question).stream().content();
}
@PostMapping("/chatWithConversionId")
public String chatWithConversionId(@RequestParam("sessionId") String sessionId, @RequestParam("question") String question) {
return chatClient.prompt()
.user(question)
.advisors(
MessageChatMemoryAdvisor.builder(chatMemory).conversationId(sessionId).build(), new SimpleLoggerAdvisor()
)
.call().content();
}
}

View File

@@ -1,16 +1,15 @@
spring:
datasource:
url: jdbc:mysql://rm-bp15t34gqx62jm069ro.mysql.rds.aliyuncs.com:3306/xservice-ai-center?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
username: root
password: xb#UWqnhH24&XpX
driver-class-name: com.mysql.cj.jdbc.Driver
ai:
dashscope:
api-key: sk-07353fd191074c9c930b134230ba88ea
chat:
options:
model: qwen-plus
http:
connect-timeout: 30s
read-timeout: 60s
ai:
openai:
configs:
bai-lian:
apiKey: sk-70cb426d7d1e4b54b4ffe71022e7d815
modelName: qwen3.5-plus
baseUrl: https://dashscope.aliyuncs.com/compatible-mode/v1