在国内用Java代理调用OpenAI的ChatGPT的API接口
第一步:一个科学友好的上网工具,开启全局代理;
第二步:一个注册好的ChatGPT账号,且在个人设置里面生成apiKey:https://platform.openai.com/account/api-keys;
第三步:在发起HTTP请求(openConnection() 或者 openStream())之前,加上以下2行代码:
1 System.setProperty("proxyHost", PROXY_HOST); // PROXY_HOST:代理的IP地址
2 System.setProperty("proxyPort", PROXY_PORT); // PROXY_PORT:代理的端口号
代理的IP地址、代理的端口号:

第四步:贴上全部代码:
1 package com.xiaobing.springcloud.util;
2
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStreamReader;
6 import java.net.HttpURLConnection;
7 import java.net.URL;
8
9 public class OpenAIGPT3Example {
10
11 public static void main(String[] args) throws IOException {
12 System.setProperty("proxyHost", "127.0.0.1"); // 代理的IP地址
13 System.setProperty("proxyPort", "7890"); // 代理的端口号
14
15 String apiEndpoint = "https://api.openai.com/v1/engines/text-davinci-003/completions";
16 String apiKey = "sk-**********"; // 这里是第二步生成的apiKey
17 String prompt = "'你在哪里?'翻译成英文";
18 int maxTokens = 150;
19
20 URL url = new URL(apiEndpoint);
21 HttpURLConnection con = (HttpURLConnection) url.openConnection();
22 con.setRequestMethod("POST");
23
24 // 设置HTTP请求头
25 con.setRequestProperty("Content-Type", "application/json");
26 con.setRequestProperty("Authorization", "Bearer " + apiKey);
27
28 // 设置HTTP请求体
29 String requestBody = "{\"prompt\": \"" + prompt + "\", \"max_tokens\": " + maxTokens + "}";
30 con.setDoOutput(true);
31 con.getOutputStream().write(requestBody.getBytes());
32
33 // 发送HTTP请求并读取响应
34 int responseCode = con.getResponseCode();
35 BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
36 String response = "";
37 String inputLine;
38 while ((inputLine = in.readLine()) != null) {
39 response += inputLine;
40 }
41 in.close();
42
43 // 处理响应
44 System.out.println("Response code: " + responseCode);
45 System.out.println("Response body: " + response);
46 }
47
48 }
第五步:执行代码响应结果:
1 Response code: 200
2 Response body: {"id":"cmpl-8G0ApukM5c0oCMdKs9hVk8b4IYboY","object":"text_completion","created":1684048271,"model":"text-davinci-003","choices":[{"text":":\n\nWhere are you?","index":0,"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":26,"completion_tokens":9,"total_tokens":35}}
设置代理参考链接:https://www.cnblogs.com/memory4young/p/java-proxy-property.html
在国内用Java代理调用OpenAI的ChatGPT的API接口的更多相关文章
- 【python】调用sm.ms图床api接口,实现上传图片并返回url
图床简介 sm.ms网站提供免费的图床服务.单图上传大小限制5MB,每次最多上传10张,支持多种图片链接格式和api接口调用. 获取令牌 注册账号并登录,点击User-Dashboard 点击API ...
- Java 使用阿里云短信的API接口
亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...
- Java动态调用脚本语言Groovy
Java动态调用脚本语言Groovy 2019-05-15 目录 0. pom.xml添加依赖1. 使用GroovyShell计算表达式2. 使用GroovyScriptEngine脚本引擎加载Gro ...
- WebApi系列~通过HttpClient来调用Web Api接口~续~实体参数的传递
回到目录 上一讲中介绍了使用HttpClient如何去调用一个标准的Web Api接口,并且我们知道了Post,Put方法只能有一个FromBody参数,再有多个参数时,上讲提到,需要将它封装成一个对 ...
- 没想到吧,Java开发 API接口可以不用写 Controller了
本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便 ...
- Java代理(jdk静态代理、动态代理和cglib动态代理)
一.代理是Java常用的设计模式,代理类通过调用被代理类的相关方法,并对相关方法进行增强.加入一些非业务性代码,比如事务.日志.报警发邮件等操作. 二.jdk静态代理 1.业务接口 /** * 业务接 ...
- [z]Java代理(jdk静态代理、动态代理和cglib动态代理)
一.代理是Java常用的设计模式,代理类通过调用被代理类的相关方法,并对相关方法进行增强.加入一些非业务性代码,比如事务.日志.报警发邮件等操作. 二.jdk静态代理 1.业务接口 1 2 3 4 5 ...
- Java代理模式
java代理模式及动态代理类 1. 代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目 ...
- java 代理的三种实现方式
Java 代理模式有如下几种实现方式: 1.静态代理. 2.JDK动态代理. 3.CGLIB动态代理. 示例,有一个打招呼的接口.分别有两个实现,说hello,和握手.代码如下. 接口: public ...
- java中调用dll文件的两种方法
一中是用JNA方法,另外是用JNative方法,两种都是转载来的, JNA地址:http://blog.csdn.net/shendl/article/details/3589676 JNativ ...
随机推荐
- 从零开始学习 Java 系列之你为什么要学 Java?
全文大约[4000]字,不说废话,只讲可以让你学到技术.明白原理的纯干货! 在正式开始本系列教程之前,壹哥希望先用一篇文章,来扫清你学习前的认知障碍.请坚定自己的学习信念,不要半途而废浪费时间,壹哥希 ...
- Windows10 穿越火线手感和Windows7不一样
如果是穿越火线或者其他FPS玩家,应该会感觉Win10和WIin7两者手感会有一定的区别.为什么升级了系统变菜了?心理作用?其实确实和系统有关系哦.我从Windows7升级到Windows10玩穿越火 ...
- 2020中国最好大学排名.py(亲测有效)
import requests from bs4 import BeautifulSoup import bs4 def getHTMLText(url): try: r = requests.get ...
- flutter ui---->一些类QQ的实现
整理一下比较有意思的类QQ的UI实现.Nothing that has meaning is easy. Easy doesn't enter into grown-up life. darken t ...
- Oracle_表空间
Oracle 表空间 在执行具体的操作之前,由于Oracle不允许删除现有临时表空间,所以在删除现有临时表空间时要终止现有的实时会话. 查询Oracle表空间名称,表空间物理文件路径 查询临时表空间: ...
- 使用HTMLform表单操作腾讯云DNS控制台
在使用中经常需要修改DNS记录,或者查询.删除操作.每次都得登录腾讯云控制台,腾讯云比较鸡肋的一点就是需要进行微信扫码登录,每次操作太不方便. 可以使用api接口进行操作腾讯云上的产品.所以使用HTM ...
- day3 函数的定义和调用,练习编写简单的程序(记录3)
0331.h #ifndef _0331_H #define _0331_H /************************************************************ ...
- [Linux]常用命令之【du/fdisk/df/ls】#磁盘管理/文件管理#
本文的经典应用场景: 1.查找占用磁盘存储空间最大的目录/文件 2.关于[磁盘分区]的相关概念和实操,详见另一博文:[Linux]磁盘分区 - 博客园/千千寰宇 1 fdisk fdisk := &q ...
- CSS6大种选择器
一.常用的css基本选择器(4种) 1.标签选择器 结构: 标签名{css属性名:属性值}作用:通过标签名,找到页面中所有的这类标签,设置样式 注意:1.标签选择器选择的是一类标签,而不是单独的一个2 ...
- 安装kafka和zookeeper以及使用
1.安装zookeeper zookeeper下载:http://zookeeper.apache.org/releases.html 从3.5.5开始,带有bin名称的包才是要下载的包可以直接使用 ...