פורסם: 24 בספטמבר 2024, עדכון אחרון: 20 במאי 2025
הסבר | פיתוח אתרים | תוספים | הסטטוס של Chrome | כוונת רכישה |
---|---|---|---|---|
MDN | |
|
תצוגה | כוונה לשלוח |
לפני שמתרגמים טקסט משפה אחת לשפה אחרת, צריך קודם לקבוע באיזו שפה הטקסט כתוב. בעבר, כדי לתרגם טקסט היה צריך להעלות אותו לשירות ענן, לבצע את התרגום בשרת ואז להוריד את התוצאות.
Language Detector API פועל בצד הלקוח, כך שאתם יכולים להגן על פרטיות המשתמשים. אפשר לשלוח ספרייה ספציפית שעושה את זה, אבל זה ידרוש הורדה של משאבים נוספים.
מתי כדאי להשתמש בזיהוי שפה
השימוש העיקרי ב-Language Detector API הוא בתרחישים הבאים:
- לקבוע את השפה של טקסט הקלט, כדי שיהיה אפשר לתרגם אותו.
- קביעת השפה של טקסט הקלט, כדי שניתן יהיה לטעון את המודל הנכון למשימות ספציפיות לשפה, כמו זיהוי רעילות.
- קביעת השפה של טקסט הקלט, כדי שאפשר יהיה לסמן אותו בצורה נכונה, למשל באתרים של רשתות חברתיות אונליין.
- קביעת השפה של טקסט הקלט, כדי שניתן יהיה להתאים את הממשק של האפליקציה בהתאם. לדוגמה, באתר בלגי, הממשק יוצג רק למשתמשים שמדברים צרפתית.
שנתחיל?
ה-API של Language Detector זמין מגרסה יציבה של Chrome 138. מריצים זיהוי תכונות כדי לבדוק אם הדפדפן תומך ב-Language Detector API.
if ('LanguageDetector' in self) {
// The Language Detector API is available.
}
בדיקת דרישות החומרה
הדרישות הבאות חלות על מפתחים ועל משתמשים שמפעילים תכונות באמצעות ממשקי ה-API האלה ב-Chrome. בדפדפנים אחרים עשויות להיות דרישות הפעלה שונות.
ממשקי ה-API של כלי זיהוי השפה והתרגום פועלים ב-Chrome במחשב. ממשקי ה-API האלה לא פועלים במכשירים ניידים. ממשקי Prompt API, Summarizer API, Writer API ו-Rewriter API פועלים ב-Chrome כשמתקיימים התנאים הבאים:
- מערכת הפעלה: Windows 10 או 11; macOS מגרסה 13 ואילך (Ventura ואילך); או Linux. Chrome ל-Android, ל-iOS ול-ChromeOS עדיין לא נתמך על ידי ממשקי ה-API שמשתמשים ב-Gemini Nano.
- אחסון: לפחות 22 GB בכרך שמכיל את פרופיל Chrome.
- מעבד גרפי (GPU): יותר מ-4 GB של VRAM.
- רשת: נתונים ללא הגבלה או חיבור ללא מדידה.
הגודל המדויק של Gemini Nano עשוי להשתנות מעט. כדי לראות את הגודל הנוכחי, נכנסים אל chrome://on-device-internals
ועוברים אל Model status (סטטוס המודל).
פותחים את נתיב הקובץ שמופיע ברשימה כדי לקבוע את גודל המודל.
הורדת המודל
זיהוי השפה מתבסס על מודל שעבר כוונון עדין למשימה הספציפית של זיהוי שפות. ה-API מובנה בדפדפן, אבל המודל מורד לפי דרישה בפעם הראשונה שאתר מנסה להשתמש ב-API. בדפדפן Chrome, המודל הזה קטן מאוד בהשוואה למודלים אחרים. יכול להיות שהיא כבר קיימת, כי המודל הזה נמצא בשימוש בתכונות אחרות של Chrome.
כדי לבדוק אם המודל מוכן לשימוש, מפעילים את הפונקציה האסינכרונית LanguageDetector.availability()
ובודקים את ההבטחה שמתקבלת.
יש שלוש תשובות אפשריות:
-
"unavailable"
: האפשרויות המבוקשות לא נתמכות או שלא ניתן להנחות את המודל. -
"downloadable"
: הבקשה נתמכת, אבל צריך להוריד עוד קבצים לפני שאפשר ליצור סשן. ההורדות האלה עשויות לכלול את מודל השפה או כוונון עדין. -
"downloading"
: הבקשה נתמכת וההורדה מתבצעת. ההורדה צריכה להסתיים לפני יצירת סשן. "available"
: הבקשה נתמכת ואפשר ליצור סשן.
כדי להפעיל את ההורדה וליצור מופע של כלי לזיהוי שפה, קוראים לפונקציה האסינכרונית LanguageDetector.create()
. אם התשובה ל-availability()
הייתה 'downloadable'
או 'downloading'
, מומלץ להאזין להתקדמות ההורדה כדי שתוכלו לעדכן את המשתמש אם ההורדה תימשך זמן רב.
בדוגמה הבאה מוסבר איך להפעיל את הכלי לזיהוי שפה.
const availability = await LanguageDetector.availability();
let detector;
if (availability === 'unavailable') {
// The language detector isn't usable.
return;
}
if (availability === 'available') {
// The language detector can immediately be used.
detector = await LanguageDetector.create();
} else {
// The language detector can be used after model download.
detector = await LanguageDetector.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
await detector.ready;
}
הפעלת זיהוי השפה
ה-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
// ...
API playground
אפשר להתנסות ב-Language Detector API בסביבת הניסויים של API. מזינים את הטקסט שכתוב בשפות שונות באזור הטקסט.
מאמץ התקנון
צוות Chrome ביקש משוב מקבוצת הארכיטקטורה הטכנית של W3C וביקש מ-Mozilla ומ-WebKit את עמדותיהן בנוגע לתקנים.
שיתוף משוב
נשמח לראות מה אתם בונים באמצעות Language Detector API. אתם יכולים לשתף איתנו את האתרים ואת אפליקציות האינטרנט שלכם ב-X, ב-YouTube וב-LinkedIn.
אם יש לכם משוב על ההטמעה של Chrome, אתם יכולים לדווח על באג ב-Chromium.