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

OpenAI 官方API Java版SDK,两行代码即可调用。包含GhatGPT问答接口。

声明:这是一个非官方的社区维护的库。
已经支持OpenAI官方的全部api,有bug欢迎朋友们指出,互相学习。

注意:由于这个接口:

https://platform.openai.com/docs/api-reference/files/retrieve-content

免费用户无法使用,所以并未经过测试!!!(哪位朋友有收费版keys也可以提供下)

开源地址:https://github.com/Grt1228/chatgpt-java

简介

ChatGPT最近大火相关开源项目也出现了很多,作为Java程序员,发现官网只支持Python,Node版的SDK,于是自己动手写了个Java版本的SDK。

OpenAI官方Api的Java SDK,目前支持api-keys的方式调用,获取api-keys可以百度或者掘金查一下。

api-keys的方式调用目前不用魔法即可访问。

OpenAi官方文档地址:https://platform.openai.com/docs/api-reference
已完成接口列表:

  • Models
  • Completions
  • Images
  • Embeddings
  • Files
  • Fine-tune
  • Moderations
  • Engines

快速开始

方式一

导入pom依赖

<dependency><groupId>com.unfbx</groupId><artifactId>chatgpt-java</artifactId><version>1.0.0</version>
</dependency>

使用示例:

package com.unfbx.eventTest.test;
import com.unfbx.chatgpt.OpenAiClient;
import com.unfbx.chatgpt.entity.completions.CompletionResponse;
import java.util.Arrays;public class TestB {public static void main(String[] args) {//配置api keysOpenAiClient openAiClient = new OpenAiClient("sk-—***************api keys ****************");CompletionResponse completions = openAiClient.completions("三体人是什么?");Arrays.stream(completions.getChoices()).forEach(System.out::println);}
}

输出:

Choice(text=三体人是一种虚构的外星生物,出现在中国作家刘慈欣的科幻小说《三体》中。它们是一种三节身体的外星生物,每个节身体都有自己的大脑,它们可以通过超越光速的思维来沟通。, index=0, logprobs=null, finishReason=stop)

方式二(下载源码直接运行)

OpenAI全部接口支持调用

创建客户端配置api-key
完整测试案例参考:com.unfbx.chatgpt.OpenAiClientTest

public class OpenAiClientTest {private OpenAiClient v2;@Beforepublic void before() {v2 = new OpenAiClient("sk-**************************30V");}@Testpublic void models() {List<Model> models = v2.models();System.out.println(models.toString());}@Testpublic void model() {Model model = v2.model("code-davinci-002");System.out.println(model.toString());}@Testpublic void completions() {CompletionResponse completions = v2.completions("Java Stream list to map");Arrays.stream(completions.getChoices()).forEach(System.out::println);}@Testpublic void completionsv2() {Completion q = Completion.builder().prompt("三体人是什么?").build();CompletionResponse completions = v2.completions(q);System.out.println(completions);}
}

问答接口第二种调用方式

目前ChatGPTClient只支持Completions相关api(最开始时候写的)
创建客户端配置api-key

public class ChatGPTTest {public static void main(String[] args) {//输入官方申请的api-keysChatGPTClient client = new ChatGPTClient("sk-****************");//输入问题描述String body = client.askQuestion("简单描述下三体这本书");System.out.println(body);}
}

输出:

《三体》是中国作家刘慈欣创作的科幻小说,书中描写了一个存在于三体星系的中心神秘文明——「三体文明」的兴衰历程,叙述了它与地球文明之间的碰撞历史。

Completions接口的model支持自定义,目前官方支持的三种模型,参考代码

enum Model {DAVINCI_003("text-davinci-003"),DAVINCI_002("text-davinci-002"),DAVINCI("davinci"),;private String name;
}

完结

相关文章:

OpenAI 官方API Java版SDK,两行代码即可调用。包含GhatGPT问答接口。

声明&#xff1a;这是一个非官方的社区维护的库。 已经支持OpenAI官方的全部api&#xff0c;有bug欢迎朋友们指出&#xff0c;互相学习。 注意&#xff1a;由于这个接口&#xff1a; https://platform.openai.com/docs/api-reference/files/retrieve-content 免费用户无法使…...

SpringBoot 日志文件

(一)日志文件有什么用&#xff1f;除了发现和定位问题之外&#xff0c;我们还可以通过日志实现以下功能&#xff1a;记录用户登录日志&#xff0c;以便分析用户是正常登录还是恶意破解用户。记录系统的操作日志&#xff0c;以便数据恢复和定位操作 。记录程序的执行时间&#x…...

SQL71 检索供应商名称

描述Vendors表有字段供应商名称&#xff08;vend_name&#xff09;、供应商国家&#xff08;vend_country&#xff09;、供应商州&#xff08;vend_state&#xff09;vend_namevend_countryvend_stateappleUSACAvivoCNAshenzhenhuaweiCNAxian【问题】编写 SQL 语句&#xff0c;…...

02:入门篇 - 漫谈 CTK

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 十万个为什么 五千个在哪里?七千个怎么办?十万个为什么?。。。生活中,有很多奥秘在等着我们去思考、揭示! 同样地,在使用 CTK 时,很多小伙伴一定也存在诸多疑问: 为什么 CTK Plugin Framework 要借…...

SpringBoot常用注解

SpringBootApplication注解包含如下三个SpringBootConfigurationEnableAutoConfigurationComponentScanSpringBootConfiguration等同于Configuration&#xff0c;是属于spring的一个配置类这里的 Configuration 对我们来说并不陌生&#xff0c;它就是 JavaConfig 形式的 Spring…...

RBAC权限模型

什么是RBAC权限模型&#xff1f; RBAC是基于角色的访问控制&#xff0c;在RBAC中&#xff0c;权限与角色相关联&#xff0c;用户通过成为适当角色的成员而得到这些角色的权限。 1.0级 用户、角色、权限 2.0 权限分级 公司>部门>小组 2.1 权限继承 ps: 这个人是一个小组长…...

【郭东白架构课 模块一:生存法则】07|法则三:架构师如何找到自己的商业模式?

你好&#xff0c;我是郭东白&#xff0c;今天我们来聊聊架构活动中对商业价值的考量。 今天我们要讲的是架构师的第三个生存法则&#xff1a;作为一个架构师&#xff0c;必须要在有限的资源下最大化架构活动所带来的商业价值。对于任何一个架构活动而言&#xff0c;架构师的可…...

STM32 - 看门狗

独立看门狗 IWDG专业时钟LSI 低功耗仍可以运行对定时的控制比较松喂狗这些时间是按照40kHz时钟给出。实际上&#xff0c;MCU内部的RC频率会在30kHz到60kHz之间变化。此外&#xff0c;即使RC振荡器的频率是精确的&#xff0c;确切的时序仍然依赖于APB接口时钟与RC振荡器时钟之间…...

Redis集群搭建

一、哨兵模式 在 redis3.0之前&#xff0c;redis使用的哨兵架构&#xff0c;它借助 sentinel 工具来监控 master 节点的状态&#xff1b;如果 master 节点异常&#xff0c;则会做主从切换&#xff0c;将一台 slave 作为 master。 哨兵模式的缺点&#xff1a; &#xff08;1&…...

车载基础软件——AUTOSAR AP典型应用案例

我是穿拖鞋的汉子&#xff0c;魔都中一位坚持长期主义的工程师&#xff01; 最近不知道为何特别喜欢苏轼的一首词&#xff1a; 缺月挂疏桐&#xff0c;漏断人初静。谁见幽人独往来&#xff0c;缥缈孤鸿影。 惊起却回头&#xff0c;有恨无人省。拣尽寒枝不肯栖&#xff0c;寂寞…...

消息中间件----内存数据库 Redis7(第3章 Redis 命令)

Redis 根据命令所操作对象的不同&#xff0c;可以分为三大类&#xff1a;对 Redis 进行基础性操作的命令&#xff0c;对 Key 的操作命令&#xff0c;对 Value 的操作命令。3.1 Redis 基本命令首先通过 redis-cli 命令进入到 Redis 命令行客户端&#xff0c;然后再运行下面的命令…...

react-03-react-router-dom-路由

react-router-dom:react路由 印记中文:react-router-dom 1、路由原理 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>前端路由的基石_history</title> </head> <body><a hre…...

2自由度悬架LQR控制

目录 1 悬架系统 1.1 悬架结构示意图 1.2 悬架数学模型 1.3 路面激励 2.仿真分析 2.1simulink模型 2.2 仿真结果 2.3 结论 3. 总结 1 悬架系统 1.1 悬架结构示意图 1.2 悬架数学模型 其中&#xff1a;x1为悬架动扰度&#xff0c;x2为车身加速度&#xff0c;x3为轮胎…...

C语言返回类型为指针的一些经典题目(下)

续上一篇文章&#xff0c;上一篇文章题目都很经典&#xff0c;这一篇也不例外。一.返回类型为指针经典题目(下)1.代码(第六题)char *GetMemory3(int num) {char *p (char *)malloc(sizeof(char) * num);return p; } void Test3(void) {char *str NULL;str GetMemory3(100…...

OpenAI 官方api 阅读笔记

网站 API Key concepts Prompts and completions You input some text as a prompt, and the model will generate a text completion that attempts to match whatever context or pattern you gave it. Token  模型通过将文本分解成token来理解和处理, 处理token数量取…...

微服务项目【分布式锁】

创建Redisson模块 第1步&#xff1a;基于Spring Initialzr方式创建zmall-redisson模块 第2步&#xff1a;在zmall-redisson模块中添加相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</a…...

JavaWeb5-线程常用属性

目录 1.ID 2.名称 3.状态 4.优先级 5.是否守护线程 5.1.线程类型&#xff1a; ①用户线程&#xff08;main线程默认是用户线程&#xff09; ②守护线程&#xff08;后台/系统线程&#xff09; 5.2.守护线程作用 5.3.守护线程应用 5.4.守护线程使用 ①在用户线程&am…...

JVM调优及垃圾回收GC

一、说一说JVM的内存模型。JVM的运行时内存也叫做JVM堆&#xff0c;从GC的角度可以将JVM分为新生代、老年代和永久代。其中新生代默认占1/3堆内存空间&#xff0c;老年代默认占2/3堆内存空间&#xff0c;永久代占非常少的对内存空间。新生代又分为Eden区、SurvivorFrom区和Surv…...

JAVA练习53-打乱数组

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 一、题目-打乱数组 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 2月17日练习内…...

基于RK3588的嵌入式linux系统开发(三)——Uboot镜像文件合成

本章uboot镜像文件的合成包括官网必备文件rkbin下载和uboot镜像文件合成两部分内容&#xff0c;具体分别如下所述。 &#xff08;一&#xff09;下载rkbin文件包 以上uboot编译生成的uboot镜像不能直接烧录到板卡中运行&#xff0c;需要与atf、bl31、ddr配置文件等必备文件合成…...

英雄联盟Akari助手:5大核心功能提升你的游戏体验终极指南

英雄联盟Akari助手&#xff1a;5大核心功能提升你的游戏体验终极指南 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否厌倦了在英雄联盟对…...

如何一键清理Windows系统:Win11Debloat终极优化指南

如何一键清理Windows系统&#xff1a;Win11Debloat终极优化指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and cust…...

用LDAP Browser连接OpenLDAP时,这3个配置细节坑了我一整天

用LDAP Browser连接OpenLDAP时&#xff0c;这3个配置细节坑了我一整天 第一次用LDAP Browser连接OpenLDAP服务器时&#xff0c;我本以为照着教程五分钟就能搞定&#xff0c;结果硬是折腾了一整天。明明服务端已经正常启动&#xff0c;客户端工具也装好了&#xff0c;但就是连不…...

深度解析VisualCppRedist AIO:3种核心技术实现Windows运行时组件自动化管理

深度解析VisualCppRedist AIO&#xff1a;3种核心技术实现Windows运行时组件自动化管理 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist VisualCppRedist AIO项目…...

Steam游戏自动破解终极指南:3步实现DRM移除与离线游戏

Steam游戏自动破解终极指南&#xff1a;3步实现DRM移除与离线游戏 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack SteamAutoCrack是一款专业的Steam游戏自动破解工具&#xff0c;通过智…...

[leetcode] 25. K 个一组翻转链表 Reverse Nodes in k-Group

给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值&a…...

别再傻等AS下载Gradle了!手把手教你手动配置Gradle 5.4.1(附国内镜像源)

高效解决Android Studio Gradle下载难题&#xff1a;手动配置全攻略 每次打开Android Studio准备大展身手时&#xff0c;却被"Could not install Gradle distribution"的报错拦住去路&#xff1f;作为经历过无数次这种折磨的开发者&#xff0c;我完全理解那种看着进度…...

ClawTick CLI:为AI Agent构建可靠任务调度与监控的实践指南

1. 项目概述&#xff1a;为AI Agent构建可靠的任务调度基础设施 如果你正在开发或使用AI Agent&#xff0c;无论是基于LangChain、CrewAI还是OpenClaw&#xff0c;迟早会遇到一个核心问题&#xff1a;如何让这些智能体定时、可靠地执行任务&#xff1f;自己写个定时脚本&#…...

3步告别CAD重复劳动:Python自动化绘图终极指南

3步告别CAD重复劳动&#xff1a;Python自动化绘图终极指南 【免费下载链接】pyautocad AutoCAD Automation for Python ⛺ 项目地址: https://gitcode.com/gh_mirrors/py/pyautocad 还在为AutoCAD中那些重复、机械的绘图任务感到疲惫吗&#xff1f;每天花费数小时手动绘…...

深度解析Windows Defender移除技术:高级系统优化与安全组件管理架构实现指南

深度解析Windows Defender移除技术&#xff1a;高级系统优化与安全组件管理架构实现指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitco…...