Опубликовано: 24 сентября 2024 г., Последнее обновление: 20 мая 2025 г.
Прежде чем переводить текст с одного языка на другой, необходимо сначала определить, какой язык используется в данном тексте. Ранее перевод требовал загрузки текста в облачный сервис, выполнения перевода на сервере, а затем скачивания результатов.
API для определения языка работает на стороне клиента, что позволяет защитить конфиденциальность пользователей. Хотя можно включить в комплект специальную библиотеку, выполняющую эту функцию, для её загрузки потребуются дополнительные ресурсы.
Когда использовать определение языка
API для определения языка в первую очередь полезен в следующих сценариях:
- Определите язык входного текста, чтобы его можно было перевести.
- Определите язык входного текста, чтобы можно было загрузить правильную модель для задач, специфичных для данного языка, таких как обнаружение токсичности.
- Определите язык входного текста, чтобы его можно было правильно разметить, например, на сайтах социальных сетей.
- Определите язык вводимого текста, чтобы интерфейс приложения можно было соответствующим образом настроить. Например, на бельгийском сайте отображать только тот интерфейс, который подходит пользователям, говорящим по-французски.
Начать
Ознакомьтесь с требованиями к оборудованию.
Для разработчиков и пользователей, использующих функции этих API в Chrome, существуют следующие требования. Для других браузеров могут действовать иные требования.
API для определения языка и перевода работают в Chrome на настольных компьютерах. На мобильных устройствах эти API не работают.
API-интерфейсы Prompt , Summarizer , Writer , Rewriter и Proofreader работают в Chrome при соблюдении следующих условий:
- Операционная система : Windows 10 или 11; macOS 13+ (Ventura и более поздние версии); Linux; или ChromeOS (начиная с платформы 16389.0.0 и далее) на устройствах Chromebook Plus . Chrome для Android, iOS и ChromeOS на устройствах, отличных от Chromebook Plus, пока не поддерживаются API, использующими Gemini Nano.
- Место на диске : не менее 22 ГБ свободного места на томе, где находится ваш профиль Chrome.
- GPU или CPU : Встроенные модели могут работать как с GPU, так и с CPU.
- Графический процессор : строго более 4 ГБ видеопамяти.
- Процессор : 16 ГБ оперативной памяти или больше и 4 ядра или больше.
- Примечание : API Prompt с аудиовходом требует наличия графического процессора.
- Сеть : Безлимитный трафик или безлимитное подключение.
Точный размер Gemini Nano может измениться после обновления браузером модели. Чтобы узнать текущий размер, посетите chrome://on-device-internals .
Запустите проверку функциональности, чтобы узнать, поддерживает ли браузер 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
// ...
API-площадка
Поэкспериментируйте с API определения языка в нашей тестовой среде API . Введите текст, написанный на разных языках, в текстовое поле.
Политика разрешений, iframe и веб-воркеры
По умолчанию API определения языка доступен только окнам верхнего уровня и их iframe-элементам того же источника. Доступ к API можно делегировать iframe-элементам из других источников с помощью атрибута политики разрешений allow="" :
<!--
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 для определения языка недоступен в Web Workers. Это связано со сложностью создания ответственного документа для каждого Workers для проверки статуса политики разрешений.
Поделитесь своим мнением.
Мы хотим увидеть, что вы создаёте с помощью API Language Detector. Поделитесь с нами своими веб-сайтами и веб-приложениями на X , YouTube и LinkedIn .
Если у вас есть замечания по реализации в Chrome, создайте сообщение об ошибке в Chromium .
Присоединяйтесь к программе раннего ознакомления , чтобы первыми увидеть новые встроенные API для ИИ и получить доступ к обсуждениям в нашей почтовой рассылке.