参考:https://github.com/PlexPt/chatgpt-java

一、接口调用

  • posman 调用正常

  • java 调用报错:ConnectException: Connection timed out: connect

cn.hutool.core.io.IORuntimeException: ConnectException: Connection timed out: connectat cn.hutool.http.HttpRequest.send(HttpRequest.java:1328)at cn.hutool.http.HttpRequest.doExecute(HttpRequest.java:1176)at cn.hutool.http.HttpRequest.execute(HttpRequest.java:1050)at cn.hutool.http.HttpRequest.execute(HttpRequest.java:1026)at com.feishu.chatgpt.controller.ChatGptDemo.completions(ChatGptDemo.java:43)at com.feishu.chatgpt.controller.ChatGptDemo.main(ChatGptDemo.java:14)
Caused by: java.net.ConnectException: Connection timed out: connectat java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)at java.net.Socket.connect(Socket.java:606)at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:303)at sun.net.NetworkClient.doConnect(NetworkClient.java:175)at sun.net.www.http.HttpClient.openServer(HttpClient.java:499)at sun.net.www.http.HttpClient.openServer(HttpClient.java:594)at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:263)at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:366)at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:207)at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1167)at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1061)at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:193)at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1354)at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1329)at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:264)at cn.hutool.http.HttpConnection.getOutputStream(HttpConnection.java:458)at cn.hutool.http.HttpRequest.sendFormUrlEncoded(HttpRequest.java:1351)at cn.hutool.http.HttpRequest.send(HttpRequest.java:1320)... 5 moreProcess finished with exit code 0

二、解决

  • 在代码中设置 Proxy proxy = Proxys.http("127.0.0.1", 7890);

三、示例代码

  • maven 坐标
        <dependency><groupId>com.github.plexpt</groupId><artifactId>chatgpt</artifactId><version>4.0.5</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-http</artifactId><version>5.8.18</version></dependency>
  • 详细代码
import cn.hutool.http.*;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import com.plexpt.chatgpt.util.Proxys;import java.net.Proxy;
import java.util.HashMap;
import java.util.Map;public class ChatGptDemo {public static void main(String[] args) {completions();chat();}/*** v1/completions 下的模型调用方法*/public static void completions(){Map<String,String> headers = new HashMap<String,String>();headers.put("Content-Type","application/json");JSONObject json = new JSONObject();//选择模型json.set("model","text-davinci-003");//添加我们需要输入的内容json.set("prompt","推荐一部电影");json.set("temperature",0);json.set("max_tokens",2048);json.set("top_p",1);json.set("frequency_penalty",0.0);json.set("presence_penalty",0.0);try{Proxy proxy = Proxys.http("127.0.0.1", 7890); // 端口号不知道怎么来的私聊,说出来审核不通过HttpResponse response = HttpRequest.post("https://api.openai.com/v1/completions") // text-davinci-003.headerMap(headers, false).bearerAuth("sk-MMiKbgBZMbGIwPkgc6IIT3*******************") // 填写自己的 chatgpt API Keys.setProxy(proxy).body(String.valueOf(json)).timeout(600000).execute();System.out.println(response.body());}catch (Exception e){e.printStackTrace();}}/*** v1/chat/completions 下的模型调用方法*/public static void chat(){Map<String,String> headers = new HashMap<String,String>();headers.put("Content-Type","application/json");JSONObject json = new JSONObject();//选择模型json.set("model","gpt-3.5-turbo");//添加我们需要输入的内容JSONObject msg = new JSONObject();msg.set("role", "user");msg.set("content", "推荐1本余华的书");JSONArray array = new JSONArray();array.add(msg);json.set("messages", array);json.set("temperature",0);json.set("max_tokens",2048);json.set("top_p",1);json.set("frequency_penalty",0.0);json.set("presence_penalty",0.0);try{Proxy proxy = Proxys.http("127.0.0.1", 7890);  // 端口号不知道怎么来的私聊,说出来审核不通过HttpResponse response = HttpRequest.post("https://api.openai.com/v1/chat/completions") //gpt-3.5-turbo.headerMap(headers, false).bearerAuth("sk-MMiKbgBZMbGIwPkgc6IIT3*******************") // 填写自己的 chatgpt API Keys.setProxy(proxy).body(String.valueOf(json)).timeout(600000).execute();System.out.println(response.body());}catch (Exception e){e.printStackTrace();}}
}
  • 运行结果

解决用 posman 调用 openai API 正常,用java代码调用超时问题相关推荐

  1. 用Python调用OpenAI API进行文本创作

    文章目录 一.前言 二.使用教程 2.1获取API密钥 2.2 连接API 2.3 文本生成 三.创作示例 3.1 诗歌创作 3.2 推荐书单 3.3 超级百度 四.总结 一.前言 本文将教大家用py ...

  2. 用Python调用OpenAI API做有趣的事

    获取 API KEY 首先需要 可以开全局的梯子,选择日本或韩国节点,可以通过 ipinfo 检查当前 IP 地址是否为日本或韩国地区,然后访问 OpenAI 网站注册账号并完成认证. 如果自己完成账 ...

  3. Centos7 ceph集群安装 cephfs客户端挂载 java代码调用

    Centos7 ceph集群安装 cephfs客户端挂载 java代码调用 ceph简介(http://docs.ceph.org.cn/ 官方文档) ceph分为ceph monitor,ceph ...

  4. 如何用java代码调用ffmpeg进行视频转码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lushizhuo9655/articl ...

  5. Java代码调用PHP代码

    JAVA代码调用PHP程序 import java.io.IOException; import java.io.InputStream; import java.io.InputStreamRead ...

  6. Python调用OpenAI API示例

    使用pip命令导入OpenAI 库: pip install openai 连接API 前提:你需要要获取到API_key,自行申请. import openai openai.api_key = & ...

  7. 解决:com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused:

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 场景:启动一个需要注册到 eureka 注册中心的服务 seeParam  报错: com.s ...

  8. mysql调用tag标签_dedeCMS使用SQL代码调用指定栏目tag标签教程

    这篇文章主要为大家详细介绍了dedeCMS使用SQL代码调用指定栏目tag标签教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 我们在使用织梦dedecms建 ...

  9. java代码调用python_Java调用Python

    常见的java调用python脚本方式有两种,下面给大家介绍一下: 通过Jython.jar提供的类库实现 通过Runtime.getRuntime()开启进程来执行脚本文件 这两种方法我都尝试过,个 ...

  10. java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu

    最近陆续用python写了很多文件处理脚本,虽然功能都比较简单 ,但还是感觉到python对文件处理的简洁高效 ,越发觉得java的语法相当的繁琐~ 接到个需求处理ftp数据接口 .所以想把pytho ...

最新文章

  1. sqlserver结果集转为字符串
  2. swagger 怎么去掉get delete_自学 Java 怎么入门?
  3. 第一次使用最新开发的在线编辑器讲课记录笔记
  4. P1458 顺序的分数 Ordered Fractions(有技巧的枚举)+C++类封装=精简代码
  5. 负载均衡很难?看完这篇全懂了
  6. linux at java,Linux-Tutorial/Java-bin.md at master · linsanityHuang/Linux-Tutorial · GitHub
  7. 石头机器人红灯快闪_机器人集体“快闪”活动爆红网络 “我是AI”与您相约智能新时代...
  8. 企业资源计划软件 业务知识点汇编整理
  9. python中pandas计数_python – Pandas:根据条件计数进行分组
  10. linux java 栈_JVM 与 Linux 的内存关系详解
  11. KISSsoft03-2018F SP6,计算和重新分析机器零件
  12. android购物车计数器,Axure教程:计数器的实战应用场景 —— 商品购件数
  13. 服务器虚拟化的几种方式,服务器虚拟化究竟应当选择哪种方式?
  14. 软件测试运维工程师面试题,运维工程师笔试题目
  15. MGTV提取Ticket-保姆级教程
  16. 小米商城前端页面(静态)
  17. 云数据库polarDB搭建流程!超详细图文教程。秒杀mysql!
  18. Android程序的入口
  19. win7系统屏幕不休眠,怎么设置
  20. html格式错误检测,HTML格式错误

热门文章

  1. {转}C#使用微软语言包来获取中文汉字的拼音、拼音首字母、中文繁体
  2. 生活就像个洋葱,一层一层剥开它,总有一层让你流泪
  3. PAT——1121 Damn Single 甲级
  4. CSS的三种样式:内联式,嵌入式,外部式以及他们的优先级
  5. SAP MM 因物料有负库存导致MMPV开账期失败问题之对策
  6. 怎样提高神马推广转换效率?
  7. 02-CSS基础与进阶-day5_2018-09-03-21-41-57
  8. ifconfig查看网络丢包
  9. 设置U8g2库函数字体的方法
  10. 7种分析问题的思维方法