From 9e42a9ea4dfb677a9865fb5fcc88f7d49738aeec Mon Sep 17 00:00:00 2001 From: wangbing Date: Tue, 4 Mar 2025 17:03:56 +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 | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4057956..d4b9705 100644 --- a/pom.xml +++ b/pom.xml @@ -46,6 +46,11 @@ langchain4j-core ${langchain4j.version} + + dev.langchain4j + langchain4j-open-ai + ${langchain4j.version} + dev.langchain4j langchain4j diff --git a/src/main/java/xyz/wbsite/ai/Main.java b/src/main/java/xyz/wbsite/ai/Main.java index ece5429..bd3ca9d 100644 --- a/src/main/java/xyz/wbsite/ai/Main.java +++ b/src/main/java/xyz/wbsite/ai/Main.java @@ -3,6 +3,7 @@ package xyz.wbsite.ai; import cn.hutool.core.thread.ThreadUtil; import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.annotation.JsonUnwrapped; +import dev.langchain4j.agent.tool.ToolExecutionRequest; import dev.langchain4j.agent.tool.ToolSpecification; import dev.langchain4j.data.message.*; import dev.langchain4j.model.chat.ChatLanguageModel; @@ -16,6 +17,9 @@ import dev.langchain4j.model.chat.response.ChatResponse; import dev.langchain4j.model.chat.response.StreamingChatResponseHandler; import dev.langchain4j.model.ollama.OllamaChatModel; import dev.langchain4j.model.ollama.OllamaStreamingChatModel; +import dev.langchain4j.model.openai.OpenAiChatModel; +import dev.langchain4j.model.openai.OpenAiStreamingChatModel; +import dev.langchain4j.service.tool.ToolExecutor; /** * 主函数入口 @@ -98,7 +102,18 @@ public class Main { .modelName("deepseek-r1:32B") .build(); - ToolSpecification build1 = ToolSpecification.builder().name("weather").parameters(JsonObjectSchema.builder().addStringProperty("城市").build()).build(); + ToolSpecification build1 = ToolSpecification.builder() + .name("获取天气") + .description("返回指定城市的天气") + .parameters(JsonObjectSchema.builder().addStringProperty("城市").build()) + .build(); + ToolExecutor toolExecutor = new ToolExecutor() { + public String execute(ToolExecutionRequest toolExecutionRequest, Object o) { + System.out.println(); + return "============="; + } + }; + ChatRequestParameters build2 = DefaultChatRequestParameters.builder().toolSpecifications(build1).build(); ChatRequest build = ChatRequest.builder()