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

我男同同性做视频网站克拉玛依建设局网站

我男同同性做视频网站,克拉玛依建设局网站,关键词的优化方案,昆明做大的网站开发公司文章目录 前言一、SpringAi二、SpringAi特性三、引入依赖3.1 SpringAi整合DeepSeek示例3.2 yml配置文件3.3 配置类3.4 聊天代码示例3.5 实现回话记忆功能 总结 前言 持续更新SpringAI 一、SpringAi Spring AI 是一个用于 AI 工程的应用程序框架。 其目标是将 Spring 生态系统…

文章目录

  • 前言
  • 一、SpringAi
  • 二、SpringAi特性
  • 三、引入依赖
    • 3.1 SpringAi整合DeepSeek示例
    • 3.2 yml配置文件
    • 3.3 配置类
    • 3.4 聊天代码示例
    • 3.5 实现回话记忆功能
  • 总结


前言

持续更新SpringAI

一、SpringAi

Spring AI 是一个用于 AI 工程的应用程序框架。 其目标是将 Spring 生态系统设计原则(如可移植性和模块化设计)应用于 AI 领域,并将使用 POJO 作为应用程序的构建块推广到 AI 领域。

二、SpringAi特性

在这里插入图片描述

三、引入依赖

3.1 SpringAi整合DeepSeek示例

需要Jdk17+
Spring AI 最低支持Spring Boot 3.4.x

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>

3.2 yml配置文件

spring:ai:openai:base-url: https://api.deepseek.comapi-key: 自己在deepseek创建的api keychat:options:model: deepseek-chat 聊天模型,可以更换

3.3 配置类

@Configuration
public class AiConfiguration {@Beanpublic ChatClient chatClient(OpenAiChatModel model, ChatMemory chatMemory) {return ChatClient.builder(model).defaultSystem("你是一个热心的、可爱的智能助手,你的名字叫小团团,用小团团的语气来实现对话").defaultAdvisors(new SimpleLoggerAdvisor(),new MessageChatMemoryAdvisor(chatMemory)) //可以记录对话的输出日志.build();}
}

3.4 聊天代码示例

@Data
public class Dto {private String message;private String timestamp;private String type;private String id;
}

Controller

@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
public class ChatController {private final ChatClient chatClient;@PostMapping(value = "/chat", produces = "text/event-stream;charset=utf-8")public Flux<String> chat(@RequestBody Dto dto) {return chatClient.prompt().user(dto.getMessage()) //前端用户输入的文字,与大模型进行沟通.stream()//使用流式输出,可以配合前端 实现打字机效果.content();//得到大模型响应的内容}
}

3.5 实现回话记忆功能

在SpringAi中,有一个接口ChatMemory,默认实现类为InMemoryChatMemory,如果每次的id都相同,那么SpringAi会在内存中记录我们这个id对应的对话历史记录(可以将本次页面的唯一标识id传输过来),可以实现历史记忆功能和历史对话联动功能。

如果想把历史回话存储到redis或者其他方案存储,那么我们需要自定义一个类来实现ChatMemory接口,重写方法即可。

话不多说,上实现代码

import lombok.RequiredArgsConstructor;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.web.bind.annotation.*;
import reactor.core.publisher.Flux;import static org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor.CHAT_MEMORY_CONVERSATION_ID_KEY;@RestController
@RequestMapping("/api")
@RequiredArgsConstructor
public class ChatController {private final ChatClient chatClient;@PostMapping(value = "/chat", produces = "text/event-stream;charset=utf-8")public Flux<String> chat(@RequestBody Dto dto) {return chatClient.prompt().user(dto.getMessage()).advisors(advisorSpec -> advisorSpec.param(CHAT_MEMORY_CONVERSATION_ID_KEY,dto.getId()))//此处将id相同的数据都会存储到内存中.stream().content();}
}

实现效果

  1. 当我们第一次访问时,我们定义dto中的id为1,我们问AI知道我是谁吗?SpringAI默认的内存存储容器为空,所以联想不到我们是谁
    在这里插入图片描述

在这里插入图片描述
2. 当我们给AI进行对话后,透露我们的名字,我们来看一看容器大小
在这里插入图片描述
id为1的value中有一个list集合,一次访问对话,一次请求内容,一次响应内容,都会被记录到这个id为1下的list集合中存储一次对话会在list集合中存储两条记录
在这里插入图片描述
3. 我们再次询问AI知道我们是谁吗,我们来看看AI如何回答
在这里插入图片描述

在这里插入图片描述
4. 那么当我们把传入的id设置为2再尝试问一下AI知道我们是谁吗
在这里插入图片描述
在这里插入图片描述

debug发现id为2的容器中没有之前的历史记录存储,AI回答时就不能检索到id为1的历史回话数据
在这里插入图片描述


总结


文章转载自:

http://pKivpmvJ.fqymm.cn
http://uYbKjZ3B.fqymm.cn
http://aVNTXums.fqymm.cn
http://z228AtXP.fqymm.cn
http://mjPmmwGA.fqymm.cn
http://IGgrr75r.fqymm.cn
http://nwn5AM1D.fqymm.cn
http://BTi741ap.fqymm.cn
http://DTts9kF5.fqymm.cn
http://NWzBXsyw.fqymm.cn
http://MXPXQBpb.fqymm.cn
http://hraYbocU.fqymm.cn
http://LamWXnrM.fqymm.cn
http://CP5zw3Di.fqymm.cn
http://PpPe9io3.fqymm.cn
http://Gn8DqiPR.fqymm.cn
http://PKeUHWtd.fqymm.cn
http://jtMAqE5r.fqymm.cn
http://qqxqNAAu.fqymm.cn
http://XO3CMhUL.fqymm.cn
http://4M1eM99j.fqymm.cn
http://0wi2RFaI.fqymm.cn
http://IDtg0mJX.fqymm.cn
http://0MTbPdHy.fqymm.cn
http://5BDhib1O.fqymm.cn
http://Aej3gF0o.fqymm.cn
http://zZzYFDZY.fqymm.cn
http://96jDAkWz.fqymm.cn
http://U6IW0UH7.fqymm.cn
http://2mHg8wpP.fqymm.cn
http://www.dtcms.com/wzjs/659429.html

相关文章:

  • 陕煤化建设集团网站矿建二公司徐州百姓网招聘信息网
  • 毕业设计软件开发网站开发有网站做淘宝天猫优惠券代理
  • 输入法网站设计网站 宽屏窄屏自适应
  • 做宝宝衣服的网站百度站长平台网站收录
  • 简单网站搭建优化推荐
  • 手机网站建设事项杭州专业seo服务公司
  • 网站建站怎么报价临沭县住房和城乡建设局网站
  • 海燕网站建设公司wordpress minty菜单
  • 哪些网站可以做问卷调查赚钱红酒 专业 网站建设
  • 网站建设礻金手指下拉十一网页广告位
  • 太原铁路建设有限公司网站用层还是表格做网站快
  • 网站安全维护方案龙岗坪地网站建设公司
  • 杭州pc手机网站建设中国培训网官网
  • 中国城乡与住房建设部网站首页建筑工程公司注册资金要求
  • 网站建设必学课程苏州技术馆网站建设
  • 小说发表哪个网站赚钱网站查询是否安全
  • 做网站费用分摊入什么科目一般注册公司要多少钱
  • 空气过滤棉上海网站建设wordpress 外网访问不了
  • 嘉兴哪家公司做网站比较好的商城分销系统
  • 做网站的联系方式百度关键词推广费用
  • 成都视频剪辑培训青岛seo结算
  • 接入服务商网站备案管理系统技术规范要求泉州厦门网站建设公司
  • 织梦做的网站要怎么放到浏览器163企业邮箱免费版
  • 济南网站建设咨 询小七网站做授权登录
  • 学校响应式网站建设广州网络推广平台
  • 打造一个网站深圳建网站就找兴田德润
  • 做百度网站优化多少钱全国装饰公司排名100强名单
  • 娄底优秀网站建设在杭州注册公司需要什么条件
  • 网站建设 接单最好免费观看高清视频韩国
  • 阿里云自助建站模板天津定制网站建设商店设计