Language Detector API là một API web phía máy khách được thiết kế để xác định ngôn ngữ của một chuỗi văn bản nhất định. Bằng cách thực hiện phát hiện cục bộ trong trình duyệt, API này tăng cường quyền riêng tư của người dùng và giảm nhu cầu về các thư viện bên ngoài nặng hoặc các lệnh gọi phía máy chủ tốn kém.
Các trường hợp sử dụng chính
- Chuẩn bị dịch: Xác định ngôn ngữ nguồn trước khi gửi văn bản cho người dịch.
- An toàn và lọc: Tải các mô hình cụ thể cho những nhiệm vụ như phát hiện nội dung độc hại.
- Hỗ trợ tiếp cận: Gắn nhãn nội dung bằng thuộc tính
langchính xác cho trình đọc màn hình. - Bản địa hoá giao diện người dùng: Điều chỉnh giao diện ứng dụng dựa trên ngôn ngữ nhập của người dùng.
Yêu cầu về phần cứng và hệ thống
- Hệ điều hành: Windows 10/11, macOS 13 trở lên, Linux hoặc Chromebook Plus.
- Bộ nhớ: 22 GB dung lượng trống (mô hình sẽ bị xoá nếu dung lượng giảm xuống dưới 10 GB).
- RAM/CPU: RAM 16 GB và CPU 4 nhân trở lên.
- VRAM: 4 GB trở lên nếu sử dụng GPU.
Hướng dẫn triển khai
1. Quản lý mô hình và kích hoạt người dùng
Kiểm tra xem mô hình có sẵn hay không trước khi cố gắng tạo thực thể cho trình phát hiện hoặc kích hoạt quá trình tải xuống.
BẮT BUỘC: Việc tạo thực thể cho trình phát hiện ngôn ngữ hoặc kích hoạt quá trình tải mô hình xuống bằng LanguageDetector.create() PHẢI do một cử chỉ của người dùng (chẳng hạn như nhấp vào nút) bắt đầu để ngăn chặn NotAllowedError khi mô hình ở trạng thái downloadable hoặc downloading.
// Check if the model is available or downloadable
const availability = await LanguageDetector.availability();
if (availability !== 'unavailable') {
button.addEventListener('click', async () => {
const detector = await LanguageDetector.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
});
});
}
2. Phát hiện chạy bộ
API này trả về một danh sách ngôn ngữ tiềm năng được xếp hạng kèm theo điểm tin cậy từ 0.0 đến 1.0.
const someUserText = 'Hallo und herzlich willkommen!';
const results = await detector.detect(someUserText);
for (const result of results) {
// result.detectedLanguage (e.g., 'de')
// result.confidence (e.g., 0.999)
console.log(result.detectedLanguage, result.confidence);
}
Tránh sử dụng trình phát hiện cho các cụm từ rất ngắn hoặc từ đơn, vì độ chính xác sẽ giảm đáng kể.
Bảo mật và môi trường
Iframe: Iframe khác nguồn gốc cần có Chính sách quyền rõ ràng để truy cập vào API.
<iframe src="https://cross-origin.example.com/" allow="language-detector" ></iframe>Trình chạy web: API này hiện không có trong Trình chạy web do sự phức tạp của Chính sách về quyền.
Quyền riêng tư: Không có dữ liệu nào được gửi đến Google hoặc bên thứ ba trong quá trình phát hiện.
Chiến lược dự phòng
Trước khi sử dụng, hãy kiểm tra xem đối tượng LanguageDetector có trong phạm vi toàn cục hay không:
if ('LanguageDetector' in self) {
// The Language Detector API is supported.
} else {
// Execute fallback strategy
}
Nếu API LanguageDetector không được hỗ trợ hoặc kết quả kiểm tra khả năng hỗ trợ trả về 'unavailable', thì bạn phải chuyển về trạng thái dự phòng một cách linh hoạt:
- Dự phòng API từ xa: Chuyển hướng yêu cầu phát hiện đến một điểm cuối máy chủ hoặc Cloud APIs (chẳng hạn như Vertex AI Gemini API) để xác định ngôn ngữ.
- Xuống cấp nhẹ: Tắt các phần tử/nút phát hiện ngôn ngữ và thông báo cho người dùng rằng tính năng phát hiện phía máy khách hiện không được hỗ trợ trong trình duyệt này, ngăn chặn mọi trường hợp ngoại lệ hoặc sự cố không được xử lý.