Springboot接入ChatGPT 续

在之前的文章[1][1]中,原方案的设计,是基于功能实现的角度去设计的,对于功能性的拓展,考虑不全面,结合收到的反馈意见,对项目进行了拓展优化。完成的优化拓展有如下几个方面

  • 固定会话
  • 历史消息
  • 鉴权拓展

固定会话

原实现方案中预留了chatId这个字段,原chatId并未起到实际作用,是为后续功能拓展所预留的字段,在原实现方案的网页聊天中,该chatId为随机生成的UUID

网页会话

访问地址特点介绍
chat/web每次进入网页,生成的会话ID都是随机的,保证不同用户的会话上下文不会产生干扰原实现方案
chat/{chatId}现进入网页,chatId由业务系统指定,可以用于记录消息历史记录,上下文由该chatId关联查询新增方案

固定会话的意义由几个功能来体现

  1. 支持历史消息

  2. 支持用户与会话映射(由业务系统自行实现)

    类似ChatGPT官网,一个用户关联多个chatId,根据选择的会话可以查询到之前询问的历史消息和继续联系上下文进行提问。

历史消息

当前实现方案提供的历史消息功能是基于本地缓存构建的,历史消息被存储在内存中,不是持久化存储,当项目重启或者垃圾回收,存储的历史消息记录就会丢失。为了方便业务系统更好的集成,持久化数据存储,提供了如下接口。

对如下接口进行拓展实现,覆盖默认的系统方案,即可完成持久化历史消息存储。

 

public interface ChatCacheService { /** * 根据会话记录查询历史记录 * @param chatId * @return */ List<ChatMessage> history(String chatId); /** * 查询历史记录 * @param chatId 会话ID * @param limit 限制条数 * @return */ List<ChatMessage> history(String chatId,Integer limit); /** * 消息写入 * @param message */ void write(String chatId, ChatMessage message); }

鉴权拓展

lucy-chat提供了自定义注解@ChatAuth,并且将该注解添加到了所有的API上,第三方系统集成后,可以通过构建@Aspect对该注解进行拦截处理,以判断当前用户是否有权访问对应接口。

 

@Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD,ElementType.TYPE}) public @interface ChatAuth { // it is anything String value() default ""; }

由业务系统自行实现切面,完成对接口的鉴权,该鉴权模式的优点是具有更大的自由度,可以抛出自定义异常,可以结合其他业务逻辑(如调用请求次数、频率)等进行鉴权处理。

如何构建切面鉴权,请查看 切面实现

开源地址

项目采用MIT协议

lucy-chat: Springboot 接入 ChatGPT 解决方案,支持 jar 引入与独立部署版本号和发行版一致

安装

请参考文章[1][1]

文档

更多文档请参阅 Lucy-Chat 快速上手[2][2]

参考

[1] Kindear.Springboot 接入 ChatGPT [EB/OL] 博客园

[2] Lucy-Chat 快速上手

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23885.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三体运动的程序模拟

前几天看了《三体》&#xff0c;很不错的科幻小说。说到三体&#xff0c;我想到我大学的一个舍友叫王晶,和香港那个导演同名同姓同性别.记得有一次几个同学在一块聊天,有个女生问他:父母为什么给他取名叫晶.他说叫晶是父母希望能有三个太阳守护着他。那时我还很单纯,不会用五行…

由《三体》太阳文明末日场景想到的……

《三体》电视剧正在热播&#xff0c;热度持续不退&#xff0c;豆瓣评分8.6&#xff0c;基本已经预定年度口碑最高的科幻题材剧&#xff1b;除了在国内多个平台播出外&#xff0c;还走出国门&#xff0c;成功“出海”&#xff0c;《人民日报》两会特刊都予以了高度赞扬。 上图红…

(转贴)关于《三体》的天文学

原文地址&#xff1a;http://sonicbbs.eastday.com/topicdisplay.asp?BoardID22&Page2&TopicID1723978 原作者&#xff1a;rottenweed 这一阵在看刘慈欣的《三体》&#xff0c;的确是好科幻小说。不过&#xff0c;再好的科幻小说也仍然是科幻&#xff0c;更何况“硬度…

ChatGPT让职业被取代,不公平优势则让我们成为不可替代!

ChatGPT的横空出世&#xff0c;在业界掀起了惊涛骇浪。专家表示&#xff0c;ChatGPT和相关人工智能技术可能会威胁到一些工作岗位&#xff0c;尤其是白领工作。 自去年11月发布以来&#xff0c;新型聊天机器人模型ChatGPT已经被用于各种各样的工作&#xff1a;撰写求职信、编写…

Amazon亚马逊广告API申请流程

亚马逊广告API申请链接:https://advertising.amazon.com/about-api 首先需要一个该网站的账户 申请页面内容必须英文书写 要符合亚马逊的策略亚马逊链接:https://advertising.amazon.com/API/docs/en-us/get-started/compatibility-versioning-policy

怎么监测facebook上竞争对手的广告

在facebook上投放广告时&#xff0c;我们学习很多营销手段和投放广告知识&#xff0c;也会去查看好的广告案例&#xff0c;以及监测竞争对手的facebook ads。how to spy on competitors facebook ads&#xff1f;有哪些好用又简单操作的工具&#xff1f; facebook ads了解 我们…

Google广告投放技巧,开始Google广告投放

Google 广告是指通过 Google 广告网络在 Google 搜索和其他网站上展示的广告。要投放 Google 广告&#xff0c;您需要使用 Google 广告帐户&#xff0c;并通过 Google 广告平台设置广告活动。 要开始使用 Google 广告&#xff0c;您需要做出以下几步&#xff1a; 在 Google Ad…

Facebook广告投放怎么使用?Facebook广告投放的教程

做跨境电商的&#xff0c;多多少少都离不开广告投放&#xff0c;Facebook广告投放更是很多人的首选&#xff0c;所以东哥今天就来分享一个Facebook广告投放的教程&#xff0c;看完不信你还不会Facebook广告投放&#xff01; Facebook广告投放的教程 1、用科学上网的方式注册一个…

谷歌广告投放,谷歌广告怎么投放?

谷歌广告怎么投放&#xff1f; 谷歌广告的投放流程非常简单&#xff0c;如果你已经开通了谷歌广告账户&#xff0c;按如下7步即可立即开始你的谷歌投放之路。 1、登录Google账号&#xff0c;点击广告系列&#xff0c;选择「新广告系列」 2、选择广告系列目标和类型搜索广告系…

亚马逊中关于店铺广告设定的介绍

1. Visibility Advertising &#xff1a; Sponsored Products 作用&#xff1a;增加可见率及转化率 页面&#xff1a;检索结果页及产品页 方法&#xff1a;设置关键字及产品 付费&#xff1a;按点击付费或者PPC付费 设置方法&#xff1a; – 手动设置&#xff1a;卖家手动设置…

亚马逊广告投放策略卖家们知多少?

关于投放策略&#xff0c;分阶段执行会更加高效。特别是推新品&#xff0c;可分成初始期、成长期和成熟期几个阶段&#xff0c;通过自动/手动以及否定投放等策略有目的性的进行推广。 1、自动/手动投放 初始期&#xff1a;可利用商品推广&#xff0c;进行广告分组&#xff0c…

亚马逊站内广告

对于大部分卖家来说&#xff0c;在亚马逊的运营中&#xff0c;站内广告是必不可少的推动产品销量上升和成为爆款的工具。 亚马逊在站内广告的投放上有两种投放方式&#xff1a;自动广告和手动广告。 PPC全名pay-per-click&#xff0c;也就是点击付费的意思&…

亚马逊运营,如何调整你的广告和自然订单占比?

比如&#xff0c;我的一款产品&#xff0c;现在已经是小类目排名第一&#xff0c;但让我痛苦的是&#xff0c;出单主要是广告单&#xff0c;自然订单很少&#xff0c;导致这种情况的主要原因是什么呢&#xff1f;我该如何优化来提高自然单的比例呢&#xff1f; 这样的情况还真…

跨境电商卖家如何创建客户参与的 Facebook 广告?

关键词&#xff1a;跨境电商卖家、客户参与、Facebook广告 想要从您的 Facebook 广告中获得更多潜在客户或转化&#xff1f;正在寻找为您自己的广告建模的成功秘诀&#xff1f; 在本文中&#xff0c;您将了解创建消费者响应的 Facebook 广告的八个技巧。 将您现有的 Facebook 受…

亚马逊广告API对接概述

广告API对接总体流程>>> 下图中出现的相关URL&#xff0c;是以北美站为例 亚马逊广告各实体间关系>>> 1. 广告API对接准备 ​​​​​​​1.1 申请亚马逊开发者帐号和广告API访问帐号 &#xff08;略&#xff09;API申请如有问题&#xff0c;可以入群交流。…

亚马逊 站内广告数据分析

一、广告的清理 将停止的&#xff0c;归档的广告先过滤掉&#xff0c;这个可以在广告的左侧“筛选”项完成&#xff0c;我们可以选择“已启用”的选项&#xff0c;这样做的好处是&#xff0c;把原来那些已经无用的广告筛选出去&#xff0c;可以让我们的数据看起来更清爽&#x…

亚马逊广告接口 amazon advertising

亚马逊广告接口官方说明&#xff1a;https://advertising.amazon.com/API/docs/en-us/setting-up/account-setup 一&#xff1a;注册aws开发者账号 注册地址&#xff1a;https://developer.amazon.com 二&#xff1a;填写注册资料 三&#xff1a;进入控制台&#xff0c;生成…

ChatGPT 聊天黑科技 - 如何提问

01 引言&#xff1a;轻松操控 ChatGPT 最近&#xff0c;有一个火爆全网的 ChatGPT 提问方式&#xff0c;给其创造 “生死边缘” 的紧张氛围&#xff0c;激发潜能&#xff0c;可以说是赤裸裸的 PUA ChatGPT 了&#xff1a; 1. 给 AI 设定 “5 条命”&#xff0c;每当它不能完成…

GitHub 又一黑科技项目诞生,成功复现 ChatGPT 完整流程!

来源&#xff1a;脑机转口社区 本文约3800字&#xff0c;建议阅读7分钟GitHub 知名开源项目 Colossal-AI 快速跟进&#xff0c;成功做出了首个开源低成本复现 ChatGPT 完整流程&#xff01; 近日&#xff0c;火爆全网的 ChatGPT&#xff0c;仿佛开启了第四次工业革命&#xff0…

论文阅读:“Inpaint Anything: Segment Anything Meets Image Inpainting”

** Inpaint Anything: Segment Anything Meets Image Inpainting ** 论文地址&#xff1a;https://arxiv.org/abs/2304.06790 项目地址&#xff1a;https://github.com/geekyutao/Inpaint-Anything Abstract 尽管现代图像修复系统取得了显著的进展&#xff0c;但在mask选择…