您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Цей скрипт оптимізує історію чату GPT, зберігаючи лише останні повідомлення для покращення продуктивності та зниження використання ресурсів браузера. Видалені повідомлення все одно враховуються в нових відповідях чату, забезпечуючи ефективну та швидку роботу.
// ==UserScript== // @name GPT Chat History Optimizer // @name:uk GPT Оптимізатор історії чатів // @namespace https://chat.openai.com // @version 2023.08.11.0 // @description Цей скрипт оптимізує історію чату GPT, зберігаючи лише останні повідомлення для покращення продуктивності та зниження використання ресурсів браузера. Видалені повідомлення все одно враховуються в нових відповідях чату, забезпечуючи ефективну та швидку роботу. // @run-at document-end // @author https://github.com/Aves2001 // @match https://chat.openai.com/* // @grant GM_setValue // @grant GM_getValue // @grant GM_registerMenuCommand // @homepageURL https://github.com/Aves2001/GPT-Chat-History-Optimizer // @supportURL https://github.com/Aves2001/GPT-Chat-History-Optimizer/issues // @license MIT // ==/UserScript== (function() { 'use strict'; const targetClass = 'main > div.flex-1.overflow-hidden > div > div > div > div.group.w-full'; const OBSERVED_CLASSES = [ 'flex-1 overflow-hidden', 'flex flex-col text-sm dark:bg-gray-800', 'relative h-full w-full transition-width flex flex-col overflow-auto items-stretch flex-1' ]; let countKeepLastMessages = GM_getValue('countKeepLastMessages', 12); function keepLastMessages() { // Вибираємо всі цільові елементи let elements = document.querySelectorAll(targetClass); if (elements.length <= countKeepLastMessages) return; // Індекс останнього елемента, який слід залишити let lastIndexToKeep = elements.length - countKeepLastMessages; // Видаляємо зайві елементи for (let i = 0; i < lastIndexToKeep; i++) { elements[i].remove(); } // Вивід кількості видалених повідомлень console.log("Було видалено повідомлень: " + lastIndexToKeep); } function saveSettings_CountKeepLastMessages() { let newCountKeepLastMessages = parseInt(prompt('Введіть нову кількість повідомлень:', countKeepLastMessages)); if (!isNaN(newCountKeepLastMessages) && newCountKeepLastMessages >= 1) { GM_setValue('countKeepLastMessages', newCountKeepLastMessages); countKeepLastMessages = newCountKeepLastMessages; keepLastMessages(); } } // Зареєструвати команди меню для виклику функції зміни налаштувань GM_registerMenuCommand('Змінити кількість повідомлень', saveSettings_CountKeepLastMessages, "K"); GM_registerMenuCommand("Видалення зайвих елементів", function() { keepLastMessages(); }, "C"); // Функція для обробки комбінації клавіш Ctrl+Shift+Space function handleKeyPress(event) { if (event.ctrlKey && event.shiftKey && event.code === 'Space') { console.log('Натиснуто комбінацію Ctrl+Shift+Space'); keepLastMessages(); } } document.addEventListener('keydown', handleKeyPress); let observer = new MutationObserver(mutations => { for (let m of mutations) { if (m.type === 'childList' && OBSERVED_CLASSES.includes(m.target.className)) { keepLastMessages(); } } }); observer.observe(document, { childList: true, subtree: true }); })();