From f6adde213ecb44aa7360ba5c95d55846bae66e8d Mon Sep 17 00:00:00 2001 From: wangbing Date: Tue, 4 Mar 2025 00:13:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ++++ src/main/java/xyz/wbsite/ai/Main.java | 36 +++++++++++++++++++++++---- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index a0542ee..4057956 100644 --- a/pom.xml +++ b/pom.xml @@ -56,6 +56,11 @@ langchain4j-ollama ${langchain4j.version} + + dev.langchain4j + langchain4j-easy-rag + ${langchain4j.version} + dev.langchain4j langchain4j-embeddings diff --git a/src/main/java/xyz/wbsite/ai/Main.java b/src/main/java/xyz/wbsite/ai/Main.java index f8cf0e0..ece5429 100644 --- a/src/main/java/xyz/wbsite/ai/Main.java +++ b/src/main/java/xyz/wbsite/ai/Main.java @@ -3,12 +3,15 @@ package xyz.wbsite.ai; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.annotation.JsonUnwrapped; -import dev.langchain4j.data.message.AiMessage; -import dev.langchain4j.data.message.ChatMessage; -import dev.langchain4j.data.message.UserMessage; +import dev.langchain4j.agent.tool.ToolSpecification; +import dev.langchain4j.data.message.*; import dev.langchain4j.model.chat.ChatLanguageModel; import dev.langchain4j.model.chat.StreamingChatLanguageModel; import dev.langchain4j.model.chat.request.ChatRequest; +import dev.langchain4j.model.chat.request.ChatRequestParameters; +import dev.langchain4j.model.chat.request.ChatRequestParametersBuilder; +import dev.langchain4j.model.chat.request.DefaultChatRequestParameters; +import dev.langchain4j.model.chat.request.json.JsonObjectSchema; import dev.langchain4j.model.chat.response.ChatResponse; import dev.langchain4j.model.chat.response.StreamingChatResponseHandler; import dev.langchain4j.model.ollama.OllamaChatModel; @@ -20,9 +23,9 @@ import dev.langchain4j.model.ollama.OllamaStreamingChatModel; public class Main { public static void main(String[] args) { - // testSimpleChat(args); - testStreamChat(args); +// testStreamChat(args); + testTool(args); } public static void testSimpleChat(String[] args) { @@ -88,4 +91,27 @@ public class Main { ThreadUtil.safeSleep(1000); } } + + public static void testTool(String[] args) { + ChatLanguageModel model = OllamaChatModel.builder() + .baseUrl("http://36.138.207.178:11434") + .modelName("deepseek-r1:32B") + .build(); + + ToolSpecification build1 = ToolSpecification.builder().name("weather").parameters(JsonObjectSchema.builder().addStringProperty("城市").build()).build(); + ChatRequestParameters build2 = DefaultChatRequestParameters.builder().toolSpecifications(build1).build(); + + ChatRequest build = ChatRequest.builder() + .messages(new ChatMessage[]{ + UserMessage.from("请问,泰州市明天的天气怎么样?"), + SystemMessage.from("请使用天气工具"), + }) + .parameters(build2) + .build(); + + + ChatResponse chat = model.chat(build); + System.out.println(chat.aiMessage().text()); + + } } \ No newline at end of file