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

这篇具有很好参考价值的文章主要介绍了关于ChatGPT3.5模型的使用(java)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目的

最近网上关于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一个ArrayList
        List<Object> messages = getUserCacheMessages();
        int size = messages.size();

        if (size>19){
            messages.remove(0);
        }

        messages.add(message);
        setUserCacheMessages(messages);//把新的放到redis
        completionChatRequest.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方法进行测试了!

效果

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

帮我写博客大纲

关于ChatGPT3.5模型的使用(java),java,gpt-3,开发语言,微信小程序

玩游戏

关于ChatGPT3.5模型的使用(java),java,gpt-3,开发语言,微信小程序

总结

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

注意:

国内ip被墙,可能需要科学上网,自行研究!文章来源地址https://www.toymoban.com/news/detail-561118.html

到了这里,关于关于ChatGPT3.5模型的使用(java)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chatgpt3.5生成的关于电磁阀的论文

    下面是用chatgpt3.5生成的论文。从整体结构上讲,是合理的。就是图给我省略了,哈哈 随着物联网时代的到来,越来越多的设备可以通过互联网进行远程控制。在这篇论文中,我们将讨论如何使用Java和pi4j驱动电磁阀远程控制水龙头。 在本论文中,我们将包括以下内容: 规划

    2024年02月06日
    浏览(42)
  • ChatGPT3.5、GPT4.0、DALL·E 3和Midjourney对话与绘画智能体验

    MidTool(https://www.aimidtool.com/)是一个集成了多种先进人工智能技术的助手,它融合了ChatGPT3.5、GPT4.0、DALL·E 3和Midjourney等不同的智能服务,提供了一个多功能的体验。下面是这些技术的简要介绍: ChatGPT3.5 : ChatGPT3.5是OpenAI开发的自然语言处理模型的一个版本,它基于GPT-3技术

    2024年02月03日
    浏览(36)
  • python一个请求chatgpt3.5模型例子

    当然可以!你可以使用OpenAI的 `openai.ChatCompletion.create()` 方法来请求 ChatGPT 3.5 模型的回复。以下是一个使用Python进行请求的示例代码: 在上面的代码中,你需要将 `\\\'YOUR_API_KEY\\\'` 替换为你的OpenAI API密钥。然后,代码通过 `send_message()` 函数将用户的输入发送给模型,并获取模型的

    2024年02月12日
    浏览(47)
  • vicuna-13b与ChatGPT3.5对决,GPT4为裁判的80道考题,中文机翻版

    本文主要内容是vicuna-13b的原团队测试题,仅复制翻译(360Chrome翻译)了vicuna-13b与ChatGPT3.5的对比情况,原网址为:https://vicuna.lmsys.org/,原网站包含vicuna-13b分别与 Alpaca-13b, LLaMA-13b, ChatGPT3.5, Bard的对比示例,通过GPT4评分。 最近看大语言模型的相关视频、代码,实际操作测试了

    2024年02月06日
    浏览(66)
  • ChatGPT:基于GPT-3.5架构的强大语言模型

    这段时间,周围朋友们讨论最多的除了春招的激烈之外,就是ChatGPT了,大家被ChatGPT的智能和超强的学习能力所震惊,甚至担心未来会被人工智能所取代。 这样的担心不无道理,我们程序员作为技术人员,需要对新技术保持敏锐的嗅觉,以免被时代抛弃。但就我最近对ChatGP

    2024年02月07日
    浏览(39)
  • 【人工智能】GPT-4 的使用成本,竟然是GPT-3.5的50倍之多 —— 大语言模型(LLM)开发者必须知道的数字

    GPT-4的使用成本,竟然是GPT-3.5的50倍之多; 而让大语言模型同时处理25个请求的时间,仅是处理单个请求的2倍…… 这些数据听上去可能有些出乎意料,但都是真实的。 它们出自一篇名为《大语言模型(LLM)开发者必须知道的数字》的GitHub文章。 GitHub - ray-project/llm-numbers: Nu

    2024年02月07日
    浏览(60)
  • 大模型开发(一):GPT、ChatGPT与大模型,一次搞懂这些AI概念

    全文共5000余字,预计阅读时间约10~20分钟 | 满满干货,建议收藏! 本文目标:详细解释大型语言模型(LLM)和OpenAI的GPT系列的基本概念。 大型语言模型,也称大语言模型、大模型(Large Language Model,LLM;Large Language Models,LLMs) 。 大语言模型是一种深度学习模型,特别是属于

    2024年02月14日
    浏览(30)
  • 标题:深入了解ChatGPT:基于GPT-4架构的创新人工智能语言模型及其应用前景

    一、ChatGPT简介 ChatGPT是一种基于OpenAI开发的GPT-4架构的人工智能语言模型。GPT-4是一种自然语言处理技术,其前身为GPT-3。随着技术的迅速发展,GPT-4在许多方面超越了GPT-3,如模型规模、知识库和性能。ChatGPT在多种语言和应用场景中表现出卓越的性能,成为现代人工智能领域

    2024年02月03日
    浏览(40)
  • 使用uniapp做ai开发,太简单了。无论是chatgpt还是国内的大语言模型,都可以随意使用

    目录 uni-ai是什么 1、聚合 2、prompt辅助 3、私有数据训练 4、现成开源项目 如何使用uni-ai 1、通过api调用 2、获取LLM实例 3、对话 4、简单示例 5、流式响应 其他说明  费用 常见用途场景 做小程序开发的应该都知道uniapp,这是Dcloud推出的一款跨端开发框架。是一个使用 Vue.js 开

    2024年02月13日
    浏览(54)
  • 电脑部署本地类似ChatGPT3.5的AI模型Vicuna的常见错误和原因

    1.msvcp140.dll丢失的解决方方法 进入电脑的程序和功能只要是像下面图片的全部点击修复或者重新安装再或者从网上下载缺少的vc运行库文件放进自己的 C:WindowsSystem里, 您的系统是64位的请将文源件复制到 C:WindowsSysWOW64 目录。  2.由于llama运行旧的模型需要的版本和llama的版

    2024年02月10日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包