OpenAI Java SDK——chatgpt-java更新v1.0.4支持GPT-3.5-Turbo,支持语音转文字,语音翻译。

简介chatgpt-java是一个OpenAI的Java版SDK,支持开箱即用。目前以支持官网全部Api。支持最新版本GPT-3.5-Turbo模型以及whisper-1模型。增加chat聊天对话以及语音文件转文字,语音翻译。开源地址:https://github.com/Grt1228/chatgpt-java快速开始导入pom依赖<dependency> <groupI

- 阅读全文 -

Open AI 推出最新chat模型:gpt-3.5-turbo,价格更便宜。

目前还处于测试版本:https://platform.openai.com/docs/guides/chat文中提到官方的chatgpt就是基于此模型:gpt-3.5-turbo 开发。这两天会更新这个接口的的Java SDK。欢迎使用我开发的OpenAi Java SDK : https://github.com/Grt1228/chatgpt-java<dependency>

- 阅读全文 -

About ChatGPT的Java SDK。OpenAI官方Api的Java 版SDK。

开源地址:https://github.com/Grt1228/chatgpt-java已经支持OpenAI官方的全部api,有bug欢迎朋友们指出,互相学习。注意:由于这个接口:https://platform.openai.com/docs/api-reference/files/retrieve-content免费用户无法使用,所以并未经过测试!!!(哪位朋友有收费版keys也可以提供下)工

- 阅读全文 -

动手写了个简单版的ChatGPT的Java版客户端

最近ChatGpt大火,我在年前申请过账号忘了下确实强大。作为Java程序猿社畜就尝试写了个Java版本的简易版客户端。源码地址:https://github.com/Grt1228/chatgpt-java,不对之处欢迎指正。简介ChatGPT的Java客户端目前支持api-keys的方式调用.后续会持续集成国内类ChatGpt的厂商api。快速开始创建客户端配置api-key即可api-key

- 阅读全文 -

Mapstruct为什么比BeanUtils快?简单使用示例。

一、Mapstruct是什么?Mapstruct和BeanUtil功能一样,都是两个实体类之间属性复制工具。之前在开发项目的时候都是用的BeanUtils,听说过Mapstruct的大名但是没有使用过。最近来看看这个Mapstruct怎么玩?为什么那么快?二、Mapstruct是怎么使用?2.1导入依赖 <dependency> <groupId>org

- 阅读全文 -

xxl-job最新版2.3.1修改支持Pgsql、PostgreSQL版本

xxl-job原生支持Mysql,不支持pgsql,要适配Pgsql的需要修改部分代码。xxl-job最新版2.3.1修改支持Pgsql、PostgreSQL版本下面的所有修改基于xxl-job的2.3.1版本下面的所有修改基于xxl-job的2.3.1版本下面的所有修改基于xxl-job的2.3.1版本1、修改Sql脚本CREATE TABLE xxl_job_info ( id serial

- 阅读全文 -

@Valid和@Validated的编程式调用,手动触发参数校验

简介隔离在家工作,最近遇到一个挺好玩的需求哈哈哈。在参数校验前需要做一段逻辑上的处理。比如:同一个接口的参数校验,一个实体类有10个属性满足条件A就校验其中的5个属性,满足条件B就校验另外5个属性。常用的处理逻辑一般我们在做Spring Boot项目时候的参数校验都是直接通过在接口入口处增加@Valid,然后Spring在序列化参数的时候就回自动帮我们进行校验。实体类增加校验注解这里举例:@Not

- 阅读全文 -

算法数据结构----差分数组

什么是差分数组?差分数组也是一个数组,只不过它的产生是由原数组进化而来。首先我们定义一个原数组array长度为8:INDEX01234567原数组1253101005466然后定义一个差分数组tempArray长度也为8,差分数组的每一项取值为(第一项默认为原数组第一项):tempArray[i] = array[i] - array[i-1] ;(i>0)INDEX01234567原数组1

- 阅读全文 -

Java8中的Optional

OptionalOptional构造方法私有,不能通过new创建对象。Optional创建对象的集中方法。方法名描述of(T value)创建一个对象,如果为空,抛出NullPointException。ofNullable(T value)创建一个对象,可以为空。empty()创建一个空的对象empty()Optional<Object> empty = Optional.empty

- 阅读全文 -

02-Jvm垃圾回收

如何判断对象可以回收?引用计数法两个对象互相引用,会导致两个对象都没法被回收。可达性分析Java 虚拟机中的垃圾回收器采用可达性分析来探索所有存活的对象扫描堆中的对象,看是否能够沿着 GC Root对象 为起点的引用链找到该对象,找不到,表示可以 回收哪些对象可以作为GC root?虚拟机栈(栈帧中的本地变量表)中引用的对象。方法区中类静态属性引用的对象方法区中常量引用的对象本地方法栈中JNI(即

- 阅读全文 -