关于ChatGPT3.5模型的使用(java)

ChatGPT小程序实战后台部分

    • 目的
    • 开发准备
    • 封装模型调用方法
      • 获取已缓存对话上下文方法(可忽略)
      • 最新的上下文缓存进去(可忽略)
    • 请求模型实体
    • 响应实体
    • messages实体
    • choices实体
    • 效果
      • 帮我写博客大纲
      • 玩游戏
    • 总结
    • 注意:

目的

最近网上关于ChatGPT的内容特别多,但是浏览大多数文章,能够完整拿来即用的代码却少之又少,索性自己写了一份以** gpt-3.5-turbo ** 模型为基础的demo,技术有限,仅供参考,不喜勿喷!

开发准备

想要进行利用chatGPT进行开发,前提是要申请OpenAI账号,拿到自己的秘钥。这一步劝退了大部分人,但是对于一个技术人来讲,如果连这最基础的准备都无法达到,那也不必继续研究了,网上白嫖其他人的就可以。这里我就不做赘述了!接下来直接进入主题!

封装模型调用方法

	final static private String chatCompletionUrl = "https://api.openai.com/v1/chat/completions";final static private String model = "gpt-3.5-turbo";final static private String Authorization = "Bearer sk-XXXXXXXXXXXXXXXXX";//这里使用你自己的认证信息public static CompletionChatResponse chatCompletion(String prompt){//prompt即要将要发送至gtp的内容//这里是我根据模型请求封装的模型实体CompletionChatRequest completionChatRequest = new CompletionChatRequest();//封装http请求HttpRequest post = HttpUtil.createPost(chatCompletionUrl).timeout(300000);Map<String, String> headers = new HashMap<>();headers.put("Authorization", Authorization);post.addHeaders(headers);post.contentType("application/json;charset=UTF-8");completionChatRequest.setModel(model);ChoiceMessage message = new ChoiceMessage("user", prompt);//这里我把用户发送和机器人返回的20条内容内容存在了redis中,用于关联对话上下文场景,如果不需要,注释掉即可,直接new一个ArrayListList<Object> messages = getUserCacheMessages();int size = messages.size();if (size>19){messages.remove(0);}messages.add(message);setUserCacheMessages(messages);//把新的放到rediscompletionChatRequest.setMessages(messages);post.body(JSON.toJSONString(completionChatRequest));String body = post.execute().body();CompletionChatResponse completionChatResponse = JSON.parseObject(body, CompletionChatResponse.class);return completionChatResponse;}

获取已缓存对话上下文方法(可忽略)

	public static List<Object> getUserCacheMessages(){RedisCache redisCache = SpringUtils.getBean(RedisCache.class);List<Object> cacheMessages = redisCache.getCacheObject(JwtTokenUtil.getUserId + ":messages");if (StringUtils.isEmpty(cacheMessages)){cacheMessages= new ArrayList<>();}return cacheMessages;}

最新的上下文缓存进去(可忽略)

    public static void setUserCacheMessages(List<Object> messages){while(messages.size()>20){messages.remove(0);}RedisCache redisCache = SpringUtils.getBean(RedisCache.class);redisCache.setCacheObject(JwtTokenUtil.getUserId + ":messages", messages, 30, TimeUnit.MINUTES);}

请求模型实体

参数的具体意义,可以自行查阅OpenAI官网进行调整

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.List;
import java.util.Map;@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class CompletionChatRequest {String model;List<Object> messages;Integer maxTokens;Double temperature;Double topP;Integer n;Boolean stream;Integer logprobs;Boolean echo;List<String> stop;Double presencePenalty;Double frequencyPenalty;Integer bestOf;Map<String, Integer> logitBias;String user;
}

响应实体

import com.theokanning.openai.Usage;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;import java.util.List;@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class CompletionChatResponse {String id;String object;long created;String model;List<CompletionChatChoice> choices;Usage usage;
}

messages实体

这里role我只用到了两种,一种是用户,另外就是机器人,其实还可以设置一个系统场景角色
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class ChoiceMessage {String role;String content;
}

choices实体

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;@Builder
@NoArgsConstructor
@AllArgsConstructor
@Data
public class ChoiceMessage {String role;String content;
}

到这里为止,就可以跑main方法进行测试了!

效果

下面是我自己接入的小程序效果示例,,工作效率瞬间提高有没有?
有需要体验的可以找我交流

帮我写博客大纲

效果

玩游戏

在这里插入图片描述

总结

当然,请求的内容越详细,机器人的回复也就越精准!快去试试吧!

注意:

国内ip被墙,可能需要科学上网,自行研究!

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

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

相关文章

FreeSSL申请免费证书

FreeSSL申请免费证书 FreeSSL 是一个免费证书和 SSL 证书管理平台。旨在为个人和小型企业提供免费 SSL 证书&#xff0c;以加强他们的网站和应用程序的安全性。与传统的 SSL 证书颁发机构不同&#xff0c;FreeSSL 使用自动化过程生成 SSL 证书&#xff0c;并提供一个管理面板&a…

大数据技术之Hadoop-入门

第1章 Hadoop概述 1.1 Hadoop是什么 分布式&#xff1a;多台服务器共同完成某一项任务。 1.2 Hadoop发展历史 1.3 Hadoop三大发行版本 Hadoop三大发行版本&#xff1a;Apache、Cloudera、Hortonworks。 Apache版本最原始&#xff08;最基础&#xff09;的版本&#xff0c…

AutoGPT怎么用?一文配置自己的AutoGPT!

Auto GPT是Github上的一个免费开源项目&#xff0c;结合了GPT-4和GPT-3.5技术&#xff0c;通过API创建完整的项目。与ChatGPT不同的是&#xff0c;用户不需要不断对AI提问以获得对应回答&#xff0c;在AutoGPT中只需为其提供一个AI名称、描述和五个目标&#xff0c;然后AutoGPT…

AI —— 一看就懂的代码助手Copilot获取教程

背景 随着chatgpt的发布&#xff0c;人工智能领域近期站上了风口浪尖。GitHub Copilot由github与 OpenAI 合作创建&#xff0c;是世界上第一个使用 OpenAI 的 Codex 模型&#xff08;GPT-3 的后代&#xff09;制作的大规模生成式 AI 开发工具。GitHub Copilot 作为 AI 结对程序…

如何查看OpenAI的api-key?

如何查看OpenAI的api-key&#xff1f; 记录一下如何查看 OpenAI的 api-key 文章目录 如何查看OpenAI的api-key&#xff1f;前提具体操作 前提 作为ChatGPT的开发商&#xff0c;OpenAI为开发者提供了API&#xff0c;使得开发者能在自己的应用程序中调用OpenAI的相关服务。本文…

新手做网站教程(手把手教你做网站)

今天给各位分享新手做网站教程的知识&#xff0c;其中也会对手把手教你做网站进行解释&#xff0c;如果能碰巧解决你现在面临的问题&#xff0c;别忘了关注本站&#xff0c;现在开始吧&#xff01; 本文目录一览&#xff1a; 1、怎么自己做网站2、做网站的步骤3、新手怎么建自…

镜像 国内源 汇总

20210913 https://blog.csdn.net/weixin_42081389/article/details/112389876 pip永久设置国内源 Writing to C:\Users\hz\AppData\Roaming\pip\pip.ini 20210907 链接&#xff1a;https://pan.baidu.com/s/12fhKBRyNKstMKeIkaiQHAg 提取码&#xff1a;unix centos 6.3 http…

redhat下载镜像官方地址

redhat下载镜像官方地址&#xff1a; https://developers.redhat.com/products/rhel/download 下载之前需要先注册好账号

普惠、降价、开发者...阿里云的新关键词

4月11日的国家会议中心&#xff0c;人潮汹涌。所有人的目标仿佛只有一个&#xff0c;阿里云自研大模型“通义千问”究竟是什么&#xff0c;能否成为国内第一阵营&#xff0c;能否能抗能打&#xff1f; 某种程度来说&#xff0c;这是科技产业在观察阿里云对AI的价值判断和未来走…

别人卷大模型,阿里云递锤子?

文&#xff5c;光锥智能&#xff0c;作者&#xff5c;刘雨琦 4月11日&#xff0c;所有人都在盯着阿里云。 不只是因为&#xff0c;这是继去年年底&#xff0c;阿里巴巴集团董事会主席兼CEO张勇接任阿里云智能集团CEO之后的第一次公开讲话&#xff0c;更是因为在大模型激战的时…

使用CAT进行MRI脑图像分析

使用CAT进行MRI脑图像分析 MED620122 生物医学工程进展 数据 在所提供的6个T1 MRI数据&#xff08;男性和女性各3位&#xff09;上进行分析。根据SPM或CAT所提供的学习资料&#xff0c;边学习边分析这6个数据。 要求&#xff1a; 去除颅骨后对脑容量分析&#xff0c;如平均…

脑电、脑机接口(BCI)等数据集、书籍、信号处理等相关资源

目录 BCI-相关资源软件Stand Alone BCI ApplicationsMatlab ToolboxesPython ToolboxesAndroid ToolboxesBrain VisualizationsRaspberryPi FrameworkCommunication Protocols 硬件EEG消费级设备(Consumer and DIY Devices)研究级设备(Research Devices)EEG BCI ProductsEEG Pa…

脑机接口的技术与应用

基于EEG的脑机接口的技术和应用 本文首发在陈锐博客上&#xff08;7988888.xyz&#xff09;&#xff0c;此文章中所有链接均通过博客进行访问。 本文基于的文献参考&#xff1a; Roberto Portillo-Lara*,* Bogachan Tahirbegi, Christopher A. R. Chapman,Josef A. Goding, …

《认知科学与脑机接口》作业整合

《认知科学与脑机接口》作业整合 课程《认知科学与脑机接口》&#xff0c;可用于期末复习。 学弟&#xff0c;别幻想岁月静好&#xff0c;学长已经负重前行。 注&#xff1a;仅供参考&#xff01;&#xff01;&#xff01; 感觉与知觉 1、什么是感觉和知觉&#xff0c;二者有…

脑PET图像分析和疾病预测挑战赛baseline——结果可达0.76左右——科大讯飞2020年度开发者大赛

大赛网址&#xff1a;http://challenge.xfyun.cn/topic/info?typePET 赛事说明及要求请查看上面网址。数据下载需要实名认证&#xff0c;这里提供[百度网盘下载地址] &#xff08;提取码&#xff1a;4hz2&#xff09;。 赛题数据 赛题数据分训练集和测试集。 训练集分CN和…

脑机接口005 | “中国脑计划”:向最后的前沿进发!

Hello&#xff0c; 大家好&#xff0c;这里是壹脑云科技圈&#xff0c;我是叮叮~ 在很长的历史时期&#xff0c;我们都以为是心在操纵着我们人类的思维&#xff01;历史上也有很多“心”学理论。 其中最著名的莫过于王阳明先生&#xff0c;而致良知则是王阳明先生心学的核心…

脑机接口科普0013——中枢神经与周围神经

本文禁止转载&#xff01;&#xff01;&#xff01; 提到脑机接口&#xff0c;不得不提到生物学中的中枢神经与周围神经。下图中左边即为中枢神经&#xff0c;右边即为周围神经。 可以用下面这个图概括神经系统&#xff1a; 也就是说&#xff0c;人的所有行为&#xff1a;行走…

转发,脑机接口领域又一重要成果!

来源&#xff1a;传感器技术 作者&#xff1a;余淼 硕士学历&#xff0c;长期从事智能传感控制、信息通信领域研究工作。 “ 以脑-机交互&#xff08;BCI&#xff09;为核心的神经工程技术&#xff0c;让人类真正可以做到“心想事成”。 据首都医科大学官网报道&#xff0c;首都…

TUH癫痫脑电数据集下载

TUH癫痫脑电数据集下载 一、准备工作 1.wget安装 数据集的下载需要用到wget工具&#xff0c;如果是linux或者是macos操作系统可以直接下载&#xff0c;我这里是Windows操作系统&#xff0c;就需要先安装wget&#xff0c;首先打开 weget下载网址去下载wget&#xff0c;我下载…

CHB-MIT波士顿儿童医院癫痫EEG脑电数据处理-2D-CNN(四)

主要内容 1、数据提取2、提取过程 1、数据提取 本次教程做适用于整体数据集上的处理工作&#xff0c;以不同的的处理代码展示整体的数据处理&#xff01; 本次数据处理教程是没有做STFT变换&#xff0c;之间将提取的数据变换为适合2D-CNN输入的数据&#xff0c;以适应使用2D-C…