Spring-AI系列——Tool Calling获取当前时间
2026/6/9 15:36:14 网站建设 项目流程

文章目录

  • 一、调用流程
  • 二、代码
    • tool包下的TimeTools.java类
    • controller.ZhipuChatClientController.java
  • 三、效果
  • 四、底层调用情况

一、调用流程

二、代码

tool包下的TimeTools.java类

packageorg.example.tool;importorg.springframework.ai.tool.annotation.Tool;importorg.springframework.ai.tool.annotation.ToolParam;importjava.time.ZoneId;importjava.time.ZonedDateTime;importjava.time.format.DateTimeFormatter;publicclassTimeTools{@Tool(description="通过时间id获取当前时间")publicStringgetTimeByZoneId(@ToolParam(description="时区id,比如 Asia/Shanghai")StringzoneId){ZoneIdzid=ZoneId.of(zoneId);ZonedDateTimezoneDateTime=ZonedDateTime.now(zid);DateTimeFormatterformatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");returnzoneDateTime.format(formatter);}}

controller.ZhipuChatClientController.java

@RestController@RequestMapping("/chatClient")publicclassZhipuChatClientController{privatefinalChatClientchatClient;publicZhipuChatClientController(ChatClient.Builderbuilder){this.chatClient=builder.defaultTools(newTimeTools()).build();}@GetMapping("/simple")publicStringsimple(@RequestParam(name="query")Stringquery){ZhiPuAiChatOptionschatOptions=newZhiPuAiChatOptions();chatOptions.setModel("glm-4-flash");chatOptions.setTemperature(0.0);chatOptions.setMaxTokens(15536);returnchatClient.prompt().system("你是一个有用的AI助手").user(query).options(chatOptions).call().content();}}

三、效果

加了Tool Calling前

加了Tool Calling后

四、底层调用情况

Spring AI会在发送给大模型的请求体中添加所有tool的工具信息

大模型返回给Spring AI的信息中,指出调用具体的工具名称及参数

SpringAI调用工具后返回的结果

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询