如何实现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<<…...
流程引擎概述及组成
流程引擎概述及组成 一、流程引擎概述 流程,可以理解为步骤,一个有序的活动或动作; 引擎,可以理解为驱动,是一个程序或者一套系统。 所以,字面意思可以理解为,流程引擎是一套(或…...
终极Mac风扇控制指南:3步掌握smcFanControl让Intel Mac运行更凉爽
终极Mac风扇控制指南:3步掌握smcFanControl让Intel Mac运行更凉爽 【免费下载链接】smcFanControl Control the fans of every Intel Mac to make it run cooler 项目地址: https://gitcode.com/gh_mirrors/smc/smcFanControl 当你的Intel Mac在高负载下工作…...
突破硬件壁垒:开源驱动技术如何解锁跨系统硬件潜能
突破硬件壁垒:开源驱动技术如何解锁跨系统硬件潜能 【免费下载链接】DFRDisplayKm Windows infrastructure support for Apple DFR (Touch Bar) 项目地址: https://gitcode.com/gh_mirrors/df/DFRDisplayKm 副标题:从驱动开发到功能实现——让专属…...
3步找回青春记忆:GetQzonehistory完整导出QQ空间说说终极指南
3步找回青春记忆:GetQzonehistory完整导出QQ空间说说终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾在深夜翻看QQ空间,想要重温那些年写下的心…...
3大跨平台游戏开发库部署方案:从环境搭建到性能优化的全流程指南
3大跨平台游戏开发库部署方案:从环境搭建到性能优化的全流程指南 【免费下载链接】raylib A simple and easy-to-use library to enjoy videogames programming 项目地址: https://gitcode.com/GitHub_Trending/ra/raylib 跨平台游戏开发库raylib凭借其轻量级…...
C++ constexpr 编译期逻辑实践
C constexpr 编译期逻辑实践:探索现代C的静态计算潜能 在现代C中,constexpr关键字彻底改变了编译期计算的可能性。它允许开发者在编译阶段执行复杂逻辑,从而提升运行时效率并实现更严格的类型安全。从C11的初版到C20的增强,const…...
Flowable UI 6.6.0 生产环境部署踩坑实录:从H2内存库迁移到PostgreSQL的全过程
Flowable UI 6.6.0 生产环境部署实战:从H2到PostgreSQL的完整迁移指南 当你第一次接触Flowable UI时,可能会被它默认的H2内存数据库所迷惑——启动简单,但重启后数据全无。这种配置显然不适合生产环境。本文将带你深入实战,完成从…...
TensorRT-LLM与Triton Server部署实战:从环境配置到模型推理
1. 环境准备:从零搭建TensorRT-LLM与Triton Server基础环境 第一次接触TensorRT-LLM和Triton Server时,我花了整整三天时间在环境配置上踩坑。现在回想起来,大部分问题都源于对NVIDIA生态工具链的不熟悉。下面我会用最直白的语言,…...
SEO 搜索引擎公司如何提高网站的流量
SEO 搜索引擎公司如何提高网站的流量 在当今互联网时代,网站的流量直接影响着企业的品牌知名度和市场竞争力。对于许多企业来说,SEO(搜索引擎优化)成为了提升网站流量的关键途径。SEO 搜索引擎公司究竟如何有效提高网站的流量呢&…...
纯正国风体验!Guohua Diffusion本地绘画工具,零基础快速上手指南
纯正国风体验!Guohua Diffusion本地绘画工具,零基础快速上手指南 想体验最纯正的水墨丹青,亲手生成一幅属于自己的国风画作吗?今天,我们就来聊聊一个专为4090D显卡优化、无需联网、操作极简的本地AI绘画工具——Guohu…...
RK3568的Type-C接口设计,不止正反插:EMC防护、限流与关机遥控的细节实战
RK3568 Type-C接口设计实战:从EMC防护到关机遥控的进阶技巧 Type-C接口早已成为现代电子设备的标配,但真正将其设计得既可靠又智能却并非易事。对于基于RK3568平台的嵌入式设备开发者而言,一个优秀的Type-C方案不仅需要解决正反插这种基础问题…...
