当前位置: 首页 > news >正文

3.Spring AI的工具调用

🛠️Spring AI的工具调用

一、 📌概述

  • Spring AI 的工具调用(Tool Calling)功能允许大语言模型在生成回答时触发预定义的外部工具函数,从而实现动态数据获取或业务逻辑操作(如查询数据库、调用 API 等)。
  • Spring AI 帮我们规范了工具定义、注册等过程,并在发起模型请求之前自动将工具注入到 Prompt 中,而当模型决策在合适的时候去调用某个工具时,Spring AI 完成工具调用动作,最终将工具执行结果与原始问题再一并发送给模型,模型根据新的输入决策下一步动作。这其中涉及与大模型的多次交互过程,一次工具调用就是一次完成的交互过程。
  • 函数调用的核心流程
  • 第一步,定义工具:通过 @Tool 注解声明可供模型调用的工具方法(名称、描述、参数结构),使用 record 定义参数载体。
  • 第二步,注册工具:在 ChatClient 构建时通过 .tools() 方法注册工具实例。
  • 第三步,模型交互:将工具信息与用户输入一起发送给模型,模型决定是否需要调用工具。
  • 第四步,执行工具:解析模型的工具调用请求,执行对应的业务逻辑。
  • 第五步,返回结果:将工具执行结果返回给模型,生成最终回答。

二、⚙️ 工具调用实现

1、📦 pom.xml依赖配置

    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-deepseeks</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtool</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

2、📁 application.yml配置文件

server.port=8002
spring.application.name=SpringAiFunctionspring.ai.deepseek.api-keys=sk-a201abfea5394
spring.ai.deepseek.base-url=https://api.deepseek.com
spring.ai.deepseek.chat.options.model=deepseek-chat
spring.ai.deepseek.chat.options.temperature=0.7

3、▶️ 启动类定义

http://www.dtcms.com/a/393320.html

相关文章:

  • 如何高效记单词之:学会想像——从字母W聊起
  • Python之Excel操作三:读取Excel文件中的某一列
  • 计网基础知识
  • 【CSP-J模拟题 】 附详细讲解
  • FPGA内实现FIR 抽取滤波器设计
  • 【proteus绿灯5s红灯10s三数码管数字切换电路】2022-12-12
  • 团队任务分配管理软件平台对比测评
  • 集成学习智慧:为什么Bagging(随机森林)和Boosting(XGBoost)效果那么好?
  • 计算机英语缩写
  • 国轩高科校招社招网申线上测评笔试题库结构说明书(适用于研发/工程/职能全部岗位)
  • 3.2.10 虚拟内存管理 (答案见原书 P238)
  • 算法 --- BFS 解决最短路问题
  • Photoshop蒙版的操作
  • cocos shader敌人受到攻击改变颜色
  • cd论文精读
  • USBD_malloc 禁止替换成 malloc 函数
  • 功能测试与测试用例设计方法详解
  • AXI DMA
  • 1:1复刻真实场景,机器人训练不再“纸上谈兵”
  • CMake快速上手:编译、构建与变量管理(包含示例)
  • vscode配置C/C++教程(含常见问题)
  • F021 五种推荐算法之美食外卖推荐可视化系统vue+flask
  • C++学习记录(10)模板进阶
  • cesium案例:三维钢铁厂园区开发平台(附源码下载)
  • 电商开放平台API接口对比爬虫的优势有哪些?
  • SpringDoc-OpenApi 现代化 API 文档生成工具介绍+使用
  • 打造现象级H5答题游戏:《终极主题答题冒险》开源项目详解
  • 实验1.2呼吸灯实验指导书
  • 实验1.3通过for循环精确定时呼吸灯
  • 【c++】多态(一)