系列篇章💥
| 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 实现单个外部工具调用 |
目录
- 系列篇章💥
- 前言
- 一、开发环境准备
-
- (一)Java 版本要求
- (二)Maven 构建工具
- (三)OpenAI API 密钥
- 二、POM依赖引入
-
- (一)Spring AI与OpenAI集成依赖包
- (二)SpringAI相关依赖包版本管理
- 三、配置文件详解
- 四、核心代码详解
-
- (一)工具类设计:[DateTimeTools.java]
- (二)控制器层:[ChatModelController.java]
-
- 1. 启用工具的接口 `/toolCallBack1`
- 2. 未启用工具的接口 `/toolCallBack2`
- 五、工具调用机制解析
-
- (一)ToolCalling 是什么?
- (二)Spring AI 中的 Tool Calling 支持
- 六、部署与测试
-
- (一)启动应用
- (二)测试接口
-
- 1. 启用工具调用接口 `/toolCallBack1`
- 2.未启用工具调用接口 `/toolCallBack2`
- 七、Tool Calling 的实际应用场景
-
- (一)时间/天气查询
- (二)数据库查询
- (三)Web 搜索增强
- (四)系统命令执行
- 八、进阶实践与优化建议
-
- (一)支持多个工具调用
- (二)自定义工具调用逻辑
- (三)错误处理与回退机制
- (四)工具调用链路追踪
- 总结
前言
在上一篇文章中,我们学习了如何基于 RAG 架构构建一个私有知识问答系统。本文将继续深入 Spring AI 的能力,介绍如何使用 Tool Calling 实现插件化功能调用。
我们将基于下面示例项目,演示如何通过自定义工具类扩展大语言模型的能力,使其能够调用外部函数获取实时信息(如当前时间),从而解决传统 LLM 无法访问外部世界的问题。
一、开发环境准备
(一)Java 版本要求
本项目采用Java 17进行编译和运行,请务必确保你的开发环境已成功安装JDK 17。你可以在命令行中输入以下命令进行检查:
java -version
输出应类似如下内容:
openjdk version \”17.0.8\” 2023-07-18
OpenJDK Runtime Environment (build 17.0.8+7)
OpenJDK 64-Bit Server VM (build 17.0.8+7, mixed mode, sharing)




