当前位置: 首页 > article >正文

让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送

一、脚本内容

让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送

// ==UserScript==
// @name         ChatGPT自动接上文继续
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送
// @author       yedsn
// @match        https://chat.openai.com/chat*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=openai.com
// @grant        none
// @license MIT
// ==/UserScript==

// ==UserScript==
// @name         ChatGPT自动接上文继续
// @namespace    http://tampermonkey.net/
// @version      1.3
// @description  让ChatGPT在中断回答的时候自动输入「请接上文继续」并发送
// @author       yedsn
// @match        https://chat.openai.com/chat*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=openai.com
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    let autoSendFlag = false;
    let checkboxContainer = null;

    // 创建checkbox
    (function generateCheckbox() {

        // 创建checkbox
        checkboxContainer = document.createElement('button');
        checkboxContainer.classList.add('btn', 'btn-autosend', 'relative', 'border-0', 'md:border');
        checkboxContainer.style.fontSize = '.875rem';
        checkboxContainer.style.lineHeight = '1.25rem';
        const checkboxLabel = document.createElement('label');
        const checkbox = document.createElement('input');
        checkbox.style.marginRight = ".5rem";
        checkbox.type = 'checkbox';
        checkbox.id = 'auto-operate-checkbox';
        checkboxLabel.appendChild(checkbox);
        const label = document.createTextNode('中断后自动发送“请接上文继续”');
        checkboxLabel.appendChild(label);
        checkboxContainer.appendChild(checkboxLabel);

        checkbox.addEventListener('change', function() {
            autoSendFlag = this.checked;
        });

        // 添加样式
        const checkboxStyle = `
<style>
.dark .btn-autosend {
    --tw-border-opacity: 1;
    --tw-bg-opacity: 1;
    --tw-text-opacity: 1;
    background-color: rgba(52,53,65,var(--tw-bg-opacity));
    border-color: rgba(86,88,105,var(--tw-border-opacity));
    color: rgba(217,217,227,var(--tw-text-opacity));
}
.light .btn-autosend {
    background-color: rgba(255,255,255,1);
    border-color: rgba(0,0,0,.1);
    color: rgba(64,65,79,1);
}
</style>
        `;
        document.body.insertAdjacentHTML('beforeend', checkboxStyle);



    })();

    // 创建一个 MutationObserver 实例,监听 body 元素内子元素的变化
    const observer = new MutationObserver(function(mutations) {

        // document.body.appendChild(checkboxContainer);
        if(!document.getElementById("auto-operate-checkbox")) {
            const btnNeutral = document.querySelector('.btn-neutral');
            if(btnNeutral) {
                btnNeutral.parentNode.insertBefore(checkboxContainer, btnNeutral);
            }
        }


        if(autoSendFlag) {
            // 执行自动发送
            const button = document.querySelector('.btn-neutral');
            if (!button || button.querySelector('div').textContent.trim() != "Stop generating") {
                // debugger

                // 找到页面中最后一个不为 __next-route-announcer__ 的 p 元素
                const paragraphs = Array.from(document.getElementsByTagName('p'));
                const lastParagraph = paragraphs.filter(p => p.id !== '__next-route-announcer__').pop();

                // 检查最后一个 p 元素内容是否以中文句号结尾
                if (lastParagraph && !lastParagraph.parentNode.classList.contains('result-streaming') && !/\。$/.test(lastParagraph.textContent.trim())) {
                    setTimeout(function () {
                        // 找到 textarea 元素,并填充内容为 "请接上文继续"
                        const textarea = document.querySelector('textarea');
                        textarea.value = '请接上文继续';

                        // 找到与 textarea 同级的 button 元素,并点击它
                        const siblingButton = textarea.nextElementSibling;
                        siblingButton.click();
                    }, Math.floor(Math.random() * (3000 - 500 + 1) + 500));
                }


            }
        }
    });

    const observerConfig = { childList: true, subtree: true };
    observer.observe(document.body, observerConfig);

})();

二、使用方法

脚本功能

用于CHATGPT简单回复的自动化继续

目前v0.2版实现功能

1.在右上角产生一个功能开关

2.开启后,将自动在对话框中回复“继续”

3.判断结尾是否出现抱歉、对不起字眼,发现后关闭。

脚本安装

一、安装油猴脚本管理器插件

如果有条件,可以直接在谷歌Chrome商店下载安装。

如果无法访问,点击下面链接下载Tampermonkey油猴脚本管理器插件的安装包,解压之后,再将crx文件安装到你的谷歌浏览器上,具体可参考这篇文章。

最新油猴插件下载

tampermonkey(油猴插件)

立即查看

二、安装脚本

大家先下载本文的脚本离线文件,然后启动脚本编辑器,点击浏览器工具栏上的油猴插件图标,打开【添加新脚本】,将下载的 js 格式的脚本安装文件,拖拽到已清空的编辑器中,保存即可。

脚本更新地址:

https://kdown.fkxz.cn/wp-content/uploads/2023/03/1680061851-35369-chatgptzidongjieshangwen.js

相关文章

  • ChatGPT自动接上文继续油猴脚本
  • ChatGPT 心跳刷新油猴脚本
  • ChatGPT快捷键油猴脚本
  • ChatGPT助手【豪华版】油猴脚本
  • ChatGPT访问助手大师版油猴脚本

 


http://www.kler.cn/a/6902.html

相关文章:

  • vue3 路由写法及传参方式 !超详细
  • Mac os 系统上如何开启远程登录的 ssh 22 端口
  • SpringBoot总结
  • OpenCV从入门到精通实战(九)——基于dlib的疲劳监测 ear计算
  • Uni-APP+Vue3+鸿蒙 开发菜鸟流程
  • Halcon HImage 与 Qt QImage 的相互转换(修订版)
  • ElasticSearch ( 七 ) Mapping映射和数据迁移
  • 科研实验试剂:mPEG Estrogen,PEG-Estrogen,甲氧基聚乙二醇雌激素,用于多肽合成支持
  • 微信小程序二维码的生成方式
  • iPhone手机小技巧:使用备忘录创建清单
  • 物联网 JS 前端框架开发 - 执行 VUE 程序
  • Goby漏洞更新 | SolarView Compact downloader.php 任意命令执行漏洞(CVE-2023-23333)
  • 设计模式七大原则解读
  • 一致性哈希算法 consistent hashing
  • 网络安全-拒绝服务(DDOS)
  • 关于数据通信和串口(USART)的一些笔记
  • 使用cfssl为程序添加https证书
  • 【Redis】集群(cluster)
  • 浅谈各个自研国产数据库优劣对比
  • Mysql LOAD DATA 读取客户端任意文件
  • AQS之ReentrantLock独占锁源码解析
  • top 输出中涉及到的一些参数的解释
  • SonarQube安装教程
  • 2023年noc指导教师认证测评参考试题
  • 重学Java设计模式-结构型模式-代理模式
  • Vue3通透教程【十一】初探TypeScript