如何实现chatGPT批量问答,不用token
一、背景
因为需要批量提取一本教材里的概念做成知识图谱,想用chatGPT做概念提取。
- 调用api?别想了… 免费帐户的api慢得一批
- 于是想用模仿人类交互的方法来调用,本来想用pyautogui的,但是主要是与浏览器交互,还是用selenium比较方便。但看了下现在公开出来的selenium的方法代码,都不太能用(可能是网站更新?),所以还不如自己手撸一个。
下面代码使用的python库是 selenium(用来模拟浏览器浏览、输入、点击、读取等行为)、undetected_chromedriver(用来规避selenium默认的浏览器驱动会导致的跳不过人机识别的问题)
二、步骤
1. 确保库安装好了
执行下面代码安装
pip install selenium
pip install undetected_chromedriver
2. 测试能否使用浏览器驱动
执行下面代码,后台应该可以自动打开浏览器,并跳转到openai界面。(该方法虽然不需要用token,但需要进入chatGPT界面,它只是模拟人重复的与chatGPT交互)
import time # 用来之后做等待
import undetected_chromedriver as uc # 不会被监测的浏览器驱动from selenium.webdriver.remote.webdriver import By
from selenium import webdriver
from selenium.webdriver.common.keys import Keys# 浏览器打开openai界面
options = uc.ChromeOptions()
options.headless = False
driver = uc.Chrome(options=options,version_main=117)
driver.get("https://chat.openai.com")
3. 准备input.txt
准备好我们想要问的问题,下面是我自己写的一个输入测试文档,在不同的问题之间,用--- 进行分隔。

4. 执行第二段代码,开启自动循环
## ------------- 1. 需要解析的文档路径 (第二步:配置好input文档后,执行下面所有代码)-------------
input_file = r'input.txt'# 0.1. 用utf-8的编码读取上述md文件
try:# 使用UTF-8编码打开文件with open(input_file, 'r', encoding='utf-8') as file:md_content = file.read()
except FileNotFoundError:print(f"文件 '{input_file}' 未找到.")
except Exception as e:print(f"发生错误: {str(e)}")# 0.2 按照\n---\n分割文本,得到文本列表
text_list = md_content.split("\n---\n")
response_list = []
talk_num = 3 # 对话次数,初始化为3(经验值)
for a_text in text_list:result = extract_small(a_text, driver, talk_num)response = result[0]talk_num = result[1] # 会迭代增加。#response_list.append(response) # 将回复添加到列表# 0.3 重新构造output输出
output_str = ''
for i in range(len(text_list)):output_str += text_list[i] + '\n'output_str += '🤖:' + response_list[i]output_str += '\n---\n'
# 讲上面构造的output_str输出到文件里面
# 将output_str写入文件
output_file = r'output.txt' # 定义输出文件的路径和名称
try:with open(output_file, 'w', encoding='utf-8') as file:file.write(output_str)print(f"已将结果写入文件 '{output_file}'")
except Exception as e:print(f"写入文件时发生错误: {str(e)}")
三、源码使用说明
extract_small() 函数还包括了识别chatGPT有没有回答完成的功能,有效避免睡眠固定时间导致的时间浪费问题。extract_small() 已经放在源码中了。感兴趣的同学可以去看源码。>>> 源码链接
源码使用方法
-
解压压缩包;在Pycharm打开这个文件夹

-
执行 pip install undetected_chromedriver 和 pip install selenium

-
执行第1到63行代码,后台会自动打开浏览器,需要手动登录账号和点掉系统的弹窗;

-
按照模板准备好input.txt文件后,执行剩下的代码;可以看到程序自动执行了。

效果视频展示:
3分钟,教你做个GPT批量问答还不用token | 有源码
总结
该程序实现了无需token批量与chatGPT交互的方法,一共分为两个步骤:打开auto_selenium_txt.py
先运行第一步的代码,执行之后会自动打开浏览器,需要手动配置好浏览器界面;
再运行的第二步代码,配置好文件夹中的input文档,执行之后会开始自动批量问答。结束之后会保存的output文档
相关文章:
如何实现chatGPT批量问答,不用token
一、背景 因为需要批量提取一本教材里的概念做成知识图谱,想用chatGPT做概念提取。 调用api?别想了… 免费帐户的api慢得一批于是想用模仿人类交互的方法来调用,本来想用pyautogui的,但是主要是与浏览器交互,还是用s…...
Arduino驱动LIS2DH三轴加速度传感器(惯性测量传感器篇)
目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 LIS2DH加速度计相对传统的ADXL345在稳定性以及功耗上都有一定的优化,低功耗模式下仅为2μA(普通模式11μA),并且最高支持5.3KHz输出频率,拥有2g/4g/8g/16g四档可选量程&...
B 开组会(可持久线段树+树剖) 武汉大学2023年新生程序设计竞赛(同步赛)
其实题目就是每次询问一个节点 在这个节点的基础上往下继续遍历t的深度,在这个遍历的过程中找一个最大值就行了 其实这个题目数据非常水,直接暴力就可以过了 下面是别人过的代码 #include<bits/stdc.h> using namespace std; const int mxn5e…...
vue的axios方法
Axios是Vue.js推荐使用的一个基于Promise的HTTP库,用于浏览器和Node.js中发送HTTP请求。它可以让我们更容易地与后端进行数据交互。 以下是Axios的基本用法: 安装Axios 在Vue项目中,可以使用npm来安装Axios: npm install axio…...
gitlab docker部署,备份,恢复。附踩坑记录
本次安装在CentOS7下进行 1、安装yum 检查是否已经安装yum yum --version如果未安装 sudo yum install -y yum-utils添加镜像源: 国外镜像源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo阿里镜像源&am…...
2023品牌新媒体矩阵营销洞察报告:流量内卷下,如何寻找增长新引擎?
近年来,随着移动互联网的发展渗透,短视频、直播的兴起,新消费/新零售、兴趣电商/社交电商等的驱动下,布局线上渠道已成为绝大多数品牌的必然选择。 2022年,越来越多的品牌加入到自运营、自播的行列中,并且从…...
HarmonyOS/OpenHarmony原生应用-ArkTS万能卡片组件Toggle
组件提供勾选框样式、状态按钮样式及开关样式。该组件从API Version 8开始支持。 仅当ToggleType为Button时可包含子组件。 一、接口 Toggle(options: { type: ToggleType, isOn?: boolean }) 从API version 9开始,该接口支持在ArkTS卡片中使用。 参数: Toggle…...
redis,mongoDB,mysql,Elasticsearch区别
Redis: Redis是一种高性能键值存储数据库,基于内存操作,支持数据持久化,支持数据类型丰富灵活,如字符串、哈希、列表、集合、有序集合等。Redis还提供了订阅/发布、事务、Lua脚本、主从同步等功能,适用于访…...
什么是软件测试架构师?
软件测试架构师是一个新职位,但确实是一个非常必要的职位,主要有几点: 1. 根据V模型、广义测试概念等,(静态)测试的越早,发现缺陷越早,越有利于产品的质量、加快产品开发周期、降低企业的成本。更重要预防…...
安科瑞ARB5系列弧光保护装置,智能电弧光保护,保障用电安全
安科瑞虞佳豪壹捌柒陆壹伍玖玖零玖叁 什么是弧光 电弧是放电过程中发生的一种现象,当两点之间的电压超过其工频绝缘强度极限时就会发生。当适当的条件出现时,一个携带着电流的等离子产生,直到电源侧的保护设备断开才会消失。空气在通常条件…...
查找算法——二分查找法
一、介绍 首先需要将查找的数据排好序,再进行二分查找法来进行查找,二分查找是将数据范围不断分割为两份,不断比较中间值与待查找值的大小来确定其在哪个区间范围的一种方法。例如:在一组数据(1,4ÿ…...
大数据——Spark Streaming
是什么 Spark Streaming是一个可扩展、高吞吐、具有容错性的流式计算框架。 之前我们接触的spark-core和spark-sql都是离线批处理任务,每天定时处理数据,对于数据的实时性要求不高,一般都是T1的。但在企业任务中存在很多的实时性的任务需求&…...
graphviz 绘制二叉树
代码 digraph BalancedBinaryTree {node [fontname"Arial", shapecircle, stylefilled, color"#ffffff", fillcolor"#0077be", fontsize12, width0.7, height0.7];edge [fontname"Arial", fontsize10, color"#333333", arr…...
STM32 PA15/JTDI 用作普通IO,烧录口不能使用问题解决
我们一般用SW调试接口 所以DEBUG选择Serial Wire 这样PA15可以用作普通IO使用。 工程中默认加上: PA13(JTMS/SWDIO).ModeSerial_Wire PA13(JTMS/SWDIO).SignalDEBUG_JTMS-SWDIO PA14(JTCK/SWCLK).ModeSerial_Wire PA14(JTCK/SWCLK).SignalDEBUG_JTCK-SWCLK...
【ARM Coresight 系列文章 9 -- ETM 介绍 1】
文章目录 ARM Coresight ETM 介绍1.1.1 ARM Coresight ETM 版本介绍1.1.2 ARM Coresight 常见术语1.2 ARM Coresight ETM 常用寄存器介绍1.2.1 TRCVIIECTLR(ViewInst Include-Exclude Control Register)1.2.2 TRCVISSCTLR(ViewInst Start/Stop Processing Element Comparator C…...
设计模式 - 中介者模式
目录 一. 前言 二. 实现 三. 优缺点 一. 前言 中介者模式又叫调停模式,定义一个中介角色来封装一系列对象之间的交互,使原有对象之间的耦合松散,且可以独立地改变它们之间的交互。 中介者模式可以使对象之间的关系数量急剧减少࿰…...
HttpServletRequest对象与RequestDispatcher对象
一、HttpServletRequest对象 1.介绍 在Servlet API中,定义了一个HttpServletRequest接口,它继承自ServletRequest接口,专门用来封装HTTP请求消息。由于HTTP请求消息分为请求行、请求消息头和请求消息体三部分,因此,在…...
Spring Boot启动流程
加载启动类:加了SpringBootApplication的启动类的main 方法中,通过运行SpringApplication.run()方法启动 【SpringBootApplication是由EnableAutoConfiguration(导入自动配置AutoConfigurationSelector类从而加载加了Configuration的配置&am…...
ARM day5
三盏灯流水 .text .global _start _start: 1.LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0X1<<4)STR R1,[R0] 1.LDR R0,0X50000A28LDR R1,[R0]ORR R1,R1,#(0X1<<5)STR R1,[R0] 2.LDR R0,0X50006000LDR R1,[R0]BIC R1,R1,#(0X3<<20)ORR R1,R1,#(0X1<<…...
流程引擎概述及组成
流程引擎概述及组成 一、流程引擎概述 流程,可以理解为步骤,一个有序的活动或动作; 引擎,可以理解为驱动,是一个程序或者一套系统。 所以,字面意思可以理解为,流程引擎是一套(或…...
孤舟笔记 互联网常用框架篇二 Dubbo服务请求失败怎么处理?集群容错策略你用过几种
文章目录先说结论Failover:换家店试试Failfast:不行就算了Failsafe:忘了这事Failback:回头再说Forking:同时点几家Broadcast:通知所有人怎么选择回答技巧与点评加分回答面试官点评个人网站分布式系统中&…...
Postgresql基础实践教程(九)
⭐️⭐️⭐️⭐️⭐️ 完整数据详见 练习数据免费 ⭐️⭐️⭐️⭐️⭐️ 七十二、WITH查询(公用表表达式CTE) 1. SELECT 中的 WITH 2. 递归查询 3. 公用表表达式的物化 4. WITH中的数据修改语句 WITH提供了一种在主查询中写辅助语句的方法。这些语…...
CentOS 8.5最小化安装后,这5个必做的安全与效率优化设置(附一键脚本)
CentOS 8.5最小化安装后的5个必做安全与效率优化刚完成CentOS 8.5最小化安装的系统就像一张白纸——干净但缺乏生产力。作为运维老手,我见过太多人跳过基础优化直接部署应用,结果在后续使用中频繁遇到权限混乱、软件安装慢、SSH爆破等问题。本文将分享我…...
Unity塔防底层架构:ScriptableObject驱动的数据契约设计
1. 这不是“又一个塔防模板”,而是塔防开发的底层操作系统我第一次在Asset Store点开Tower Defense Toolkit 4(TDTK-4)的预览图时,下意识划走了——界面太“干净”了,没有炫酷的粒子特效演示,没有满屏飞舞的…...
Sora 2原生MP4输出不兼容Premiere Pro?揭秘H.264/H.265封装层4大隐性缺陷(附MediaInfo诊断模板+自动修复脚本)
更多请点击: https://codechina.net 第一章:Sora 2原生MP4输出不兼容Premiere Pro的根源定位 Sora 2生成的原生MP4文件虽符合ISO/IEC 14496-14规范,但其底层封装结构与Adobe Premiere Pro对时间码、元数据及视频流编码参数的严格校验逻辑存在…...
Playwright文件上传避坑指南:遇到动态生成的文件选择框怎么办?
Playwright文件上传避坑指南:动态生成文件选择框的实战解决方案最近在为一个电商平台做自动化测试时,遇到了一个棘手的问题——商品图片上传功能总是失败。页面上的"上传图片"按钮明明可以点击,但传统的set_input_files()方法却毫无…...
Mapbox Studio Classic核心功能解析:CartoCSS与矢量瓦片技术详解
Mapbox Studio Classic核心功能解析:CartoCSS与矢量瓦片技术详解 【免费下载链接】mapbox-studio-classic 项目地址: https://gitcode.com/gh_mirrors/ma/mapbox-studio-classic Mapbox Studio Classic是一款强大的桌面地图设计工具,专为创建专业…...
网盘限速困扰?3步实现全平台文件下载效率革命性提升
网盘限速困扰?3步实现全平台文件下载效率革命性提升 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...
Switch控制器PC适配难题的技术解决方案:BetterJoy架构解析与高级配置指南
Switch控制器PC适配难题的技术解决方案:BetterJoy架构解析与高级配置指南 【免费下载链接】BetterJoy Allows the Nintendo Switch Pro Controller, Joycons and SNES controller to be used with CEMU, Citra, Dolphin, Yuzu and as generic XInput 项目地址: ht…...
如何用WaveTools终极优化鸣潮游戏体验:从帧率解锁到抽卡分析的完整指南
如何用WaveTools终极优化鸣潮游戏体验:从帧率解锁到抽卡分析的完整指南 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 如果你正在玩《鸣潮》却经常遇到帧率不稳定、画面卡顿或者抽卡记录混乱的…...
