spring-ai 第十tool调用

spring-ai 第十tool调用

官网

工具调用(也称为函数调用)是AI应用中的常见模式,允许模型与一组API或工具互动,增强其功能

spring-ai网址【https://docs.spring.io/spring-ai/reference/api/tools.html】

工具调用

  • 信息检索

从外部来源检索信息(弥补本地模型的不足,通过外网获取信息进行推理组织),eg: 检索最新的新闻文章

  • 采取行动

执行一个动作,例如调用一个API或执行一个命令,eg:填写网页上的表单

两种集成方式

特性 方法工具 (@Tool) 函数工具 (Function)
核心注解/接口 @Tool 注解 java.util.function.Function 接口
实现复杂度 简单,在任意 Bean 方法上加注解即可 相对繁琐,需要实现 Function 接口
状态管理 可以访问和依赖其他 Spring Bean 通常是无状态的,不适合依赖复杂服务
适用场景 广泛,尤其适合有状态的业务逻辑 简单的数据转换、计算等单一功能
推荐度 高,是更符合 Spring 习惯的声明式方式 低

核心价值与安全模型

  • 模型负责决策:LLM根据用户问题,判断需要调用哪个工具,并生成所需的参数。
  • 应用负责执行:你的Spring AI应用接收这个"调用请求",安全地执行对应的Java方法,然后将结果返回给模型。
  • 安全隔离:模型永远无法直接访问你的数据库、API密钥等内部资源,确保了系统的安全性

通过聊天获取最新新闻

60s API 开放平台【https://docs.60s-api.viki.moe/】

源码示例

https://gitee.com/kcnf_open/spring-ai-sample/tree/master/spring-ai/spring-ai-sample09

  • 代码中重点 tool 关键字,如果匹配不到会直接跳过tool,直接llm

  • llm 选择 (model: glm-4-plus)

  • 完整链路(llm->通过关键字匹配优先执行tool进行数据库查询,再通过llm进行优化)

相关推荐
宸津-代码粉碎机1 小时前
OpenAI 连夜迎战 Grok Bot 和 Muse:AI 智能体从 “会聊天” 到 “能办事”,现在入场还来得及吗
java·大数据·人工智能·分布式·python
噢,我明白了2 小时前
java中唯一键和幂等键的应用
java·后端
程序猿乐锅3 小时前
【黑马点评 | 第八篇】Redisson分布式锁
java·数据库·spring boot·redis·分布式·spring·缓存
做萤石二次开发的哈哈3 小时前
视频解码器怎么对接?解码上墙、电视墙开窗与场景切换的ISAPI接入实战
人工智能·物联网·监控·视频编解码·大屏端·萤石开放平台·蓝海aiot一站式工作台
Leo.yuan3 小时前
2026年本地化Data Agent优质厂商盘点:哪些产品更适合企业生产环境
大数据·数据库·人工智能
考虑考虑3 小时前
synchronized字符串常量
java·后端·java ee
长谷深风1113 小时前
Tool与Skill:AI能力设计的分水岭
java·人工智能·ai·大模型·aiagent
科技观察哨3 小时前
六足平台选型与纳米定位系统集成:HEB-640六自由度位移台在半导体光刻对准中的参数边界与国产替代评估
前端·人工智能
m0_587383003 小时前
广州24小时自助健身房解决方案实战指南与系统部署要点
java·spring·小程序·架构·需求分析
Escalating_xu3 小时前
【C 语言】深入理解指针(1·下):指针运算、野指针、assert 与传址实战
java·c语言·开发语言