게시일: 2024년 9월 24일, 최종 업데이트: 2024년 12월 10일
텍스트를 한 언어에서 다른 언어로 번역하기 전에 먼저 지정된 텍스트에 사용된 언어를 확인해야 합니다. 이전에는 번역을 하려면 텍스트를 클라우드 서비스에 업로드하고 서버에서 번역을 실행한 후 결과를 다운로드해야 했습니다.
Language Detector API는 기기 내에서 추론을 사용하므로 개인 정보 보호 스토리를 개선할 수 있습니다. 이를 실행하는 특정 라이브러리를 제공할 수는 있지만 다운로드하는 데 추가 리소스가 필요합니다.
가용성
- Chrome 132~135에서 실행되는 Language Detector API 오리진 트라이얼에 참여하여 프로덕션 환경에서 실제 사용자를 대상으로 API를 테스트하세요. 출처 무료 체험을 사용하면 Chrome에서 출처의 모든 사용자에게 기능이 사용 설정됩니다.
- Chrome 상태에서 구현을 따르세요.
- Language Detector and Translator API 제안서는 논의에 열려 있습니다.
- 사전 미리보기 프로그램에 참여하여 새로운 기본 제공 AI API를 미리 살펴보고 메일링 리스트에 참여하여 토론에 참여하세요.
오리진 트라이얼 가입
Language Detector API를 사용하려면 다음 단계를 따르세요.
- Google의 생성형 AI 금지된 사용 정책을 확인합니다.
- Language Detector API 오리진 체험판으로 이동합니다.
- 등록을 클릭하고 양식을 작성합니다.
- 웹 출처 필드에 출처 또는 확장 프로그램 ID
chrome-extension://YOUR_EXTENSION_ID
를 입력합니다.
- 웹 출처 필드에 출처 또는 확장 프로그램 ID
- 제출하려면 등록을 클릭합니다.
- 제공된 토큰을 복사하여 무료 체험을 사용 설정하려는 출처 또는 확장 프로그램의 파일에 있는 모든 웹페이지에 추가합니다.
- 확장 프로그램을 빌드하는 경우 확장 프로그램 출처 무료 체험 안내를 따르세요.
- Language Detection API 사용을 시작합니다.
출처 무료 체험을 시작하는 방법을 자세히 알아보세요.
localhost에 지원 추가
오리진 트라이얼 중에 localhost
의 Language Detection API에 액세스하려면 Chrome을 최신 버전으로 업데이트해야 합니다. 그런 다음 아래 단계를 따르세요.
chrome://flags/#optimization-guide-on-device-model
페이지로 이동합니다.- Enabled BypassPerfRequirement를 선택합니다. 이렇게 하면 성능 검사와 VRAM 요구사항이 건너뛰어지므로 Gemini Nano가 기기에 다운로드되지 않을 수 있습니다.
chrome://flags/#language-detection-api
페이지로 이동합니다.- 사용 설정됨을 선택합니다.
- 다시 실행을 클릭하거나 Chrome을 다시 시작합니다.
사용 사례
Language Detector API는 주로 다음과 같은 시나리오에서 유용합니다.
- 입력 텍스트의 언어를 결정하여 번역할 수 있도록 합니다.
- 유해성 감지와 같은 언어별 태스크에 적절한 모델을 로드할 수 있도록 입력 텍스트의 언어를 결정합니다.
- 온라인 소셜 네트워킹 사이트와 같이 올바르게 라벨을 지정할 수 있도록 입력 텍스트의 언어를 결정합니다.
- 입력 텍스트의 언어를 결정하여 앱의 인터페이스를 적절하게 조정할 수 있습니다. 예를 들어 벨기에 사이트에서 프랑스어를 사용하는 사용자와 관련된 인터페이스만 표시할 수 있습니다.
Language Detector API 사용
Language Detector API는 Translator API 제품군에 속합니다. 먼저 기능 감지를 실행하여 브라우저가 Language Detector API를 지원하는지 확인합니다.
if ('ai' in self && 'languageDetector' in self.ai)
// The Language Detector API is available.
}
모델 다운로드
언어 감지는 언어 감지의 특정 작업에 맞게 미세 조정된 모델에 종속됩니다. API는 브라우저에 빌드되지만 모델은 사이트에서 API를 처음 사용하려고 할 때 주문형으로 다운로드됩니다. Chrome에서는 이 모델이 다른 모델에 비해 매우 작습니다. 실제로 이 모델은 Chrome 브라우저 기능에서도 사용되므로 이미 있을 수 있습니다.
모델을 사용할 준비가 되었는지 확인하려면 비동기 self.ai.languageDetector.capabilities()
함수를 호출하고 available
필드를 검사합니다.
다음과 같은 세 가지 응답이 가능합니다.
'no'
: 현재 브라우저에서 Language Detector API를 지원하지만 현재는 사용할 수 없습니다. 예를 들어 모델을 다운로드할 수 있는 여유 디스크 공간이 충분하지 않기 때문일 수 있습니다.'readily'
: 현재 브라우저는 Language Detector API를 지원하며 즉시 사용할 수 있습니다.'after-download'
: 현재 브라우저는 Language Detector API를 지원하지만 먼저 모델을 다운로드해야 합니다.
다운로드를 트리거하고 언어 감지기를 인스턴스화하려면 비동기 self.ai.languageDetector.create()
함수를 호출합니다. capabilities()
에 대한 응답이 'after-download'
인 경우 다운로드에 시간이 걸리는 경우 사용자에게 알릴 수 있도록 다운로드 진행률을 리슨하는 것이 좋습니다.
특정 언어를 감지할 수 있는지 확인하려면 languageAvailable()
함수를 호출합니다.
const languageDetectorCapabilities = await self.ai.languageDetector.capabilities();
languageDetectorCapabilities.languageAvailable('es');
// 'readily'
다음 예는 언어 감지기를 초기화하는 방법을 보여줍니다.
const languageDetectorCapabilities = await self.ai.languageDetector.capabilities();
const canDetect = languageDetectorCapabilities.capabilities;
let detector;
if (canDetect === 'no') {
// The language detector isn't usable.
return;
}
if (canDetect === 'readily') {
// The language detector can immediately be used.
detector = await self.ai.languageDetector.create();
} else {
// The language detector can be used after model download.
detector = await self.ai.languageDetector.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded} of ${e.total} bytes.`);
});
},
});
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를 미리 보세요. 텍스트 영역에 여러 언어로 작성된 텍스트를 입력합니다.
표준화 작업
상응하는 제안서가 충분한 지원을 받은 후 Language Detector API가 W3C 웹 인큐베이터 커뮤니티 그룹으로 이동했습니다. 이 API는 더 큰 Translation API 제안서의 일부입니다.
Chrome팀은 W3C 기술 아키텍처 그룹에 의견을 요청하고 Mozilla 및 WebKit에 표준 관련 입장을 요청했습니다.
의견 공유하기
Chrome 구현에 관한 의견이 있으면 Chromium 버그를 신고하세요. Translation API GitHub 저장소에서 기존 문제에 댓글을 달거나 새 문제를 열어 Language Detector API의 API 형식에 관한 의견을 공유하세요.