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

文章目录


一、调用流程

二、代码

tool包下的TimeTools.java类

java 复制代码
package org.example.tool;

import org.springframework.ai.tool.annotation.Tool;
import org.springframework.ai.tool.annotation.ToolParam;

import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;

public class TimeTools {

    @Tool(description = "通过时间id获取当前时间")
    public String getTimeByZoneId(@ToolParam(description = "时区id,比如 Asia/Shanghai") String zoneId) {
        ZoneId zid = ZoneId.of(zoneId);
        ZonedDateTime zoneDateTime = ZonedDateTime.now(zid);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");
        return zoneDateTime.format(formatter);
    }
}

controller.ZhipuChatClientController.java

java 复制代码
@RestController
@RequestMapping("/chatClient")
public class ZhipuChatClientController {

    private final ChatClient chatClient;

    public ZhipuChatClientController(ChatClient.Builder builder) {
        this.chatClient = builder
                .defaultTools(new TimeTools())
                .build();
    }



    @GetMapping("/simple")
    public String simple(@RequestParam(name = "query") String query) {
        ZhiPuAiChatOptions chatOptions = new ZhiPuAiChatOptions();
        chatOptions.setModel("glm-4-flash");
        chatOptions.setTemperature(0.0);
        chatOptions.setMaxTokens(15536);
        return chatClient.prompt()
                .system("你是一个有用的AI助手")
                .user(query)
                .options(chatOptions)
                .call().content();
    }
 }

三、效果

加了Tool Calling前

加了Tool Calling后

四、底层调用情况

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

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

SpringAI调用工具后返回的结果

相关推荐
wuminyu6 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh6 小时前
SpringBoot 配置⽂件
java·spring boot·spring
ZhengEnCi6 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
王中阳Go6 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
程序猿DD7 小时前
OctaFuse Gateway 2.18.0:MCP 接入支持 OAuth,供应商粘性绑定可视化管理
后端
骑着蜗牛撵大象3277 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
独泪了无痕7 小时前
Hutool之LocalDateTimeUtil:让时间间隔操作如虎添翼
java
三无少女指南8 小时前
从这里开始:Java 后端与 AI 工程的三条阅读路线
java·学习路线·ai工程
ZhengEnCi8 小时前
Agent 规则管理:让 Memory 做索引、让 Skill 存规则——上下文上限实测与分工方案
后端