系列文章目录
| 序号 | 文章标题 |
|---|---|
| 1 | 大模型之Spring AI实战系列(一):基础认知篇——开启智能应用开发之旅 |
| 2 | 大模型之Spring AI实战系列(二):Spring Boot + OpenAI 打造聊天应用全攻略 |
| 3 | 大模型之Spring AI实战系列(三):Spring Boot + OpenAI 实现聊天应用上下文记忆功能 |
| 4 | 大模型之Spring AI实战系列(四):Spring Boot + OpenAI 使用OpenAI Embedding实现文本向量化 |
| 5 | 大模型之Spring AI实战系列(五):Spring Boot + OpenAI 构建带角色设定的智能对话系统 |
| 6 | 大模型之Spring AI实战系列(六):Spring Boot + OpenAI 利用PromptTemplate构建动态提示词系统 |
| 7 | 大模型之Spring AI实战系列(七):Spring Boot + OpenAI 构建结构化输出的AI响应系统 |
| 8 | 大模型之Spring AI实战系列(八):Spring Boot + OpenAI 使用Whisper实现语音转文本功能 |
| 9 | 大模型之Spring AI实战系列(九):Spring Boot + OpenAI 使用TTS实现文本转语音功能 |
| 10 | 大模型之Spring AI实战系列(十):Spring Boot + OpenAI 使用 DALL·E实现文本生成图像功能 |
| 11 | 大模型之Spring AI实战系列(十一):Spring Boot + OpenAI 集成本地向量数据库Chroma |
| 12 | 大模型之Spring AI实战系列(十二):Spring Boot + OpenAI 构建基于RAG的智能问答系统 |
| 13 | 大模型之Spring AI实战系列(十三):Spring Boot + OpenAI 基于 Tool Calling 实现单个外部工具调用 |
| 14 | 大模型之Spring AI实战系列(十四):Spring Boot + OpenAI 支持多个 Tool 的插件化调用实践 |
| 15 | 大模型之 Spring AI实战系列(十五):Spring AI Tools 初体验——搭建首个可调用工具 |
| 16 | 大模型之 Spring AI实战系列(十六):Spring AI Tools 初级开发——解锁天气查询与数据库操作工具 |
| 17 | 大模型之 Spring AI实战系列(十七):Spring AI Tools 高级技巧——异步调用、事务控制与错误处理攻略 |
| 18 | 大模型之 Spring AI实战系列(十八):Spring AI Tools 进阶实战——深度集成 RESTful API 联通外部服务 |
内容导航
- 系列文章目录
- 前言
- 一、Spring AI 工具模块概述
- 二、封装 RESTful API 为工具类
- (一)准备工作
- 1. 添加依赖项
- 2. 目标接口说明:快递状态查询服务
- (二)创建核心工具类:`ExpressQueryTool.java`
- 三、添加认证逻辑(Token / OAuth / API Key)
- (一)简要示例:添加 API Key 认证
- (二)简要示例:使用 OAuth2 获取 Token
- 四、控制器中调用工具类
- (一)用户请求入口代码:`ChatController.java`
- (二)用户请求示例说明
- 五、扩展实践:封装写操作工具(如订单创建)
- 六、完整工具注册与调用流程
- 七、进阶建议
- 总结
在企业级AI应用中,大语言模型(LLM)早已不再是仅仅用来“回答问题”的简单工具,它正逐渐进化为业务系统的智能调度中枢。要实现真正的自动化操作,LLM必须能够主动调用后端系统的接口,完成实际的业务动作。

举几个具体场景:
- 查询某笔订单的实时物流状态
- 帮助客户提交一个新的订单
- 调用外部快递公司的物流接口获取数据
- 触发公司内部审批流程
这些操作,本质上都封装在企业内外部的RESTful API中。为了让LLM能够理解并自动调用这些接口,最直接的方案就是——将这些API包装成Spring AI能够识别的工具类(Tools)。
下面从四个核心角度展开:
✅ 如何将RESTful API封装成LLM可以主动调用的工具
✅ 怎样加入Token、OAuth、API Key等认证逻辑
✅ 解析接口返回数据,再回传给模型进行后续处理
✅ 实际案例——“快递状态查询”与“订单创建”的完整实现
一、Spring AI 工具模块概述
Tool 是 Spring AI 提供的一套注解和接口体系,专门用于定义那些可以由LLM主动调用的功能模块。只需要在方法上标注 @Tool 注解,该方法就会被自动注册为一个可调用函数。同时,参数和返回值的描述会通过JSON Schema传递给LLM,这样大模型就能清楚地知道何时调用、如何传递参数以及返回什么样的数据。
