Spring-ai-alibaba工具
文章目录Spring AI Alibaba 工具调用实战Tool Calling版本一、依赖引入二、yml 配置三、代码案例声明式工具Tool1. 日期工具2. 天气工具普通业务方法 Tool四、注册到 ChatClientdefaultTools五、Controller 调用1. 查当前时间2. 查天气六、调用流程Spring AI Alibaba 工具调用实战Tool Calling让大模型在对话中调用你写好的 Java 方法查时间、查天气等。版本Spring Boot3.4.5spring-ai-alibaba-starter-dashscope1.1.2.1Java17Spring-ai更新速度快,请以官方为准可参考网址:Spring-ai官网Spring-ai阿里巴巴阿里百炼模型广场开发者指南(API/SDK)一、依赖引入dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdcom.alibaba.cloud.ai/groupIdartifactIdspring-ai-alibaba-starter-dashscope/artifactIdversion1.1.2.1/version/dependency!-- dashscope-sdk 可能带旧版 jsonschema-generator与 spring-ai-model 冲突时需对齐 --dependencyManagementdependenciesdependencygroupIdcom.github.victools/groupIdartifactIdjsonschema-generator/artifactIdversion4.38.0/version/dependency/dependencies/dependencyManagementdependencygroupIdcom.alibaba/groupIdartifactIddashscope-sdk-java/artifactIdversion2.22.18/versionexclusions!-- 避免与 Boot 自带的 logback 双绑 SLF4J --exclusiongroupIdorg.slf4j/groupIdartifactIdslf4j-simple/artifactId/exclusion/exclusions/dependency二、yml 配置spring:application:name:spring-tool-demoai:dashscope:api-key:${DASHSCOPE_API_KEY}chat:options:# 需支持 Tool Calling 的对话模型model:qwen-maxtemperature:0.7三、代码案例声明式工具Tool1. 日期工具Component// 交给 Spring 管理便于注入到 ChatClientpublicclassDateTool{/** * description 很重要模型靠它判断「什么时候该调这个工具」。 * 工具名默认是方法名 getCurrentDateTime。 */Tool(descriptionGet the current date and time in the users timezone)publicStringgetCurrentDateTime(){// 返回给模型的真实数据模型再组织成自然语言回复用户returnDateFormatUtil.now();// 例如 yyyy-MM-dd HH:mm:ss}}2. 天气工具普通业务方法 ToolComponentpublicclassWeatherTool{/** * 查询指定城市天气。 * district 建议用拼音如 beijing / shanghai方便模型稳定传参。 */Tool(description查询指定城市的天气情况)publicStringgetWeather(Stringdistrict){// 这里用 switch 模拟业务真实项目可调第三方天气 APIreturnswitch(district){casebeijing-天气清凉;caseshanghai-天气炎热;caseguangzhou-天气闷热;default-未知地区;};}}四、注册到 ChatClientdefaultToolsConfigurationpublicclassClientConfig{/** * 构建带默认工具的 ChatClient。 * defaultTools该 Client 每次对话都可用这些工具。 */Bean(nametoolClient)publicChatClienttoolClient(DashScopeChatModelchatModel,DateTooldateTool,WeatherToolweatherTool){returnChatClient.builder(chatModel)// 传入带 Tool 方法的对象实例即可框架会扫注解并生成 Schema.defaultTools(dateTool,weatherTool).build();}}注意若已在defaultTools注册请求里不要再写.tools(new DateTool())否则会报Multiple tools with the same name (getCurrentDateTime) founddefaultTools与单次.tools()二选一或确保工具名不重复。五、Controller 调用1. 查当前时间RestControllerpublicclassTestController{Resource(nametoolClient)privateChatClienttoolClient;/** * GET /get/currenttime * 用户说「要当前时间」→ 模型决定调用 getCurrentDateTime → 把结果组织成回答 */GetMapping(/get/currenttime)publicStringgetCurrentTime(){returntoolClient.prompt().system(You are a helpful assistant.).user(Get the current date and time in the users timezone)// 不要再 .tools(...)工具已在 defaultTools 里.call().content();}}2. 查天气RestControllerpublicclassWeatherController{Resource(nametoolClient)privateChatClienttoolClient;/** * GET /get/weather?district上海 * system 提示把中文城市转成拼音参数和 WeatherTool 的 case 对齐 */GetMapping(/get/weather)publicStringgetWeather(RequestParamStringdistrict){returntoolClient.prompt().system(你可以通过工具获取天气情况,中文请转换成拼音作为调用工具的参数,例如上海对应shanghai).user(查一下district的天气).call().content();}}六、调用流程

相关新闻

Python日志轮转实践:RotatingFileHandler与TimedRotatingFileHandler详解

Python日志轮转实践:RotatingFileHandler与TimedRotatingFileHandler详解

1. Python日志轮转的核心价值与场景日志轮转(Log Rotation)是每个Python开发者必须掌握的工程化实践。想象一下你的应用连续运行三个月后,单个日志文件膨胀到50GB的场景——不仅难以打开分析,还可能因磁盘写满导致服务崩溃。我在金…

2026/8/4 5:10:04 阅读更多 →
【AI写作变现指南】:3天掌握公众号爆款生成术,92%的运营者已悄悄启用

【AI写作变现指南】:3天掌握公众号爆款生成术,92%的运营者已悄悄启用

更多请点击: https://codechina.net 第一章:AI写作变现的核心逻辑与行业现状 AI写作变现并非简单地将模型输出直接售卖,其核心逻辑在于构建“数据—能力—场景—价值”的闭环链条:优质垂类数据训练出差异化内容生成能力&#xff…

2026/8/4 5:10:04 阅读更多 →
基于MATLAB/Simulink的V2G微电网建模与仿真实践

基于MATLAB/Simulink的V2G微电网建模与仿真实践

1. 项目背景与核心价值V2G(Vehicle-to-Grid)技术正在重塑能源互联网的格局。去年参与某工业园区微电网项目时,我们首次尝试将12台电动大巴作为分布式储能单元接入电网,实测发现这些车辆在停泊期间可提供园区23%的峰值负荷调节能力…

2026/8/4 5:10:04 阅读更多 →

最新新闻

区块链领域小巨人企业榜单,零数科技入选重点认定

区块链领域小巨人企业榜单,零数科技入选重点认定

导语专精特新企业的培育,是近年来国家推动制造业与服务业高质量发展的重要政策抓手。在信息技术领域,专精特新“小巨人”企业的认定尤为严格,不仅考察企业的技术独创性与市场占有率,更关注其在细分领域解决关键问题的实际能力与产业化成效。区块链作为数字经济的关键底层技术,其…

2026/8/4 5:58:24 阅读更多 →
TCP与UDP协议对比:核心特性与应用场景解析

TCP与UDP协议对比:核心特性与应用场景解析

1. TCP与UDP:网络通信的两种基础协议在互联网通信的底层,TCP和UDP就像两个性格迥异的快递员。一个做事严谨可靠但速度稍慢,另一个风风火火却可能丢三落四。作为网络工程师最常打交道的两种传输层协议,它们的差异直接影响着各类应用…

2026/8/4 5:58:24 阅读更多 →
EVERSPIN替代芯片方案|NETSOL STT-MRAM高性能存储应用

EVERSPIN替代芯片方案|NETSOL STT-MRAM高性能存储应用

在工业存储、嵌入式设备、智能工控等领域,传统存储芯片常面临功耗高、制程受限、成本偏高、读写性能不足等痛点,不少企业亟需靠谱的EVERSPIN替代芯片解决供货与性能难题。而NETSOL MRAM凭借成熟的STT-MRAM第二代磁存储技术,实现了性能、成本、…

2026/8/4 5:58:24 阅读更多 →
issi低功耗SRAM替换,NETSOL STT-MRAM 8M-16Mbit并口方案

issi低功耗SRAM替换,NETSOL STT-MRAM 8M-16Mbit并口方案

1、ISSI低功耗SRAM替换方案:NETSOL 8M-16Mbit并口STT-MRAM 在工业控制、数据采集设备开发中,ISSI低功耗SRAM是常用缓存器件,但传统SRAM无法断电保存数据,往往需要搭配NOR Flash组成双芯片方案,提升硬件成本与PCB布局复…

2026/8/4 5:58:24 阅读更多 →
自然艺术装置创作:枯叶动态捕捉与材料处理技术

自然艺术装置创作:枯叶动态捕捉与材料处理技术

1. 项目背景与创作动机"冬风苍叶舞"这个标题让我想起去年冬天在北方山区的一次徒步经历。当时正值深冬,山间的老榆树早已褪尽绿叶,只剩下枯黄的叶片在凛冽的北风中盘旋起舞。这种自然景象给了我强烈的视觉冲击和创作冲动——我想用某种艺术形式…

2026/8/4 5:58:23 阅读更多 →
OpenClaw网关1305限流报错分析与解决方案

OpenClaw网关1305限流报错分析与解决方案

1. 问题现象与背景解析OpenClaw网关1305限流报错(1305:该模型当前访问量过大,请您稍后再试)是分布式系统中典型的流量控制异常。这个错误码通常出现在API网关层,当上游服务或模型实例的并发请求数超过预设阈值时,网关会…

2026/8/4 5:57:23 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/3 13:07:03 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →