parent
e9ce6f25d1
commit
1649e5782e
@ -0,0 +1,77 @@
|
||||
package xyz.wbsite.ai;
|
||||
|
||||
import dev.langchain4j.agent.tool.ToolSpecification;
|
||||
import dev.langchain4j.mcp.McpToolProvider;
|
||||
import dev.langchain4j.mcp.client.DefaultMcpClient;
|
||||
import dev.langchain4j.mcp.client.McpClient;
|
||||
import dev.langchain4j.mcp.client.McpPrompt;
|
||||
import dev.langchain4j.mcp.client.McpResource;
|
||||
import dev.langchain4j.mcp.client.McpResourceTemplate;
|
||||
import dev.langchain4j.mcp.client.transport.McpTransport;
|
||||
import dev.langchain4j.mcp.client.transport.http.HttpMcpTransport;
|
||||
import dev.langchain4j.model.chat.ChatModel;
|
||||
import dev.langchain4j.model.openai.OpenAiChatModel;
|
||||
import dev.langchain4j.service.AiServices;
|
||||
import dev.langchain4j.service.SystemMessage;
|
||||
import dev.langchain4j.service.tool.ToolProvider;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
/**
|
||||
* Mcp_Example 示例
|
||||
*/
|
||||
public class Mcp_Example {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
OpenAiChatModel chatModel = Helper.getChatModel();
|
||||
|
||||
|
||||
// 1. 异步初始化 MCP 客户端
|
||||
HttpMcpTransport mcpTransport = new HttpMcpTransport.Builder()
|
||||
.sseUrl("http://192.168.9.100:8080/sse")
|
||||
// .sseUrl("http://192.168.9.100:8080/mcp/sse")
|
||||
.logRequests(true)
|
||||
.logResponses(true)
|
||||
.timeout(Duration.ZERO)
|
||||
.build();
|
||||
|
||||
McpClient mcpClient = new DefaultMcpClient.Builder()
|
||||
.transport(mcpTransport)
|
||||
.clientVersion("v1")
|
||||
.protocolVersion("2024-11-05")
|
||||
.toolExecutionTimeout(Duration.ZERO)
|
||||
.build();
|
||||
|
||||
// List<McpPrompt> mcpPrompts = mcpClient.listPrompts();
|
||||
// List<McpResource> mcpResources = mcpClient.listResources();
|
||||
// List<ToolSpecification> toolSpecifications = mcpClient.listTools();
|
||||
// List<McpResourceTemplate> mcpResourceTemplates = mcpClient.listResourceTemplates();
|
||||
|
||||
McpToolProvider mcpToolProvider = new McpToolProvider.Builder()
|
||||
.mcpClients(List.of(mcpClient))
|
||||
.build();
|
||||
|
||||
Assistant assistant = AiServices.builder(Assistant.class)
|
||||
.chatModel(chatModel)
|
||||
.toolProvider(mcpToolProvider)
|
||||
.build();
|
||||
|
||||
String chat = assistant.chat("今天,泰州的天气怎么样");
|
||||
|
||||
System.out.println(chat);
|
||||
}
|
||||
|
||||
/**
|
||||
* 助手
|
||||
*/
|
||||
interface Assistant {
|
||||
|
||||
@SystemMessage("请参考提供资料,不要发散,没有请直接回答没有")
|
||||
String chat(String userMessage);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue