Skip to content

Latest commit

 

History

History
207 lines (161 loc) · 7.49 KB

File metadata and controls

207 lines (161 loc) · 7.49 KB

Chrome Prompt API Integration - Gemini Nano

🎉 ¡Descubrimiento Importante!

Chrome ahora tiene 7 APIs de IA operativas con Gemini Nano integrado localmente. Esto significa:

  • IA local sin API keys
  • Sin costos de API
  • Privacidad total (todo procesa en el navegador)
  • Funciona offline (una vez descargado el modelo)
  • Gemini Nano (no es 2.5, pero es muy capaz)

🤖 APIs Disponibles (Chrome 138+)

API Status Web Extension Descripción
Prompt API Origin Trial ✅ Chrome 138 Chat y generación de texto general
Summarizer API Available ✅ Chrome 138 ✅ Chrome 138 Resumir textos largos
Translator API Available ✅ Chrome 138 ✅ Chrome 138 Traducción entre idiomas
Language Detector API Available ✅ Chrome 138 ✅ Chrome 138 Detectar idioma de texto
Writer API Origin Trial Escritura creativa y contenido
Rewriter API Origin Trial Reescribir texto en diferentes estilos
Proofreader API Origin Trial Corrección gramatical y ortográfica

📁 Archivos Creados

Web

  1. web/js/lib/prompt-api.js - Wrapper unificado para Prompt API
  2. web/nano-chat.html - Demo de chat simple con Gemini Nano
  3. web/ai-apis-test.html - 🆕 Test suite para todas las 7 APIs
  4. web/prompt/ - Demo oficial de Google (ya existente)

Extension

  1. extension/shared/prompt-api.js - Mismo wrapper para extensión
  2. extension/prompt/script.js - Arreglado (removidos imports CDN que causaban CSP issues)

🔧 Cómo Usar

Requisitos

  1. Chrome Canary o Chrome Dev (versión 127+)
  2. Unirse al Early Preview Program: https://goo.gle/chrome-ai-dev-preview-join
  3. Habilitar flags:
    • chrome://flags/#prompt-api-for-gemini-nano → Enabled
    • chrome://flags/#optimization-guide-on-device-model → Enabled BypassPerfRequirement
  4. Reiniciar Chrome
  5. Esperar a que descargue el modelo (puede tardar unos minutos)

Verificar Disponibilidad

const promptAPI = new PromptAPI();
const check = await promptAPI.checkAvailability();

if (check.available) {
    console.log('✅ Prompt API disponible!');
} else {
    console.log('❌ No disponible:', check.message);
}

Uso Básico

// Crear sesión
await promptAPI.createSession({
    systemPrompt: 'You are a helpful assistant.',
    temperature: 0.8,
    topK: 40
});

// Prompt simple
const response = await promptAPI.prompt('¿Qué es FastTools?');
console.log(response);

// Streaming (recomendado para UX)
for await (const chunk of promptAPI.promptStreaming('Explica JavaScript')) {
    console.log(chunk); // Cada chunk es texto nuevo
}

// Ver estadísticas
const stats = promptAPI.getStats();
console.log(`Tokens usados: ${stats.tokensUsed} / ${stats.maxTokens}`);

// Destruir sesión
promptAPI.destroy();

🎯 Casos de Uso en FastTools

1. Prompt API - Chat Local (✅ Implementado)

  • Archivo: web/nano-chat.html
  • Uso: Chat general, Q&A, asistente
  • Ventaja: Sin API keys, sin costos

2. Summarizer API - Resumir Textos

  • Herramienta: Summarize Text with AI
  • Uso: Resumir artículos, documentos, emails
  • Ventaja: Especializado en resúmenes, más preciso que Prompt API

3. Translator API - Traductor Local

  • Herramienta: AI Translator
  • Uso: Traducción entre idiomas sin enviar datos a servidores
  • Ventaja: Privacidad total, funciona offline

4. Language Detector API - Detectar Idioma

  • Uso: Auto-detectar idioma de texto pegado
  • Integración: Selector automático de idioma en herramientas

5. Writer API - Generación Creativa

  • Uso: Generar contenido, emails, descripciones
  • Herramienta: Content Generator

6. Rewriter API - Reescribir Texto

  • Herramienta: Improve Text with AI
  • Uso: Cambiar tono (formal/casual), simplificar, expandir
  • Ventaja: Especializado en reescritura

7. Proofreader API - Corrección

  • Uso: Revisar gramática y ortografía
  • Integración: Text Cleaner con corrección automática

8. Extensión - Context Menus

  • "Summarize" - Resumir texto seleccionado
  • "Translate" - Traducir selección
  • "Improve" - Mejorar escritura
  • "Explain" - Explicar con IA

🐛 Bug Arreglado en Extensión

Problema: El script original importaba marked y DOMPurify desde CDN, lo cual viola CSP en extensiones.

Solución: Removidos los imports y cambiado a renderizado de texto plano:

// Antes (causaba error CSP)
import { marked } from "https://cdn.jsdelivr.net/npm/marked@13.0.3/lib/marked.esm.js";
p.innerHTML = DOMPurify.sanitize(marked.parse(result));

// Después (funciona en extensión)
p.textContent = result; // Simple text rendering

📊 Comparación: Gemini Nano vs Gemini 2.5

Característica Gemini Nano (Local) Gemini 2.5 (API)
Costo Gratis $0.075 / 1M tokens
Privacidad 100% local Envía datos a Google
Velocidad Muy rápido Depende de red
Offline ✅ Funciona ❌ Requiere internet
Inteligencia Básica-Media Muy alta
Contexto ~4K tokens ~1M tokens
Multimodal ❌ Solo texto ✅ Texto + imágenes

🚀 Próximos Pasos

Corto Plazo

  1. ✅ Crear wrapper unificado (prompt-api.js)
  2. ✅ Demo de chat simple (nano-chat.html)
  3. ✅ Arreglar bug en extensión
  4. ⏳ Integrar en herramientas existentes:
    • Summarize Text → Opción "Local AI"
    • Improve Text → Opción "Local AI"
    • Chat AI → Opción "Use Nano (no API key)"

Medio Plazo

  1. Sistema híbrido: Nano para tareas simples, Gemini 2.5 para complejas
  2. Detección automática de disponibilidad
  3. Fallback inteligente si Nano no está disponible
  4. UI para elegir modelo (Nano vs Cloud)

Largo Plazo

  1. Fine-tuning de prompts para Nano
  2. Caché de respuestas comunes
  3. Herramientas específicas optimizadas para Nano
  4. Extensión con IA local en todos los context menus

🔗 Enlaces Útiles

💡 Ideas Creativas

  1. "Explain This" Context Menu - Click derecho en cualquier texto → Explicar con IA local
  2. Smart Clipboard - Clipboard que entiende y categoriza lo que copias
  3. Local Code Assistant - Ayuda con código sin enviar a la nube
  4. Privacy-First Translator - Traducciones sin enviar texto a servidores
  5. Offline Study Buddy - Asistente de estudio que funciona sin internet

⚠️ Limitaciones Actuales

  1. Solo Chrome Canary/Dev - No en Chrome Stable aún
  2. Requiere Early Preview - No disponible para todos
  3. Descarga del modelo - ~1.5GB, puede tardar
  4. Capacidades limitadas - Nano es menos potente que modelos cloud
  5. API experimental - Puede cambiar en futuras versiones

🎊 Conclusión

¡Este es un cambio de juego para FastTools! Podemos ofrecer IA gratis, privada y offline a nuestros usuarios. Es perfecto para:

  • Usuarios preocupados por privacidad
  • Usuarios sin API keys
  • Tareas simples que no requieren Gemini 2.5
  • Demos y pruebas sin costos

Estado: ✅ Funcional en web, ✅ Arreglado en extensión, ⏳ Pendiente integración en herramientas existentes