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

黑马SpringAI项目-聊天机器人

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
    • 这是一种开发,还有纯prompt开发和向量开发,并没有尝试。
  • 一、前往gitee寻找相关作品
  • 二、修改项目
    • 1.修改application.yml
    • 2.调用前端
    • 3.使用截图
  • 三、技术简介
    • ps:主包对VO类型强转不是很熟悉。
  • 总结


前言

提示:这里可以添加本文要记录的大概内容:

例如:完成黑马课程,聊天机器人的编写
视频课-不完整
笔记完整

这是一种开发,还有纯prompt开发和向量开发,并没有尝试。

提示:以下是本篇文章正文内容,下面案例可供参考

一、前往gitee寻找相关作品

寻找到了相关课程-gitee

二、修改项目

因为我们只做第一个聊天机器人,所以很多地方都是不必须的。

1.修改application.yml

app-id是自定义功能,可以不用写
业务空间id也可以不用写
在这里插入图片描述

2.调用前端

写完了启动后,浏览器会报一个错,我没有截屏,当时想无非就是调用的问题,加上前端就能使用,事实上确实如此。
获取前端资料的方式:微信搜索黑马程序员公众号,然后发送Springai获取

注意:1.解压后的spring-ai-protal里面还有一个同名的spring-ai-protal,要cd进去npm install。
2.他给的资料里面缺少一个script文件夹中的copy-webviewer.js,主包是利用ai补全的,但是主包更推荐另一种方式,就是利用ai生成一整个前端,虽然这样也没有什么用,但是以后需要前端的时候可以自己生成,具体内容在鱼皮的视频:利用cursor自动前端生成

3.使用截图

在这里插入图片描述

三、技术简介

1.主包学到的第一个是普通调用和流式调用,区别就是流式调用把.call()改成.stream(),并且改一下返回值。

 @RequiredArgsConstructor@RestController@RequestMapping("/ai")public class ChatController {private final ChatClient chatClient;@RequestMapping(value = "/chat", produces = "text/html;charset=utf-8")public String chat(String prompt) {return chatClient.prompt().user(prompt).call().content();}}

流式调用:

 @RequiredArgsConstructor@RestController@RequestMapping("/ai")public class ChatController {private final ChatClient chatClient;@RequestMapping(value = "/chat", produces = "text/html;charset=utf-8")public Flux<String> chat(String prompt) {return chatClient.prompt().user(prompt).stream().content();}}

2.第二个就是添加日志了。(第三个是会话记忆,视频里是把他储存在内存中,这个反正是比较混沌的储存,问过他就永远记得了,后面一步就是进行区分。)

 @Configurationpublic class CommonConfiguration {@Beanpublic ChatClient  chatClient(OllamaChatModel model) {return ChatClient.builder(model).defaultSystem("你是合肥工业大学的一名资深老学长,十分熟悉校园,请以该身份的语气和性格回答问题").defaultAdvisors(new SimpleLoggerAdvisor()).build();}}

添加完日志后还需要更改一下yml文件:
logging:
level:
org.springframework.ai: debug # AI对话的日志级别
com.itheima.ai: debug # 本项目的日志级别

3.给每个会话一个会话id,根据这个会话id来取数据
开启会话记忆
在这里插入图片描述
在这里插入图片描述
手动写一个接口和实现类,来保存和获取会话id;再写一个controller来获取会话id和会话内容。
在这里插入图片描述

ps:主包对VO类型强转不是很熟悉。

总结

主包最近脚流脓了,医生说是甲沟炎,要切除部分指甲,疼死主包了,打麻药那么长的针,不过这也让主包有时间写这个聊天机器人的项目。做这个其实只用花两天时间,主包做它是想把它当成简历上的第二个项目。

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

相关文章:

  • axios 发请求
  • 束搜索(Beam Search):原理、演进与挑战
  • ubuntu 端口占用 但是找不到进程 与docker 容器镜像相关
  • 【网络与爬虫 52】Scrapyd-k8s集群化爬虫部署:Kubernetes原生分布式爬虫管理平台实战指南
  • 【新启航】飞机起落架外筒深孔型腔的测量方法 - 激光频率梳 3D 轮廓检测
  • 基于遗传优化的智能灌溉系统控制策略matlab仿真
  • python学智能算法(三十六)|SVM-拉格朗日函数求解(中)-软边界
  • docker的开源跨平台替代Vagrant
  • Zread:把 GitHub 仓库“一键变说明书”的体验与实战指南
  • 【超强总结】图像分割模型训练核心:优化器选型与学习率调控策略
  • 【数据结构初阶】--文件归并排序
  • 前端懒加载技术全面解析
  • Spring学习笔记:Spring AOP入门以及基于Spring AOP配置的深入学习与使用
  • Vue3的简单学习
  • docker基础前置
  • day18 - CSS函数
  • ADB(Android Debug Bridge)—— Android调试桥
  • Android MediaMetadataRetriever取视频封面,Kotlin(1)
  • 【Android调用相册、拍照、录像】等功能的封装
  • Milvus 向量数据库基础操作解析
  • 进阶向:Python编写网页爬虫抓取数据
  • vulnhub-Beelzebub靶场通关攻略
  • 【Spring Boot 快速入门】八、登录认证(二)统一拦截
  • Android中RecyclerView基本使用
  • 鸿蒙分布式任务调度深度剖析:跨设备并行计算的最佳实践
  • Java安全-组件安全
  • 哈希与安全
  • Red Hat Enterprise Linux 7.9安装Oracle 11.2.0.4单实例数据库-图文详解
  • urmom damn the jvm
  • vscode/trae 的 settings.json 中配置 latex 的一些记录