diff --git a/pom.xml b/pom.xml
index 54a8c7d..336e5ef 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
17
- 1.1.0
+ 1.2.0
@@ -32,6 +32,7 @@
default
+
@@ -102,6 +103,12 @@
1.0.0-beta2
+
+ dev.langchain4j
+ langchain4j-mcp
+ 1.2.0-beta8
+
+
com.hankcs
@@ -120,6 +127,7 @@
slf4j-api
1.7.32
+
diff --git a/src/main/java/xyz/wbsite/ai/Helper.java b/src/main/java/xyz/wbsite/ai/Helper.java
index 851fda6..b0e576a 100644
--- a/src/main/java/xyz/wbsite/ai/Helper.java
+++ b/src/main/java/xyz/wbsite/ai/Helper.java
@@ -75,8 +75,8 @@ public class Helper {
.apiKey("1")
.modelName("qwen2.5:0.5b")
.maxTokens(4096)
- .timeout(Duration.ofMinutes(50))
- .responseFormat("json")
+ .timeout(Duration.ofSeconds(5))
+ //.responseFormat("json")
.logRequests(true)
.logResponses(true)
.build();
@@ -89,13 +89,13 @@ public class Helper {
.build();
private static OpenAiChatModel toolChatModel = OpenAiChatModel.builder()
- .baseUrl("http://192.168.88.106:11434/v1")
+ .baseUrl("http://192.168.88.105:11434/v1")
.apiKey("1")
.modelName("qwen2.5:0.5b")
.build();
private static OpenAiChatModel gemmaModel = OpenAiChatModel.builder()
- .baseUrl("http://192.168.88.106:11434/v1")
+ .baseUrl("http://192.168.88.105:11434/v1")
.apiKey("1")
.modelName("gemma3:4b")
.build();
diff --git a/src/main/java/xyz/wbsite/ai/Json_Example.java b/src/main/java/xyz/wbsite/ai/Json_Example.java
index c6f60d1..23a1749 100644
--- a/src/main/java/xyz/wbsite/ai/Json_Example.java
+++ b/src/main/java/xyz/wbsite/ai/Json_Example.java
@@ -35,6 +35,8 @@ public class Json_Example {
).build()
).build();
+ System.out.println(build1.toString());
+
ChatRequest build = ChatRequest.builder()
.messages(UserMessage.from("返回中国古代任意三个朝代"))
.responseFormat(build1)
diff --git a/src/main/java/xyz/wbsite/ai/Mcp_Example.java b/src/main/java/xyz/wbsite/ai/Mcp_Example.java
new file mode 100644
index 0000000..b5b4b70
--- /dev/null
+++ b/src/main/java/xyz/wbsite/ai/Mcp_Example.java
@@ -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 mcpPrompts = mcpClient.listPrompts();
+// List mcpResources = mcpClient.listResources();
+// List toolSpecifications = mcpClient.listTools();
+// List 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);
+ }
+}
\ No newline at end of file