Lucent's Blog

当时明月在 曾照彩云归

人生不相见,动如参与商。

6LCi5Y2O5qKFLOaIkeaDs+S9oOS6hg==


基于Spring RSocket体验ChatGPT

什么是 RSocket

RSocket 是一个新的、语言无关的第七层应用网络协议。它是一个双向、多路复用、基于消息、基于反应流背压的二进制协议。 和传统网络编程模型 HTTP 的 Request/Response 方式不同。RSocket 除了 Request/Response 方式之外,还支持 Fire And Forget(发送不回)、Stream(单向流)、Channel(双向流)。

搭建项目

1.引入依赖

chatgpt-spring-boot-starter 是一个基于 openai-api 的启动器,与 Springboot 集成轻松调用 ChatGPT。它集成了官方 api,而非其他开源项目劫取 auth-session 的做法,所以非常稳定。

<!-- chatgpt 调用封装: https://github.com/flashvayne/chatgpt-spring-boot-starter -->
<dependency>
  <groupId>com.pig4cloud.plugin</groupId>
  <artifactId>chatgpt-spring-boot-starter</artifactId>
  <version>0.0.1</version>
</dependency>
<!-- rsocket 依赖,可选-->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-rsocket</artifactId>
</dependency>

2.创建API Key

访问: https://platform.openai.com/account/api-keys image.png

3.修改配置

修改项目配置文件application.properties

chatgpt.api-key=sk-xxxx

# 需要rscoket 交互就配置端口
spring.rsocket.server.port=18090

调用测试

通过 rsc 客户端,我们可以非常方便的调试 RSocket (可以理解成 http postman 工具) 终端中输入:

./rsc  tcp://localhost:18090  -r chat -d  -  --channel

image.png

高级用法

在任何你想用的地方注入 Bean ChatgptService,然后调用它的方法给 ChatGPT 发消息并获得回复

@Autowired
private ChatgptService chatgptService;

public void test(){
    String responseMessage = chatgptService.sendMessage("how are you");
    System.out.print(responseMessage);
}

ChatgptService 有两个方法:

//方法直接返回chatgpt的消息。
String sendMessage(String message); 
//方法可自定义完整的请求参数和接收完整的api返回信息。
ChatResponse sendChatRequest(ChatRequest request); 

这个 Bean 是@ConditionalOnMissingBean(ChatgptService.class)条件注入的,如有需要可自定义 ChatgptService,重写接口的相关方法覆盖掉默认的实现 DefaultChatgptService。

上一篇

go-cqhttp使用语音或者短视频功能,需要安装ffmpeg,下面是安装方法:windows1.将ffmpeg-6.0-windows.zip解压2.解压后进入bin目录,能看到ffmpeg.exe、ffplay.exe、ffprobe.exe三个文件。不用管它,进行下一步。3.将bin目录的路径…

阅读
下一篇

官方终于开放了GPT3.5版本(和ChatGPT同一个版本)的接口,下面我们就将QQ机器人换成更聪明的GPT3.5代码下载: 点击下载使用方法获取Api Key登录OpenAi官网后https://beta.openai.com/login/点击下面链接生成Api Key:https://beta.…

阅读