ChatGPT - 让ChatGPT更持久

简介: ChatGPT - 让ChatGPT更持久


问题


解决办法

1。 先安装一个油猴

https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo


2。 安装 ChatGPT HeartBeat

https://greasyfork.org/zh-CN/scripts/462967-chatgpt-heartbeat


Code

// ==UserScript==
// @name         ChatGPT HeartBeat
// @namespace    http://tampermonkey.net/
// @version      0.2.6
// @license      GPLv3
// @description  USE AT YOUR OWN RISK!
// @author       https://v2ex.com/t/926890
// @homepage     https://v2ex.com/t/926890
// @homepageURL  https://v2ex.com/t/926890
// @match        https://chat.openai.com
// @match        https://chat.openai.com/*
// @icon         https://chat.openai.com/favicon.ico
// @require      https://greasyfork.org/scripts/395037-monkeyconfig-modern/code/MonkeyConfig%20Modern.js?version=764968
// @run-at       document-start
// @noframes
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// @grant        GM_addStyle
// ==/UserScript==
/*
  需要保持非常久的,可以额外尝试在 chrome://discards 里禁用 `Auto Discardable`,
  或者用 https://github.com/WorldLanguages/DoNotDiscard
  否则就算保持了 Cookies 有效,Chrome 也有可能自动休眠标签页。
*/
/*
  从原理上来说,这个刷新针对的是静态资源,由 Cloudflare 负责处理,是不会回源到 OpenAI 的。
  所以比起请求 https://chat.openai.com/api/auth/session ,我认为这个方案更不容易被封号。
*/
(function () {
    function isWindow(obj) {
        return obj instanceof Window;
    }
    // 防止页面通过监听事件强制刷新
    // https://gist.github.com/fuzmish/bd444b1aadc2d22aada7c9b1a6de56ba
    const rawAddEventListener = EventTarget.prototype.addEventListener;
    EventTarget.prototype.addEventListener = function (...args) {
        const [eventName] = args;
        if (
            isWindow(this) &&
            ["focus", "focusin", "visibilitychange"].includes(eventName)
        ) {
            return;
        }
        return rawAddEventListener.apply(this, args);
    };
    const cfg = new MonkeyConfig({
        title: "Configuration",
        menuCommand: true,
        params: {
            refreshInterval: {
                type: "number",
                default: 30,
            },
            refreshURL: {
                type: "text",
                default:
                "https://chat.openai.com/_next/static/k9OKjvwgjWES7JT3k-6g9/_ssgManifest.js",
            },
        },
    });
    function getRefreshURL () {
        var refreshURL = cfg.get("refreshURL");
        // 如果手动配置了 _ssgManifest.js 以外的 URL,就不尝试获取最新的
        if (!refreshURL.endsWith("_ssgManifest.js")) {
            return refreshURL;
        }
        // 获取最新的 _ssgManifest.js 链接
        // https://v2ex.com/t/926890#r_12897849
        const manifestScript = document.querySelector(
            'script[src*="_ssgManifest.js"]'
        );
        if (manifestScript) {
            cfg.set("refreshURL", manifestScript.src);
            return manifestScript.src;
        }
        return refreshURL;
    };
    const heartbeat = document.createElement("iframe");
    heartbeat.style.display = "none";
    document.head.prepend(heartbeat);
    let count = 0;
    function refresh() {
        count = 0;
        heartbeat.src = `${getRefreshURL()}?${Date.now()}`;
    }
    setInterval(function () {
        try {
            let current = new URL(heartbeat.contentWindow.location.href);
            let expect = new URL(getRefreshURL());
            if ( heartbeat.contentWindow.location.href === '' ||
                heartbeat.contentWindow.location.href === 'about:blank' ||
                current.pathname === expect.pathname ||
                count++ * cfg.get("refreshInterval") >= 2 * 60) {
                refresh();
            }
        } catch (error) {
            // https://v2ex.com/t/926890#r_12935587
            console.error(error);
            refresh();
        }
    }, cfg.get("refreshInterval") * 1000);
})();

原理: 每过 30 秒请求一次 ChatGPT 保持在线


相关文章
|
7月前
|
存储 人工智能 数据处理
Claude 3发布,超越ChatGPT4的大模型出现了
【2月更文挑战第14天】Claude 3发布,超越ChatGPT4的大模型出现了
114 3
Claude 3发布,超越ChatGPT4的大模型出现了
|
7月前
|
机器学习/深度学习 数据采集 人工智能
问 ChatGPT 关于 GPT 的事情:数据准备篇
问 ChatGPT 关于 GPT 的事情:数据准备篇
107 0
|
3月前
|
数据采集 自然语言处理 监控
大模型微调使GPT3成为了可以聊天发布指令的ChatGPT
正是通过微调大模型使得GPT3成为了可以聊天发布指令的ChatGPT。聊天大模型在通用大模型的基础上加一层微调就实现人人能用的大模型,使得通用大模型的能力被更多人使用和了解。
61 4
大模型微调使GPT3成为了可以聊天发布指令的ChatGPT
|
2月前
|
数据采集 自然语言处理 并行计算
ChatGPT高效提问—基础知识(GPT与ChatGPT)
ChatGPT高效提问—基础知识(GPT与ChatGPT)
45 0
|
4月前
|
人工智能
最近很火的人工智能ChatGPT可以实现“ 连续对话”机制
这篇文章介绍了人工智能ChatGPT实现连续对话机制的方法,包括如何通过传递特定的参数如conversation_id来保持对话的连续性。
最近很火的人工智能ChatGPT可以实现“ 连续对话”机制
|
3月前
|
存储 Linux
高端内存 【ChatGPT】
高端内存 【ChatGPT】
|
4月前
|
机器学习/深度学习 人工智能 算法
ChatGPT 等相关大模型问题之ChatGPT 的概念如何解决
ChatGPT 等相关大模型问题之ChatGPT 的概念如何解决
|
5月前
|
机器学习/深度学习 人工智能 算法
AIGC使用问题之GPT-4相比ChatGPT有哪些升级
AIGC使用问题之GPT-4相比ChatGPT有哪些升级
|
7月前
|
机器学习/深度学习 自然语言处理 搜索推荐
ChatGPT是什么?ChatGPT里的G、P、T分别指什么
ChatGPT是什么?ChatGPT里的G、P、T分别指什么
332 1
|
7月前
|
机器学习/深度学习 人工智能 安全
GPT-4硬核揭秘:能力,操纵性,局限性,聊天GPT Plus等
OpenAI创建了 GPT-4,这是 OpenAI 扩大深度学习努力的最新里程碑...
154 0