news 2026/7/10 0:19:16

Spring-AI系列——Tool Calling获取当前时间

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring-AI系列——Tool Calling获取当前时间

文章目录

  • 一、调用流程
  • 二、代码
    • 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调用工具后返回的结果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/10 8:38:29

Java Web 学习全指南:从入门到实战,体系化掌握核心技能

Java Web 是基于 Java 技术构建 Web 应用的核心体系,也是后端开发的主流方向之一,涵盖前端交互、后端逻辑、数据库交互、服务器部署等全链路知识。以下从学习路径、核心知识点、实战方向、学习资源四个维度,整理清晰的学习框架,适…

作者头像 李华
网站建设 2026/7/9 20:29:38

52、系统性能调优指南

系统性能调优指南 在当今,商品硬件升级成本较低的情况下,挖掘硬件的额外性能看似是一项无意义的任务。但如果能获得 20% 甚至 50% 的速度提升呢?优化系统所能带来的益处因运行的任务类型而异,但总有适合每个人的优化方法。下面将介绍一些快速优化 Apache 网络服务器、KDE 和…

作者头像 李华
网站建设 2026/7/10 10:47:03

62、Ubuntu和Linux互联网资源全解析

Ubuntu和Linux互联网资源全解析 1. 笔记本电脑和PDA上运行Linux的相关网站 在笔记本电脑上运行Linux,有一些非常有用的网站。Kenneth Harker的Linux Laptop网站(http://www.linux - laptop.net),尽管更新不如以往活跃,但它仍然拥有全球最大的Linux和笔记本电脑信息集合,…

作者头像 李华
网站建设 2026/7/10 2:34:19

const引用

const引用 • 可以引⽤⼀个const对象&#xff0c;但是必须⽤const引⽤。const引⽤也可以引⽤普通对象&#xff0c;因为对象的访问权限在引⽤过程中可以缩⼩&#xff0c;但是不能放⼤。 #define _CRT_SECURE_NO_WARNINGS 1 using namespace std; #include <iostream>int m…

作者头像 李华
网站建设 2026/7/9 14:41:03

35、脚本开发中的故障排除、流程控制与参数处理

脚本开发中的故障排除、流程控制与参数处理 1. 脚本测试与调试 1.1 测试准备 在脚本执行前,为确保安全,可以在 rm 命令前进行修改,使命令及其扩展参数列表仅显示,而不实际执行。同时,在代码片段末尾添加 exit 命令,结束测试并防止脚本其他部分执行。此外,还可添加…

作者头像 李华