تاريخ النشر: 24 سبتمبر 2024، تاريخ آخر تعديل: 20 مايو 2025
شرح | الويب | الإضافات | حالة Chrome | النيّة بالشراء |
---|---|---|---|---|
MDN | العرض | Intent to Ship |
قبل ترجمة نص من لغة إلى أخرى، عليك أولاً تحديد اللغة المستخدمة في النص المحدّد. في السابق، كانت الترجمة تتطلّب تحميل النص إلى خدمة سحابية، ثم إجراء الترجمة على الخادم، ثم تنزيل النتائج.
تعمل واجهة برمجة التطبيقات Language Detector API من جهة العميل، ما يعني أنّه يمكنك حماية خصوصية المستخدم. على الرغم من إمكانية شحن مكتبة معيّنة تنفّذ هذه العملية، إلا أنّها ستتطلّب موارد إضافية لتنزيلها.
حالات استخدام ميزة "اكتشاف اللغة"
تكون واجهة برمجة التطبيقات Language Detector مفيدة بشكل أساسي في الحالات التالية:
- تحديد لغة النص المدخَل حتى يمكن ترجمته
- تحديد لغة النص المُدخَل، حتى يمكن تحميل النموذج الصحيح للمهام الخاصة باللغة، مثل رصد المحتوى السام
- تحديد لغة النص المدخل، حتى يمكن تصنيفه بشكل صحيح، على سبيل المثال، في مواقع التواصل الاجتماعي على الإنترنت
- تحديد لغة النص المدخل، حتى يمكن تعديل واجهة التطبيق وفقًا لذلك على سبيل المثال، على موقع بلجيكي، لعرض الواجهة ذات الصلة بالمستخدمين الذين يتحدثون الفرنسية فقط.
البدء
تتوفّر واجهة برمجة التطبيقات Language Detector API من الإصدار الثابت 138 من Chrome. نفِّذ عملية رصد الميزات لمعرفة ما إذا كان المتصفّح يتيح استخدام Language Detector API.
if ('LanguageDetector' in self) {
// The Language Detector API is available.
}
مراجعة متطلبات الأجهزة
في ما يلي المتطلبات التي يجب استيفاؤها من قِبل المطوّرين والمستخدمين الذين يشغّلون الميزات باستخدام واجهات برمجة التطبيقات هذه في Chrome. قد تتطلّب المتصفّحات الأخرى متطلبات تشغيل مختلفة.
تعمل واجهتا برمجة التطبيقات Language Detector وTranslator في متصفّح Chrome على أجهزة الكمبيوتر المكتبي. ولا تعمل واجهات برمجة التطبيقات هذه على الأجهزة الجوّالة. تعمل واجهات برمجة التطبيقات Prompt API وSummarizer API وWriter API وRewriter API في Chrome عند استيفاء الشروط التالية:
- نظام التشغيل: Windows 10 أو 11 أو macOS 13 (Ventura والإصدارات الأحدث) أو Linux لا تتوافق واجهات برمجة التطبيقات التي تستخدم Gemini Nano مع متصفّح Chrome على أجهزة Android وiOS وChromeOS حتى الآن.
- مساحة التخزين: يجب أن تتوفّر مساحة تخزين لا تقلّ عن 22 غيغابايت على وحدة التخزين التي تحتوي على ملفك الشخصي على Chrome.
- وحدة معالجة الرسومات (GPU): يجب أن تكون ذاكرة الوصول العشوائي للفيديو (VRAM) أكبر من 4 غيغابايت.
- الشبكة: بيانات غير محدودة أو اتصال غير محدود.
قد يختلف حجم Gemini Nano قليلاً. للعثور على الحجم الحالي، انتقِل إلى
chrome://on-device-internals
ثم إلى حالة النموذج.
افتح مسار الملف المُدرَج لتحديد حجم النموذج.
تنزيل النموذج
يعتمد اكتشاف اللغة على نموذج تم تحسينه خصيصًا لمهمة اكتشاف اللغات. على الرغم من أنّ واجهة برمجة التطبيقات مضمّنة في المتصفّح، يتم تنزيل النموذج عند الطلب في المرة الأولى التي يحاول فيها موقع إلكتروني استخدام واجهة برمجة التطبيقات. في 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;
}
تشغيل أداة رصد اللغة
تستخدم واجهة برمجة التطبيقات Language Detector API نموذج ترتيب لتحديد اللغة التي من المرجّح استخدامها في نص معيّن. الترتيب هو نوع من أنواع تعلّم الآلة، ويكون الهدف منه ترتيب قائمة من العناصر. في هذه الحالة، ترتّب واجهة برمجة التطبيقات Language Detector API اللغات من الاحتمال الأعلى إلى الاحتمال الأدنى.
يمكن أن تعرض الدالة 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
// ...
ساحة تجارب واجهة برمجة التطبيقات
جرِّب واجهة برمجة التطبيقات Language Detector API في ساحة لعب واجهات برمجة التطبيقات. أدخِل نصًا مكتوبًا بلغات مختلفة في مساحة النص.
الجهد المطلوب لتوحيد المقاييس
طلب فريق Chrome الحصول على ملاحظات من فريق الهندسة المعمارية التقنية في W3C، كما طلب من Mozilla وWebKit توضيح مواقفهما بشأن المعايير.
مشاركة ملاحظاتك
نريد أن نرى ما تنشئه باستخدام واجهة برمجة التطبيقات Language Detector API. يمكنك مشاركة مواقعك الإلكترونية وتطبيقات الويب معنا على X وYouTube وLinkedIn.
إذا كانت لديك ملاحظات حول طريقة تنفيذ Chrome لهذه الميزة، يُرجى إرسال تقرير عن خلل Chromium.