This commit is contained in:
huangge1199 2025-07-14 11:17:24 +08:00
parent 47becaa432
commit f34c61535f
4 changed files with 59 additions and 2 deletions

View File

@ -64,7 +64,13 @@
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.20.1</version>
</dependency><!-- https://mvnrepository.com/artifact/dev.langchain4j/langchain4j-mcp -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-mcp</artifactId>
<version>1.1.0-beta7</version>
</dependency>
</dependencies>
<build>

View File

@ -2,6 +2,7 @@ package com.huangge1199.ai.config;
import com.huangge1199.ai.service.LangChainService;
import com.huangge1199.ai.tool.InterviewQuestionTool;
import dev.langchain4j.mcp.McpToolProvider;
import dev.langchain4j.memory.ChatMemory;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.chat.ChatModel;
@ -26,6 +27,9 @@ public class LangChainConfig {
@Resource
private ContentRetriever contentRetriever;
@Resource
private McpToolProvider mcpToolProvider;
@Bean
public LangChainService langChainService() {
ChatMemory chatMemory = MessageWindowChatMemory.withMaxMessages(10);
@ -35,6 +39,7 @@ public class LangChainConfig {
.chatMemoryProvider(memoryId->MessageWindowChatMemory.withMaxMessages(10))
.contentRetriever(contentRetriever)
.tools(new InterviewQuestionTool())
.toolProvider(mcpToolProvider)
.build();
}
}

View File

@ -0,0 +1,44 @@
package com.huangge1199.ai.config;
import dev.langchain4j.mcp.McpToolProvider;
import dev.langchain4j.mcp.client.DefaultMcpClient;
import dev.langchain4j.mcp.client.McpClient;
import dev.langchain4j.mcp.client.transport.McpTransport;
import dev.langchain4j.mcp.client.transport.http.HttpMcpTransport;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* McpConfig
*
* @author huangge1199
* @since 2025/7/14 10:13:43
*/
@Configuration
public class McpConfig {
@Value("${bigmodel.api-key}")
private String apiKey;
@Bean
public McpToolProvider mcpToolProvider() {
// MCP 服务通讯
McpTransport transport = new HttpMcpTransport.Builder()
.sseUrl("https://open.bigmodel.cn/api/mcp/web_search/sse?Authorization=" + apiKey)
.logRequests(true)
.logResponses(true)
.build();
// 创建 MCP 客户端
McpClient mcpClient = new DefaultMcpClient.Builder()
.key("test")
.transport(transport)
.build();
// MCP 客户端获取工具
return McpToolProvider.builder()
.mcpClients(mcpClient)
.build();
}
}

View File

@ -4,6 +4,8 @@ spring:
name: ai-langChain4j
profiles:
active: local
server:
port: 8888
langchain4j:
community:
dashscope:
@ -13,5 +15,5 @@ langchain4j:
embedding-model:
model-name: text-embedding-v4
api-key: <You API Key here>
server:
port: 8888
bigmodel:
api-key: <You API Key here>