您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Integrate Gemini AI into any webpage
// ==UserScript== // @name Gemini AI Assistant // @namespace http://tampermonkey.net/ // @version 1.1 // @description Integrate Gemini AI into any webpage // @license MIT // @match *://*/* // @grant GM_xmlhttpRequest // @grant GM_addStyle // @run-at document-idle // ==/UserScript== /* MIT License Copyright (c) 2024 Your Name [Full MIT License text here] */ (function() { 'use strict'; // 🔥 REPLACE WITH YOUR API KEY (Exposed here for testing ONLY - revoke later!) const API_KEY = 'AIzaSyCITHMzAPG5WE9WogHmYQXVTKrHrqexe2c'; const API_URL = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent'; // Force UI styling GM_addStyle(` #gemini-ui { position: fixed !important; bottom: 20px !important; right: 20px !important; width: 300px !important; background: white !important; border: 1px solid #ddd !important; padding: 10px !important; z-index: 2147483647 !important; box-shadow: 0 0 10px rgba(0,0,0,0.2) !important; font-family: Arial, sans-serif !important; } #gemini-response { height: 200px !important; overflow-y: auto !important; margin: 10px 0 !important; border: 1px solid #eee !important; padding: 8px !important; } #gemini-input { width: 100% !important; margin-bottom: 8px !important; padding: 6px !important; resize: vertical !important; } #gemini-submit { width: 100% !important; padding: 8px !important; background: #4285f4 !important; color: white !important; border: none !important; cursor: pointer !important; } `); // Inject UI after page loads window.addEventListener('DOMContentLoaded', () => { const ui = ` <div id="gemini-ui"> <h3 style="margin:0 0 10px 0; font-size:16px">Gemini Assistant</h3> <div id="gemini-response"></div> <textarea id="gemini-input" rows="3" placeholder="Ask Gemini..."></textarea> <button id="gemini-submit">Send</button> </div> `; document.body.insertAdjacentHTML('beforeend', ui); // Handle API requests document.getElementById('gemini-submit').addEventListener('click', function() { const prompt = document.getElementById('gemini-input').value.trim(); if (!prompt) return; // Clear input document.getElementById('gemini-input').value = ''; GM_xmlhttpRequest({ method: 'POST', url: `${API_URL}?key=${API_KEY}`, headers: { 'Content-Type': 'application/json', }, data: JSON.stringify({ contents: [{ parts: [{ text: prompt }] }] }), onload: function(response) { try { const data = JSON.parse(response.responseText); const answer = data.candidates[0].content.parts[0].text; const responseDiv = document.getElementById('gemini-response'); responseDiv.innerHTML += ` <div><strong>You:</strong> ${prompt}</div> <div><strong>Gemini:</strong> ${answer}</div> <hr> `; responseDiv.scrollTop = responseDiv.scrollHeight; } catch (e) { console.error('Failed to parse response:', e); } }, onerror: function(err) { console.error('API Error:', err); } }); }); }); })();