基于selenium调用本地浏览器操作ChatGPT的API
交流群692216254
Java中只需要调用实例即可自动对ChatGPT的回答进行捕捉并输出
不会因为CF导致无法使用
支持自动重试功能,续接上一次对话,使用现有页面
ChatGPT chatGPT=new ChatGPT();
File file=chatGPT.getRe("用java在编写一个抽取1到1000中随机一个数并输出");//file即为回答截图- 将src源码文件夹加入项目
- 添加库
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.7.1</version>
</dependency>
<properties>
<selenium.version>4.7.1</selenium.version>
</properties>
-
启动一个Edge浏览器并且已启用远程调试功能"--remote-debugging-port=9222",端口号需与代码中的保持同步
- 关闭 Microsoft Edge 的所有实例 (注意:检查任务管理器中是否残留edge的后台进程,如果有请结束,这是由于edge的启动增强功能导致的)
- 使用远程调试端口启动 Microsoft Edge。
msedge.exe --remote-debugging-port=9222 - 检测是否成功开启远程调试
- 在浏览器中输入
edge://version/ - 检查命令行一栏是否有如下内容
--remote-debugging-port=9222
如有这表示启动成功,可以继续下面的步骤,否则重试3步骤
- 在浏览器中输入
-
创建实体
ChatGPT chatGPT=new ChatGPT();- 查询实例是否正常工作
ChatGPT chatGPT=new ChatGPT();
chatGPT.getFlag()//ture为成功- 使用API
ChatGPT chatGPT=new ChatGPT();
File file=chatGPT.getRe("你的内容");
//PS:你可以使用如下代码将File转写为文件 需要引入commons-io包
File outfile = new File("image.png");
try {
FileUtils.copyFile(file, outfile);
} catch (IOException e) {
return null;
}- 浏览器不会自动开启,但在Main提供了示例
- 在创建示例的时候会自动查询浏览器的所有标签页来自动选择ChatGPT的页面,如果没有会自动打开ChatGPT的页面,可能需要手动完成验证和登录操作
- 使用
reload()函数可以重新加载页面
Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: unknown error: cannot connect to microsoft edge at 127.0.0.1:9222
这是由于浏览器的远程调试没有成功导致的,请重新尝试3步骤
这不是官方的 OpenAI 产品。仅是个人项目,与 OpenAI 没有任何关联