זיהוי שפה באמצעות AI מובנה

פורסם: 24 בספטמבר 2024, עדכון אחרון: 20 במאי 2025

Browser Support

  • Chrome: 138.
  • Edge: not supported.
  • Firefox: not supported.
  • Safari: not supported.

Source

לפני שמתרגמים טקסט משפה אחת לשפה אחרת, צריך קודם לקבוע באיזו שפה הטקסט כתוב. בעבר, כדי לתרגם טקסט היה צריך להעלות אותו לשירות ענן, לבצע את התרגום בשרת ואז להוריד את התוצאות.

‫Language Detector API פועל בצד הלקוח, כך שאתם יכולים להגן על פרטיות המשתמשים. אפשר לשלוח ספרייה ספציפית שעושה את זה, אבל זה ידרוש הורדה של משאבים נוספים.

מתי כדאי להשתמש בזיהוי שפה

השימוש העיקרי ב-Language Detector API הוא בתרחישים הבאים:

  • לקבוע את השפה של טקסט הקלט, כדי שיהיה אפשר לתרגם אותו.
  • קביעת השפה של טקסט הקלט, כדי שניתן יהיה לטעון את המודל הנכון למשימות ספציפיות לשפה, כמו זיהוי רעילות.
  • לקבוע את השפה של טקסט הקלט, כדי שאפשר יהיה לסמן אותו בצורה נכונה, למשל באתרים של רשתות חברתיות באינטרנט.
  • לקבוע את השפה של טקסט הקלט, כדי שאפשר יהיה להתאים את הממשק של האפליקציה בהתאם. לדוגמה, באתר בלגי, הממשק יוצג רק למשתמשים שמדברים צרפתית.

שנתחיל?

בדיקת דרישות החומרה

הדרישות הבאות חלות על מפתחים ועל משתמשים שמפעילים תכונות באמצעות ממשקי ה-API האלה ב-Chrome. בדפדפנים אחרים עשויות להיות דרישות הפעלה שונות.

Language Detector ו-Translator APIs פועלים ב-Chrome במחשב. ממשקי ה-API האלה לא פועלים במכשירים ניידים.

Prompt API,‏ Summarizer API,‏ Writer API,‏ Rewriter API ו-Proofreader API פועלים ב-Chrome כשמתקיימים התנאים הבאים:

  • מערכת הפעלה: Windows 10 או 11;‏ macOS 13 ואילך (Ventura ואילך); Linux; או ChromeOS (מגרסה Platform 16389.0.0 ואילך) במכשירי Chromebook Plus. ‫Chrome ל-Android, ל-iOS ול-ChromeOS במכשירים שאינם Chromebook Plus עדיין לא נתמך על ידי ממשקי ה-API שמשתמשים ב-Gemini Nano.
  • אחסון: לפחות 22 GB של שטח פנוי בכרך שמכיל את פרופיל Chrome.
  • GPU או CPU: אפשר להפעיל מודלים מוטמעים באמצעות GPU או CPU.
    • מעבד גרפי (GPU): יותר מ-4 GB של VRAM.
    • יחידת עיבוד מרכזית (CPU): זיכרון RAM של 16GB או יותר ו-4 ליבות CPU או יותר.
    • הערה: כדי להשתמש ב-Prompt API עם קלט אודיו, צריך GPU.
  • רשת: חבילת גלישה ללא הגבלה או חיבור ללא הגבלה.

הגודל המדויק של Gemini Nano עשוי להשתנות כשהדפדפן מעדכן את המודל. כדי לראות את הגודל הנוכחי, אפשר לעבור אל chrome://on-device-internals.

אחרי שתעמדו בדרישות.

מריצים זיהוי תכונות כדי לבדוק אם הדפדפן תומך ב-Language Detector API.

if ('LanguageDetector' in self) {
  // The Language Detector API is available.
}

הורדת המודל

זיהוי השפה מתבסס על מודל שעבר כוונון עדין למשימה הספציפית של זיהוי שפות. ה-API מובנה בדפדפן, אבל המודל מורד לפי דרישה בפעם הראשונה שאתר מנסה להשתמש ב-API. ב-Chrome, המודל הזה קטן מאוד בהשוואה למודלים אחרים. יכול להיות שהיא כבר קיימת, כי מודל זה נמצא בשימוש בתכונות אחרות של Chrome.

כדי לקבוע אם המודל מוכן לשימוש, מפעילים את הפונקציה האסינכרונית LanguageDetector.availability(). אם התשובה ל-availability() הייתה downloadable, צריך להמתין להתקדמות ההורדה ולעדכן את המשתמש, כי ההורדה עשויה להימשך זמן מה.

כדי להפעיל את ההורדה וליצור מופע של הכלי לזיהוי שפה, צריך לבדוק אם יש הפעלה של משתמש. לאחר מכן, קוראים לפונקציה LanguageDetector.create() האסינכרונית.

const detector = await LanguageDetector.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  },
});

הפעלת זיהוי השפה

ה-API של Language Detector משתמש במודל דירוג כדי לקבוע באיזו שפה הכי סביר שנעשה שימוש בקטע טקסט נתון. דירוג הוא סוג של למידת מכונה, שבו המטרה היא לסדר רשימה של פריטים. במקרה הזה, ה-API של Language Detector מדרג את השפות מההסתברות הגבוהה ביותר לנמוכה ביותר.

הפונקציה detect() יכולה להחזיר את התוצאה הראשונה, את התשובה הסבירה ביותר או לחזור על המועמדים המדורגים עם רמת הביטחון. הערך שמוחזר הוא רשימה של אובייקטים מסוג {detectedLanguage, confidence}. הרמה confidence מבוטאת כערך בין 0.0 (המהימנות הכי נמוכה) לבין 1.0 (המהימנות הכי גבוהה).

const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);
for (const result of results) {
  // Show the full list of potential languages with their likelihood, ranked
  // from most likely to least likely. In practice, one would pick the top
  // language(s) that cross a high enough threshold.
  console.log(result.detectedLanguage, result.confidence);
}
// (Output truncated):
// de 0.9993835687637329
// en 0.00038279531872831285
// nl 0.00010798392031574622
// ...

AI playground

אפשר להתנסות ב-Language Detector API בסביבת הניסויים של API. מזינים את הטקסט שכתוב בשפות שונות באזור הטקסט.

מדיניות הרשאות, מסגרות iframe ו-Web Workers

כברירת מחדל, ה-API של Language Detector זמין רק לחלונות ברמה העליונה ול-iframe מאותו מקור. אפשר להעניק גישה ל-API ל-iframes ממקורות שונים באמצעות מאפיין allow="" Permission Policy:

<!--
  The hosting site at https://main.example.com can grant a cross-origin iframe
  at https://cross-origin.example.com/ access to the Language Detector API by
  setting the `allow="language-detector"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="language-detector"></iframe>

ממשק ה-API של Language Detector לא זמין ב-Web Workers. הסיבה לכך היא המורכבות של יצירת מסמך אחראי לכל עובד כדי לבדוק את סטטוס מדיניות ההרשאות.

שיתוף משוב

נשמח לראות מה אתם בונים באמצעות Language Detector API. אתם יכולים לשתף איתנו את האתרים ואת אפליקציות האינטרנט שלכם ב-X, ב-YouTube וב-LinkedIn.

אם יש לכם משוב על ההטמעה של Chrome, אתם יכולים לדווח על באג ב-Chromium.

הצטרפות לתוכנית ההפצה המקדימה כדי לקבל הצצה מוקדמת לממשקי API חדשים של AI מובנה וגישה לדיון ברשימת התפוצה שלנו.