From f73e83a0e08c3be5b5d138bd31db4cb07acebe7f Mon Sep 17 00:00:00 2001 From: wangbing Date: Fri, 18 Apr 2025 14:16:09 +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 --- src/main/java/xyz/wbsite/ai/Base_Tool_Example.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/xyz/wbsite/ai/Base_Tool_Example.java b/src/main/java/xyz/wbsite/ai/Base_Tool_Example.java index 76c3259..0762c96 100644 --- a/src/main/java/xyz/wbsite/ai/Base_Tool_Example.java +++ b/src/main/java/xyz/wbsite/ai/Base_Tool_Example.java @@ -26,19 +26,20 @@ import java.util.function.Consumer; public class Base_Tool_Example { public static void main(String[] args) { + // 初始化消息列表 List chatMessages = new ArrayList<>(); chatMessages.add(UserMessage.from("请问,泰州市的天气怎么样?")); + // 定义工具 Object weatherTools = new Object() { @Tool("返回某一城市的天气情况") public String getWeather(@P("应返回天气预报的城市") String city) { - System.out.println(city); return "天气阴转多云,1~6℃"; } }; - List toolSpecifications = ToolSpecifications.toolSpecificationsFrom(weatherTools); + // 构建请求 ChatRequest chatRequest = ChatRequest.builder() .messages(chatMessages) .parameters(ChatRequestParameters.builder() @@ -46,10 +47,11 @@ public class Base_Tool_Example { .build()) .build(); - + // 调用LLM ChatResponse chatResponse = Helper.getToolChatModel().chat(chatRequest); AiMessage aiMessage = chatResponse.aiMessage(); chatMessages.add(aiMessage); + // 判断是否需要调用工具 if (aiMessage.hasToolExecutionRequests()) { System.out.println("LLM决定调用工具"); System.out.println(chatResponse.aiMessage()); @@ -65,12 +67,15 @@ public class Base_Tool_Example { }); } + // 再次调用LLM ChatRequest chatRequest2 = ChatRequest.builder() .messages(chatMessages) .parameters(ChatRequestParameters.builder() .toolSpecifications(toolSpecifications) .build()) .build(); + + // 返回最终回答 ChatResponse finalChatResponse = Helper.getToolChatModel().chat(chatRequest2); System.out.println(finalChatResponse.aiMessage().text()); }