如何调用chatGPT实现代码机器人

目录
  • 获取chatGPT登录Token信息
  • 一、通过Httpclient实现调用chatGPT
  • 二、通过hutool实现调用chatGPT

最近chatGPT也是非常的火爆,相信大家都看到了,现在提供一种Java调用chatGPT的方法,我们主要通过两个工具来实现,一就是httpclient,二就是hutool,你觉得那种好理解你就用那种即可!

获取chatGPT登录Token信息

1.需要拥有chatGPT账号,进入官网需要科学上网自行解决!

官网:ChatGPT

注册需使用国外手机号!

视频教程:https://www.bilibili.com/video/BV1HP4y1Q7QP/

2.在登录时打开f12,抓取关键包

3.需要注意的是此token只能存活一天,所以说你要对接到QQ机器人或者是微信机器人的情况下,需要每天手动获取一次token,需要对接QQ机器人可以看我往期的博客,只需要将以下两种方式的任意一种封装成方法进行调用即可!

基于SpringBoot实现QQ机器人_木芒果呀的博客-CSDN博客_android_phone、android_pad、android_watch

一、通过Httpclient实现调用chatGPT

1.在项目中引入Httpclient依赖

         <!-- httpclient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.13</version>
        </dependency>
        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.7</version>
        </dependency>

2.测试类

/**
 * 使用httpclient调用chatGPT
 */
public class App {
    public static void main(String[] args) throws Exception {
        //通过登录chatgpt截取页面的token信息
        String au = "token";
        String sendMsg = "发送的消息";
        String user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.42";
        String json = "{\"action\":\"next\",\"messages\":[{\"id\":\"16f7cd15-5e7a-461b-8992-81a80ae770fa\",\"role\":\"user\",\"content\":{\"content_type\":\"text\",\"parts\":[\"" + sendMsg + "\"]}}],\"conversation_id\":\"add24670-9871-421a-bf23-e210b5021099\",\"parent_message_id\":\"c743b493-c2dc-454e-aacd-9ce90cb1ee97\",\"model\":\"text-davinci-002-render\"}";
        System.out.println(json);
        HttpPost httpPost = new HttpPost("https://chat.openai.com/backend-api/conversation");
        httpPost.addHeader("authorization", au);
        httpPost.addHeader("user-agent", user_agent);
        httpPost.setHeader("Content-type", "application/json; charset=utf-8");
        httpPost.setEntity(new StringEntity(json, StandardCharsets.UTF_8));
        CloseableHttpClient httpClient = HttpClients.createDefault();
        CloseableHttpResponse response = httpClient.execute(httpPost);
        String body = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8);
        String[] splitR = body.split("\n\n");
        String replaceFirst = splitR[splitR.length - 2].replaceFirst("data: ", "");
        String res = JSON.parseObject(replaceFirst).getJSONObject("message").getJSONObject("content").getJSONArray("parts").getString(0);
        System.out.println(res);
    }
}

二、通过hutool实现调用chatGPT

1.在项目中引入依赖

        <!-- hutool -->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.10</version>
        </dependency>
        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.7</version>
        </dependency>

2.测试类

/**
 * 使用hutool调用chatGPT
 */
public class App {
    public static void main(String[] args) throws Exception {
        //通过登录chatgpt截取页面的token信息
        String au = "token";
        String sendMsg = "发送的消息";
        String user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36 Edg/108.0.1462.42";
        String json = "{\"action\":\"next\",\"messages\":[{\"id\":\"adfe88e4-f92f-4f21-9145-e227068ce9ca\",\"role\":\"user\",\"content\":{\"content_type\":\"text\",\"parts\":[\""+sendMsg+"\"]}}],\"parent_message_id\":\"2a557b41-7e53-4fc4-a28f-cfb0c67b29a7\",\"model\":\"text-davinci-002-render\"}";
        String body = HttpRequest.post("https://chat.openai.com/backend-api/conversation")
                .header("authorization", au)
                .header("user-agent", user_agent)
                .body(StrFormatter.format(json)).execute().body();
        String[] splitR = body.split("\n\n");
        String  replaceFirst= splitR[splitR.length - 2].replaceFirst("data: ", "");
        String res = JSON.parseObject(replaceFirst).getJSONObject("message").getJSONObject("content").getJSONArray("parts").getString(0);
        System.out.println(res);
    }
}

到此这篇关于调用chatGPT实现代码机器人的文章就介绍到这了,更多相关chatGPT代码机器人内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • vscode使用chatGPT 的方法

    目录 vscode使用chatGPT 一.下载chatPGT 二.使用 三.现在来看看它写的怎样 vscode使用chatGPT 一.下载chatPGT 在拓展中找到chatGPT,我这里下载的是中文版 二.使用 1.使用快捷键 ctrl+shift+p进行查找 chatGPT 2.点击请输入问题 3.输入你的问题,回车,这样它就会进行代码的编写 4.等一会儿就会给你结果啦 三.现在来看看它写的怎样 生成的代码 import smtplib # 设置发送方的邮件服务器和端口号 smtp_serv

  • 如何调用chatGPT实现代码机器人

    目录 获取chatGPT登录Token信息 一.通过Httpclient实现调用chatGPT 二.通过hutool实现调用chatGPT 最近chatGPT也是非常的火爆,相信大家都看到了,现在提供一种Java调用chatGPT的方法,我们主要通过两个工具来实现,一就是httpclient,二就是hutool,你觉得那种好理解你就用那种即可! 获取chatGPT登录Token信息 1.需要拥有chatGPT账号,进入官网需要科学上网自行解决! 官网:ChatGPT 注册需使用国外手机号! 视频

  • Java调用ChatGPT的实现代码

    目录 Java调用ChatGPT的小插件 1. ChatGPT账号准备 2. 配置阶段 2.1 依赖引入 2.2 配置application.yml文件 2.3 @EnableChatGPT注解 3. 使用 4. 测试 Java调用ChatGPT的小插件 1. ChatGPT账号准备 很多博文有介绍怎么获取账号,具体的可自行搜索.准备好ChatGPT帐号之后打开openai的官网去创建API KEYS,链接:https://platform.openai.com/account/api-keys

  • 半小时实现基于ChatGPT搭建微信机器人

    目录 ChatGPT刷屏了 流程 注册 运行机器人程序 思考 ChatGPT刷屏了 相信大家最近被 ChatGPT 刷屏了,其实在差不多一个月前就火过一次,不会那会好像只在程序员的圈子里面火起来了,并没有被大众认知到,不知道最近是因为什么又火起来了,而且这次搞的人尽皆知. 想着这么火的 AI 完全可以好好玩一玩呀,于是就尝试着将 ChatGPT 接入到了个人微信中,实现在微信中调戏 AI. 先看几个聊天截图 还可以拉入到一个群,进行群聊,可以看到 ChatGPT 的训练数据相当还是比较旧的,有些

  • PHP异步调用socket实现代码

    PHP异步调用实现方式 浏览器和服务器之间只一种面向无连接的HTTP协议进行通讯的,面向无连接的程序的特点是客户端请求服务端,服务端根据请求输出相应的程序,不能保持持久连接. 这样就出现了一个问题,一个客户端的相应服务端可能执行1秒也有可能执行1分钟,这样浏览器就会一直处于等待状态,如果程序执行缓慢,用户可能就没耐心关掉了浏览器. 而有的时候我们不需要关心程序执行的结果,没有必要这样浪费时间和耐心等待,那我们就要想出办法让程序不收等待在后台静默执行. 比如现在有一个场景,给1000个用户发送一封

  • jQuery Ajax 全局调用封装实例代码详解

    有一种情况:全站都要用异步方式来调用 数据,提交数据,那么你每次操作 都会要$.ajax({.....}) 写重复的方法 和代码,冗余太大, 也浪费时间,虽说你有代码自动提示补全,但真的不优雅,身为前端极客,是不能允许的! [嘿嘿!虽说我现在基本不用jquery了 ,不过异步概念 是永远要用的,就帮助下新人] jQuery Ajax通用js封装 第一步:引入jQuery库 <script type="text/javascript" src="/js/jquery.mi

  • JNI实现最简单的JAVA调用C/C++代码

    JNI,是Java Native Interface的简称,中文是"Java本地调用".通过这种技术可以做到以下两点: Java程序中的函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数. Native程序中的函数可以调用Java层的函数,也就是说在C/C++程序中可以调用Java的函数. 本篇博客带给童鞋们以下内容,学习内容来自(传智播客),经由小巫总结整理: javah工具的用法 按照C/C++头文件来编写C/C++源文件 将C/C++源文件编译成动态

  • 如何通过函数指针调用函数(实现代码)

    说明:指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数. 一个函数在编译的时候会被分配给一个入口地址.这个函数入口地址称为函数的指针.可以用一个指针变量指向函数,然后通过该指针变量调用此函数. 定义指向函数的指针变量的方法是: 复制代码 代码如下: int (*p) (int ,int ); int[指针变量p指向的函数的类型] (*p)[p是指向函数的指针变量] ( int,int )[p所指向的形参类型]; 与函数的原型进行比较 复制

  • 用python生成与调用cntk模型代码演示方法

    由于一些原因,视频录制要告一段落了.再写一篇关于cntk的文章分享出来吧.我也很想将这个事情进行下去.以后如果条件允许还会接着做. cntk2.0框架生成的模型才可以支持python.1.0不支持. python可以导入cntk.exe生成的框架,也可以导入python调用cntk生成的框架.举两个例子: 1 .导入cntk.exe生成的框架. from cntk.ops.functions import load_model from PIL import Image import numpy

  • 微信小程序methods中定义的方法互相调用的实例代码

    当调用test2时: methods = { test(age){ console.log('test', age); }, test2(){ console.log(this.methods); this.methods.test('222'); console.log('test2') } }; 结果: {test: f, test2: f} test 222 test2 总结 以上所述是小编给大家介绍的微信小程序methods中定义的方法互相调用的实例代码,希望对大家有所帮助,如果大家有任

  • spring boot使用WebClient调用HTTP服务代码示例

    这篇文章主要介绍了spring boot使用WebClient调用HTTP服务代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 WebClient的请求模式属于异步非阻塞,能够以少量固定的线程处理高并发的HTTP请求 WebClient是Spring WebFlux模块提供的一个非阻塞的基于响应式编程的进行Http请求的客户端工具,从Spring5.0开始提供 在Spring Boot应用中 1.添加Spring WebFlux依赖 <d

随机推荐