众所周知 Gemini 早已支持 200 万上下文,但受限于浏览器性能实际上当超过 10 万上下文的时候就已经卡成了狗。故出此下策。
已知这是随手找到的一个长文档:
几千行,直接粘贴到网页版对话框必然卡死。
所以,写了个 JavaScript,以上传文件的方式读取内容,构造请求发送之后立即释放还以浏览器运存空间,代码:
const fileInput = document.createElement('input');
fileInput.type = 'file';
fileInput.onchange = async (e) => {
const file = e.target.files[0];
const content = await file.text();
// 修改输入框内容并触发输入事件
const inputElement = document.getElementById('chat-input');
inputElement.value = content;
inputElement.dispatchEvent(new Event('input', { bubbles: true }));
// 模拟点击发送按钮
const sendButton = document.querySelector('button.button_icon-button__VwAMf.chat_chat-input-send__GFQZo');
sendButton.click();
// 等待一个极短的时间让 dom 加载完成,若 CPU 实在过于风烛残年则增加等待时长。
await new Promise(resolve => setTimeout(resolve, 10));
// 模拟点击编辑按钮
const iconButtons = document.getElementsByClassName('button_icon-button__VwAMf undefined undefined clickable undefined');
iconButtons[iconButtons.length - 3].click();
// 等待一个极短的时间让 dom 加载完成,若 CPU 实在过于风烛残年则增加等待时长。
await new Promise(resolve => setTimeout(resolve, 10));
// 释放长文档内容框
document.querySelector('.ui-lib_modal-input__vxrdT').value = '(๑•̀ㅂ•́)و✧ File sent! 😊';
document.querySelector('.ui-lib_modal-input__vxrdT').dispatchEvent(new Event('input', { bubbles: true }));
document.getElementsByClassName('button_icon-button-text__my76e')[5].click();
};
fileInput.click();
使用方法:在对话界面按 F12 → 在控制台粘贴执行上述代码 → 点击目标文件发送 → 构造请求发送后自动释放,等待 ing。。
就是这样。以上。
单行版:
javascript:(()=>{const a=document.createElement('input');a.type='file';a.onchange=async(e)=>{const b=e.target.files[0];const c=await b.text();const d=document.getElementById('chat-input');d.value='文档解读。若接收的长文本末端不是 *长文本加载完成!* 请告之。\n```\n'+c+'\n```\n长文本加载完成!';d.dispatchEvent(new Event('input',{bubbles:true}));const f=document.querySelector('button.button_icon-button__VwAMf.chat_chat-input-send__GFQZo');f.click();await new Promise(r=>setTimeout(r,10));const g=document.getElementsByClassName('button_icon-button__VwAMf undefined undefined clickable undefined');g[g.length-3].click();await new Promise(r=>setTimeout(r,10));document.querySelector('.ui-lib_modal-input__vxrdT').value='(๑•̀ㅂ•́)و✧ File sent! 😊';document.querySelector('.ui-lib_modal-input__vxrdT').dispatchEvent(new Event('input',{bubbles:true}));document.getElementsByClassName('button_icon-button-text__my76e')[5].click()};a.click()})();
不用打开 F12 (控制台会记录输出,太长也卡) ,直接存为书签要用时点击,或者在地址栏直接粘贴 (但是直接粘贴到地址栏需要手敲前面的 javascript: 前缀) 然后回车即可。