由ChatGPT自己编写的ChatGPT工具箱。 当前功能:
由ChatGPT负责编写的ChatGPT工具箱。除了向ChatGPT提供必要的数据,尽可能不由人类写任何代码。
当前版本的API混合模式可能不适合沉浸式扮演。若需要AI沉浸式催眠、扮演,请使用: 这个项目
现已将脚本镜像指向 gitmirror,请注意更新
2023 06-04 : [App模型] 为Plus用户增加了GPT4-Mobile等模型选择
使用方法点击以下折叠章节查阅详情
PC/MAC Chrome小书签
如果您不想安装任何插件,且您的浏览器是chrome, 请复制对应版本的JS全文,在浏览器里添加一个javascript:开头的脚本书签即可。
1 . 复制以下代码
在线脚本,它将会从仓库使用最新版本的代码运行. 代价是需要一点加载时间
从Github拉取:
javascript:var xhr=new XMLHttpRequest();xhr.open('GET','https://raw.githubusercontent.com/bigemon/ChatGPT-ToolBox/main/toolbox-raw.js',true);xhr.onload=function(){if(xhr.readyState===4&&xhr.status===200){eval(xhr.responseText)}};xhr.send(null);
从镜像拉取:
javascript:var xhr=new XMLHttpRequest();xhr.open('GET','https://raw.gitmirror.com/bigemon/ChatGPT-ToolBox/main/toolbox-raw.js',true);xhr.onload=function(){if(xhr.readyState===4&&xhr.status===200){eval(xhr.responseText)}};xhr.send(null);
↓↓ 如果在您访问以上脚本感觉很慢,您也可以直接把下面这个完整JS保存到你的书签里运行 ( 仅限桌面端Chrome ) 。 完整脚本不需要加载时间,但是没有自动更新 , 因此需要手动更新版本
完整脚本:
javascript:function main(){function patch_oof(){let pageSource=document.documentElement.outerHTML;if(pageSource.indexOf('cf-spinner-please-wait')===-1&&!window.oofPatch){if(window.location.href.indexOf("/auth/login")!==-1){window.oofPatch=true;pageSource=pageSource.replace(/"oof":true/g,'"oof":false');document.open();document.write(pageSource);document.close()}}}window.enableFakeMod=!(localStorage.getItem("enable_fakemod")==='false');window.switchEnableFakeMod=function(){let cswitch=document.querySelector("input#cswitch");let checked=cswitch?cswitch.checked:false;if(checked){window.enableFakeMod=true;localStorage.setItem("enable_fakemod",'true')}else{window.enableFakeMod=false;localStorage.setItem('enable_fakemod','false')}};window.clearAllBoxItem=function(){let navs=document.querySelectorAll('nav');for(let x=0;x<navs.length;x++){let allItems=navs[x].querySelectorAll('div.toolbox-item');for(let i=0;i<allItems.length;i++){allItems[i].remove()}}};window.exportSaveData=function(){let conversation_id=window.conversation_id_last||"";let parent_message_id=window.parent_message_id_last||"";let authorization=window.authorization_last;if(conversation_id===""||parent_message_id===""||conversation_id==="undefined"||parent_message_id==="undefined"){alert("请至少说两句话再使用这个功能!");return}let jsonObject={conversation_id:conversation_id,parent_message_id:parent_message_id,authorization:authorization};const jsonString=JSON.stringify(jsonObject);return window.btoa(jsonString)};window.importSaveData=function(savB64){let decodedString=window.atob(savB64);let jsonObject=JSON.parse(decodedString);if(!jsonObject||jsonObject.conversation_id===undefined||jsonObject.parent_message_id===undefined){alert("会话存档已损坏, 请确保完整复制!");return}let authUnix=window.getAuthTimestamp(jsonObject.authorization)||0;if(authUnix&&Math.floor(Date.now()/1000)>authUnix){if(!confirm("这个会话存档的Token看起来已过期,或许无法正常工作。\r\n假如这个存档是由当前账号所导出,您可以尝试使用当前会话覆盖导入的状态。\r\n是否继续?")){return}}else{alert("这个会话存档的有效期最长至:\r\n"+(new Date(authUnix*1000)).toLocaleString('en-US')+"\r\n\r\n请注意:导入的会话无法被再次导出,也无法保存");window.import_authorization=jsonObject.authorization}window.next_conversation_id=jsonObject.conversation_id;window.next_parent_message_id=jsonObject.parent_message_id;alert("导入成功,当前会话状态已「暂时」附加到导入的存档。这将对您的下一句话生效。\r\n如果该存档的宿主已退出登录或释放该会话,则存档也会一起失效\r\n此时您可能会被提示登录过期。\r\n\r\n若要中途解除附加状态。请刷新浏览器、点击「 +New chat 」新建会话或切换到其它的会话。")};window.clearTempValues=function(){delete window.import_authorization;delete window.next_parent_message_id;delete window.next_conversation_id;delete window.parent_message_id_last;delete window.conversation_id_last;delete window.authorization_last};window.LoadAPITemplateWindow=function(){function createBootstrapCard(title,controls){const card=document.createElement("div");card.className="rounded-md mb-4";const cardHeader=document.createElement("div");cardHeader.className="flex items-center relative text-white bg-green-600 px-4 py-2 text-xs font-sans justify-between rounded-t-md";cardHeader.innerHTML=title;card.appendChild(cardHeader);const cardBody=document.createElement("div");cardBody.className="p-4 overflow-y-auto bg-auto";card.appendChild(cardBody);controls.forEach((control)=>cardBody.appendChild(control));return card}function createDialog(title,controls,footers,on_close=null){let headlessState=document.createAttribute("data-headlessui-state");headlessState.value="open";let role=document.createAttribute("role");role.value="dialog";const dialogElement=document.createElement('div');dialogElement.className='relative z-50';dialogElement.style.position='fixed';dialogElement.setAttributeNodeNS(headlessState.cloneNode(true));dialogElement.setAttributeNodeNS(role.cloneNode(true));if(on_close===null||on_close===undefined){on_close=function _defaultClose(){dialogElement.remove()}}const dialogBackdrop=document.createElement("div");dialogBackdrop.className="fixed inset-0 bg-gray-500/90 transition-opacity dark:bg-gray-800/90";dialogElement.appendChild(dialogBackdrop);dialogBackdrop.addEventListener("click",()=>{on_close()});const dialogBox=document.createElement("div");dialogBox.className="fixed inset-0 z-50 overflow-y-auto";dialogElement.appendChild(dialogBox);const dialogHolder=document.createElement("div");dialogHolder.className="flex min-h-full items-end justify-center p-4 text-center sm:items-center sm:p-0";dialogBox.appendChild(dialogHolder);const dialog=document.createElement("div");dialog.className="relative transform overflow-hidden rounded-lg bg-white text-left shadow-xl transition-all dark:bg-gray-900 sm:my-8 sm:w-full sm:max-w-4xl px-4 pt-5 pb-4 sm:p-6";dialogElement.setAttributeNodeNS(headlessState.cloneNode(true));dialogHolder.appendChild(dialog);const dialogTitleHolder=document.createElement('div');dialogTitleHolder.className='flex items-center justify-between';dialog.appendChild(dialogTitleHolder);const dialogTitle=document.createElement('div');dialogTitle.className="flex items-center";dialogTitleHolder.appendChild(dialogTitle);const dialogTitleText=document.createElement("h3");dialogTitleText.className="text-lg font-medium leading-6 text-gray-900 dark:text-gray-200";dialogTitleText.innerText=title;dialogTitle.appendChild(dialogTitleText);const dialogTitleCloseHolder=document.createElement("div");dialogTitleHolder.appendChild(dialogTitleCloseHolder);const dialogTitleClose=document.createElement("div");dialogTitleClose.className="sm:mt-0";dialogTitleCloseHolder.appendChild(dialogTitleClose);dialogTitleClose.addEventListener("click",()=>{on_close()});const dialogTitleCloseButton=document.createElement("button");dialogTitleClose.appendChild(dialogTitleCloseButton);dialogTitleCloseButton.outerHTML="<button class=\"inline-block text-gray-500 hover:text-gray-700\" tabindex=\"0\"><svg stroke=\"currentColor\" fill=\"none\" stroke-width=\"2\" viewBox=\"0 0 24 24\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"text-gray-900 dark:text-gray-200\" height=\"20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg></button>";const dialogBody=document.createElement('div');dialogBody.className="p-2";dialog.appendChild(dialogBody);controls.forEach((control)=>dialogBody.appendChild(control));const footerHolder=document.createElement('div');footerHolder.className="mt-5 flex flex-col gap-3 sm:mt-4 sm:flex-row";dialog.appendChild(footerHolder);footers.forEach((control)=>footerHolder.appendChild(control));return dialogElement}const navCloseBtns=document.querySelectorAll('.ml-1.flex.h-10.w-10.items-center.justify-center.focus\\:outline-none.focus\\:ring-2.focus\\:ring-inset.focus\\:ring-white');if(navCloseBtns.length>0){navCloseBtns[0].click()}const form=document.createElement('form');form.className="bg-auto";const apiKeyLabel=document.createElement('label');apiKeyLabel.innerText='
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。