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

如何让大模型理解用户意图,并且调用工具?

目前可以通过spring ai连接大模型,使用模型的能力,理解用户意图,并且调用工具。

一、增加组件

修改pom.xml文件,增加相关组件

		<dependency><groupId>com.alibaba.cloud.ai</groupId><artifactId>spring-ai-alibaba-starter</artifactId><version>1.0.0-M6.1</version></dependency>

二、增加配置

修改application.yml文件,增加配置

以下为阿里云百练平台申请API KEY地址

https://bailian.console.aliyun.com/?tab=model#/api-key

spring:ai:dashscope:api-key: 123456 # 替换申请的KEYopenai:chat:options:model: qwen-plustemperature: 0.7api-key: 123456 # 替换申请的KEYbase-url: https://dashscope.aliyuncs.com/compatible-mode

三、增加ChatConfig

@Configuration
public class ChatConfig {@Beanpublic ChatClient chatClient(ChatModel chatModel, ChatMemory chatMemory) {return ChatClient.builder(chatModel).build();}
}

四、增加工具

@Description,提示语很重要

@Component
public class UserStatisticsFunction {final Logger logger = LoggerFactory.getLogger(getClass());@AutowiredUserStatisticsService userStatisticsService;@Bean@Description("根据日期查询用户统计数据")public Function<LocalDate, UserStatisticsEntity> queryUserStatisticsByDate() {return date -> {logger.info("Function queryUserStatisticsByDate,date={}", date);DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");String dateString = date.format(formatter);logger.info("Function queryUserStatisticsByDate,dateString={}", dateString);UserStatisticsEntity entity = this.userStatisticsService.queryUserStatisticsByDate(dateString);if (entity == null) {return null;}return entity;};}
}

五、增加接口

把工具关联到chatClient,让大模型评估是否需要调用工具

	@PostMapping("/chat")public ResponseEntity<Object> chat(@RequestBody ChatDto chatDto) {try {logger.info("@RequestBody={}", chatDto);String result = this.chatClient.prompt().user(chatDto.getContent()).tools("queryUserStatisticsByDate").call().content();logger.info("result={}", result);return ResponseEntity.ok(ResponseDto.success("ok", result));} catch (Exception e) {return ResponseEntity.badRequest().body(ResponseDto.error(e.getMessage()));}}

六、测试验证

下图是一个demo页面,通过聊天的方式,给大模型发送自然语言,查询数据

下图是数据库的测试数据样例。

至此,一个能让大模型理解用户意图,并且调用工具的功能就已实现。

总结

如何让大模型理解用户意图,并且调用工具?

可以使用spring ai连接大模型来实现,具体有如下六个步骤。

第一、增加组件

第二、增加配置

第三、增加ChatConfig

第四、增加工具

第五、增加接口

第六、测试验证

通过上面六个步骤,一个简单的大模型调用工具的功能就完成了。

最后因本人能力有限,有什么不对的地方望各位大佬指出好让我改进,多多包含,谢谢大家。

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

相关文章:

  • 畜牧设备采集物联网平台:开启智慧养殖“一眼到底”新模式
  • 建设银行个人网银网站阜南做网站
  • 房地产楼盘微信网站建设营销方案招聘类网站怎么做
  • 互联网视频云平台EasyDSS无人机技术在烟火巡检场景中的的应用
  • PhysicalAgent:基于基础世界模型的通用认知机器人
  • MySQL 8.0物理备份(XtraBackup)加速-全方位解析
  • BrowserUse自动化测试效率优化:Cookie复用实现登录状态持久化
  • 【硬科普】什么是双频干涉
  • 5.0 JKI state machine介绍1 - 安装.
  • 点卡平台网站开发wordpress网站布置
  • React单位转换系统:设计灵活的单位系统与单位系统转换方案
  • React 18 前端最佳实践技术栈清单(2025版)
  • jsp网站开发 开题依据设计一个企业网站大概多少钱
  • 计算机网络---应用层
  • 营销网站的例子公司软件定制开发
  • SpringBoot3+WebSocket+Vue3+TypeScript实现简易在线聊天室(附完整源码参考)
  • 农作物空间分布数据集整理
  • C# UDP 服务端与客户端2.0
  • Gartner发布威胁情报的演变趋势:成为统一的网络风险情报,更加主动、协作和以行动为中心,以应对不断演变的全球网络威胁
  • 建站快车打电话安装wordpress的目录改变了
  • Spring Boot 2.5集成Elasticsearch(亲测)
  • Eclipse 快速修复
  • 赣州专业网站推广多少钱专门做任务的网站6
  • 如何快速切换网络配置?高效实现IP、MAC、主机名一体化管理
  • Mosquitto 架构分析:解读 mosquitto.c 的核心作用与执行流程
  • 单克隆抗体的核心概念
  • Java 并发锁实战手册:各类锁的特性、适用场景与选择方法论
  • 从化商城网站建设wordpress主题制作全过程
  • 传统网站架构 和 现代云服务 的区别简要分析
  • numpy -- 字符串函数 add()与multiply()