解决用 posman 调用 openai API 正常,用java代码调用超时问题
参考: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代码调用超时问题相关推荐
- 用Python调用OpenAI API进行文本创作
文章目录 一.前言 二.使用教程 2.1获取API密钥 2.2 连接API 2.3 文本生成 三.创作示例 3.1 诗歌创作 3.2 推荐书单 3.3 超级百度 四.总结 一.前言 本文将教大家用py ...
- 用Python调用OpenAI API做有趣的事
获取 API KEY 首先需要 可以开全局的梯子,选择日本或韩国节点,可以通过 ipinfo 检查当前 IP 地址是否为日本或韩国地区,然后访问 OpenAI 网站注册账号并完成认证. 如果自己完成账 ...
- Centos7 ceph集群安装 cephfs客户端挂载 java代码调用
Centos7 ceph集群安装 cephfs客户端挂载 java代码调用 ceph简介(http://docs.ceph.org.cn/ 官方文档) ceph分为ceph monitor,ceph ...
- 如何用java代码调用ffmpeg进行视频转码
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/lushizhuo9655/articl ...
- Java代码调用PHP代码
JAVA代码调用PHP程序 import java.io.IOException; import java.io.InputStream; import java.io.InputStreamRead ...
- Python调用OpenAI API示例
使用pip命令导入OpenAI 库: pip install openai 连接API 前提:你需要要获取到API_key,自行申请. import openai openai.api_key = & ...
- 解决:com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused:
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 场景:启动一个需要注册到 eureka 注册中心的服务 seeParam 报错: com.s ...
- mysql调用tag标签_dedeCMS使用SQL代码调用指定栏目tag标签教程
这篇文章主要为大家详细介绍了dedeCMS使用SQL代码调用指定栏目tag标签教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 我们在使用织梦dedecms建 ...
- java代码调用python_Java调用Python
常见的java调用python脚本方式有两种,下面给大家介绍一下: 通过Jython.jar提供的类库实现 通过Runtime.getRuntime()开启进程来执行脚本文件 这两种方法我都尝试过,个 ...
- java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu
最近陆续用python写了很多文件处理脚本,虽然功能都比较简单 ,但还是感觉到python对文件处理的简洁高效 ,越发觉得java的语法相当的繁琐~ 接到个需求处理ftp数据接口 .所以想把pytho ...
最新文章
- sqlserver结果集转为字符串
- swagger 怎么去掉get delete_自学 Java 怎么入门?
- 第一次使用最新开发的在线编辑器讲课记录笔记
- P1458 顺序的分数 Ordered Fractions(有技巧的枚举)+C++类封装=精简代码
- 负载均衡很难?看完这篇全懂了
- linux at java,Linux-Tutorial/Java-bin.md at master · linsanityHuang/Linux-Tutorial · GitHub
- 石头机器人红灯快闪_机器人集体“快闪”活动爆红网络 “我是AI”与您相约智能新时代...
- 企业资源计划软件 业务知识点汇编整理
- python中pandas计数_python – Pandas:根据条件计数进行分组
- linux java 栈_JVM 与 Linux 的内存关系详解
- KISSsoft03-2018F SP6,计算和重新分析机器零件
- android购物车计数器,Axure教程:计数器的实战应用场景 —— 商品购件数
- 服务器虚拟化的几种方式,服务器虚拟化究竟应当选择哪种方式?
- 软件测试运维工程师面试题,运维工程师笔试题目
- MGTV提取Ticket-保姆级教程
- 小米商城前端页面(静态)
- 云数据库polarDB搭建流程!超详细图文教程。秒杀mysql!
- Android程序的入口
- win7系统屏幕不休眠,怎么设置
- html格式错误检测,HTML格式错误