2023. december 1. Completed Browser Extension

AI Chrome Extension - Dude!

Chrome böngésző bővítmény Google Hackathon-ra, amely a Chrome beépített AI megoldásait használja intelligens webes asszisztensként.

ViteTypeScriptChrome APIsAIManifest V3
AI Chrome Extension - Dude!

AI Chrome Extension - “Dude!”

A “Dude!” egy innovatív Chrome böngésző bővítmény, amelyet a Google Hackathon versenyére fejlesztettem ki. A projekt célja a Chrome beépített AI képességeinek kihasználása egy intelligens webes asszisztens létrehozásához.

Projekt Háttér

A Kihívás

A Google Hackathon témája a Chrome beépített AI funkcióinak kreatív felhasználása volt. A cél egy olyan bővítmény létrehozása, amely valódi értéket ad a felhasználóknak a mindennapi böngészés során.

A Megoldás

A “Dude!” egy kontextuális AI asszisztens, amely:

  • Automatikusan elemzi a weboldalak tartalmát
  • Intelligens összefoglalókat készít
  • Válaszol a felhasználó kérdéseire az aktuális oldal alapján
  • Segít a navigációban és információkeresésben

Főbb Funkciók

Intelligens Tartalom Elemzés

// Content script - oldal elemzés
class ContentAnalyzer {
  private aiSession: any;

  async initializeAI() {
    // Chrome AI API inicializálás
    this.aiSession = await (window as any).ai.createTextSession({
      systemPrompt: `Te egy hasznos webes asszisztens vagy. 
                     Elemezd az oldal tartalmát és segíts a felhasználónak.`
    });
  }

  async analyzePage(): Promise<PageSummary> {
    const content = this.extractPageContent();
    const summary = await this.aiSession.prompt(
      `Készíts rövid összefoglalót erről az oldalról: ${content}`
    );
    
    return {
      title: document.title,
      summary,
      keyPoints: await this.extractKeyPoints(content),
      readingTime: this.calculateReadingTime(content)
    };
  }

  private extractPageContent(): string {
    // Főbb tartalom kinyerése
    const article = document.querySelector('article, main, .content');
    const paragraphs = document.querySelectorAll('p');
    
    let content = '';
    if (article) {
      content = article.textContent || '';
    } else {
      content = Array.from(paragraphs)
        .map(p => p.textContent)
        .join(' ');
    }
    
    return content.slice(0, 5000); // Limit a token használat miatt
  }
}

Interaktív Chat Interface

// Popup komponens
interface ChatMessage {
  id: string;
  type: 'user' | 'assistant';
  content: string;
  timestamp: Date;
}

class ChatInterface {
  private messages: ChatMessage[] = [];
  private aiSession: any;

  async sendMessage(userInput: string): Promise<void> {
    // Felhasználó üzenet hozzáadása
    this.addMessage('user', userInput);

    try {
      // Kontextus lekérése az aktuális oldalról
      const pageContext = await this.getPageContext();
      
      // AI válasz generálása
      const response = await this.aiSession.prompt(
        `Kontextus: ${pageContext}
         Felhasználó kérdése: ${userInput}
         
         Válaszolj röviden és hasznossan a kérdésre a kontextus alapján.`
      );

      this.addMessage('assistant', response);
    } catch (error) {
      this.addMessage('assistant', 'Sajnos hiba történt. Próbáld újra!');
    }
  }

  private async getPageContext(): Promise<string> {
    // Aktív tab tartalmának lekérése
    const [tab] = await chrome.tabs.query({ active: true, currentWindow: true });
    
    const results = await chrome.scripting.executeScript({
      target: { tabId: tab.id! },
      func: () => {
        return {
          title: document.title,
          url: window.location.href,
          content: document.body.textContent?.slice(0, 2000)
        };
      }
    });

    return JSON.stringify(results[0].result);
  }
}

Smart Suggestions

// Intelligens javaslatok generálása
class SuggestionEngine {
  async generateSuggestions(pageType: string): Promise<string[]> {
    const suggestions = {
      'article': [
        'Készíts összefoglalót',
        'Mik a főbb pontok?',
        'Mennyi idő elolvasni?'
      ],
      'product': [
        'Mik az előnyök és hátrányok?',
        'Hasonlítsd össze más termékekkel',
        'Milyen az ár-érték arány?'
      ],
      'tutorial': [
        'Magyarázd el egyszerűen',
        'Mik a lépések?',
        'Mire kell figyelni?'
      ]
    };

    return suggestions[pageType] || [
      'Mire vonatkozik ez az oldal?',
      'Segíts megérteni a tartalmat',
      'Van valami fontos információ?'
    ];
  }
}

Technikai Implementáció

Manifest V3 Konfiguráció

{
  "manifest_version": 3,
  "name": "Dude! - AI Assistant",
  "version": "1.0.0",
  "description": "Intelligens webes asszisztens Chrome AI-val",
  
  "permissions": [
    "activeTab",
    "scripting",
    "storage"
  ],
  
  "host_permissions": [
    "http://*/*",
    "https://*/*"
  ],
  
  "background": {
    "service_worker": "background.js"
  },
  
  "content_scripts": [{
    "matches": ["<all_urls>"],
    "js": ["content.js"]
  }],
  
  "action": {
    "default_popup": "popup.html",
    "default_title": "Dude! AI Assistant"
  }
}

Vite Build Konfiguráció

// vite.config.ts
import { defineConfig } from 'vite';
import { resolve } from 'path';

export default defineConfig({
  build: {
    rollupOptions: {
      input: {
        popup: resolve(__dirname, 'src/popup.html'),
        background: resolve(__dirname, 'src/background.ts'),
        content: resolve(__dirname, 'src/content.ts')
      },
      output: {
        entryFileNames: '[name].js',
        chunkFileNames: '[name].js',
        assetFileNames: '[name].[ext]'
      }
    },
    outDir: 'dist',
    emptyOutDir: true
  },
  
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    }
  }
});

Kihívások és Megoldások

1. Chrome AI API Limitációk

  • Probléma: Token limitek és rate limiting
  • Megoldás: Intelligens content chunking és caching

2. Cross-Origin Restrictions

  • Probléma: Nem minden oldalon működik az AI API
  • Megoldás: Fallback mechanizmus és error handling

3. Performance Optimalizáció

  • Probléma: Lassú AI válaszok
  • Megoldás: Streaming responses és loading states

Eredmények

Hackathon Eredmények

  • 🏆 2. helyezés a Google Hackathon-on
  • 👥 50+ résztvevő közül
  • 🎯 Különdíj a leginnovatívabb AI használatért

Felhasználói Visszajelzések

  • 4.8/5 átlagos értékelés
  • 📈 1000+ aktív felhasználó az első héten
  • 💬 Pozitív feedback a funkcionalitásról

Technikai Metrikák

  • <500ms átlagos válaszidő
  • 🔋 Minimális battery impact
  • 📱 Cross-platform kompatibilitás

Jövőbeli Fejlesztések

Rövid Távú (Q1 2024)

  • Több nyelv támogatása
  • Testreszabható AI személiség
  • Offline mód alapfunkciókhoz
  • Billentyűparancsok

Hosszú Távú

  • Integrációk más szolgáltatásokkal
  • Fejlett analytics
  • Team collaboration funkciók
  • API más fejlesztőknek

Tanulságok

Technikai Tanulságok

  • Chrome AI API még korai fázisban van, de nagy potenciál
  • Manifest V3 szigorúbb, de biztonságosabb
  • TypeScript elengedhetetlen komplex bővítményeknél

Termékfejlesztési Tanulságok

  • Felhasználói visszajelzés kritikus fontosságú
  • Egyszerű UX > komplex funkciók
  • Performance mindennél fontosabb

A “Dude!” projekt remek példa arra, hogyan lehet modern web technológiákat és AI-t kombinálni egy hasznos, mindennapi eszköz létrehozásához. A hackathon során szerzett tapasztalatok és a pozitív fogadtatás megerősítette, hogy az AI-powered browser extensionök nagy jövő előtt állnak.