Spring AI开发指导-工具调用
Spring AI
Spring AI开发框架提供对接应用与AI模型的集成开发能力,让开发者更加容易地开发智能体以及其他生成式人工智能的应用:
工具调用
AI模型由固定的算法与数据构成,在Spring AI应用与AI模型的交互流程中,AI模型执行推理需要获取的外部数据或者需要执行外部业务逻辑,由工具调用组件提供支持,例如,外部数据包括RAG数据、本地数据库或缓存数据、天气预报实时信息或者其他第三方数据,外部业务逻辑包括流程处理、运算器处理或者其他第三方业务逻辑处理,Spring AI开发框架提供的工具调用的业务流程:
工具调用接口描述
Spring AI开发框架提供的注解接口Tool,用于标识类的方法是工具调用的方法以及描述该方法的功能作用,AI模型按照方法的描述信息调用工具:
Spring AI开发框架提供的注解接口ToolParam,用于标识类的方法的参数以及描述该参数的功能作用,AI模型按照方法的参数的描述信息设置工具调用的方法的参数:
Spring AI开发框架提供的接口ToolCallback,用于在Spring AI应用与AI模型的交互流程中,定义AI模型的响应回调的工具:
Spring AI开发框架提供的接口ToolDefinition,用于设置接口ToolCallback的属性方法,描述如何调用工具:
Spring AI开发框架提供的接口ToolCallingManager,工具调用的管理器,用于管理调用的工具以及执行工具调用:
代码示例
定义日期时间类的工具调用的方法,用于AI模型获取Spring AI应用系统的当前时间:
定义工具调用管理器,设置工具调用实例,该工具的功能作用是获取客户的信息,定义提示词需求,调用AI模型:
使用工具调用管理器调用工具,定义工具调用的响应AI模型的提示词需求,调用AI模型:
定义工具调用管理器,定义对话存储实例,定义会话的ID:
设置工具调用实例,该工具的功能作用是使用运算器实现基础的数学运算,定义需求提示词,调用AI模型,保存会话信息:
使用工具调用管理器调用工具,定义工具调用的响应AI模型的提示词需求,调用AI模型,保存会话信息: