게시일: 2025년 9월 12일
| 설명하듯이 | 웹 | 확장 프로그램 | Chrome 상태 | 의도 |
|---|---|---|---|---|
| GitHub | View | 실험 의도 |
교정은 문법, 맞춤법, 구두점의 오류를 찾아 수정하는 프로세스입니다. 브라우저와 운영체제는 점점 더 Google Docs와 같은 작성 도구에 교정 기능을 제공하고 있습니다.
Proofreader API를 사용하면 기본 제공 AI를 사용하여 웹 애플리케이션 또는 확장 프로그램에 대화형 교정 기능을 제공할 수 있습니다. 이 API는 다음과 같은 기능을 제공합니다.
- 수정: 문법, 맞춤법, 구두점에 대한 사용자 입력을 수정합니다.
- 라벨: 오류 유형별로 각 수정을 라벨링합니다.
- 설명: 오류가 무엇인지 또는 올바른 것이 필요한 이유를 정의합니다. 일반 언어로.
사용 사례
Proofreader API를 사용해야 하는 이유는 여러 가지가 있습니다. 예를 들면 다음과 같습니다.
- 게시물이 제출되기 전에 포럼 메시지, 기사에 대한 댓글, 이메일에 수정을 제안합니다.
- 활성 메모 작성 중에 수정을 제공합니다.
사용 사례가 누락되었나요? 의견을 공유하려면 사전 체험 프로그램 에 참여하세요.
시작하기
Chrome 141~145에서 실행되는 Proofreader API 오리진 트라이얼에 참여하세요.
하드웨어 요구사항 검토
Chrome에서 이러한 API를 사용하여 기능을 운영하는 개발자와 사용자에게는 다음과 같은 요구사항이 있습니다. 브라우저마다 운영 요구사항이 다를 수 있습니다.
언어 감지기 및 Translator API는 데스크톱의 Chrome에서 작동합니다. 이러한 API는 휴대기기에서 작동하지 않습니다.
Prompt API, Summarizer API, Writer API, Rewriter API, Proofreader API는 다음 조건이 충족될 때 Chrome에서 작동합니다.
- 운영체제: Windows 10 또는 11, macOS 13+ (Ventura 이상), Linux 또는 Chromebook Plus 기기의 ChromeOS (플랫폼 16389.0.0 이상). Chromebook Plus가 아닌 기기의 Android용 Chrome, iOS, ChromeOS는 아직 Gemini Nano를 사용하는 API에서 지원되지 않습니다.
- 저장용량: Chrome 프로필이 포함된 볼륨에 최소 22GB의 여유 공간.
- GPU 또는 CPU: 기본 제공 모델은 GPU 또는 CPU로 실행할 수 있습니다.
- GPU: VRAM이 4GB보다 엄격하게 많음.
- CPU: RAM 16GB 이상, CPU 코어 4개 이상.
- 참고: 오디오 입력이 있는 Prompt API에는 GPU가 필요합니다.
- 네트워크: 무제한 데이터 또는 데이터 전송량 제한이 없는 연결. Wi-Fi 및 이더넷 연결은 기본적으로 데이터 전송량 제한이 없는 반면, 셀룰러 연결은 데이터 전송량 제한이 있는 경우가 많습니다.
Gemini Nano의 정확한 크기는 브라우저에서 모델을 업데이트할 때 다를 수 있습니다. 현재 크기를 확인하려면 chrome://on-device-internals를 방문하세요.
localhost에 지원 추가
모든 기본 제공 AI API는 Chrome의 localhost에서 사용할 수 있습니다. 다음 플래그를 사용 설정됨으로 설정합니다.
chrome://flags/#optimization-guide-on-device-modelchrome://flags/#prompt-api-for-gemini-nano-multimodal-inputchrome://flags/#proofreader-api-for-gemini-nano
그런 다음 다시 시작 을 클릭하거나 Chrome을 다시 시작합니다. 오류가 발생하면 localhost 문제를 해결하세요.
오리진 트라이얼 가입
Proofreader API를 사용하려면 다음 단계를 따르세요.
- Google의 생성형 AI 금지된 사용 정책을 확인합니다.
- Proofreader API 오리진 트라이얼로 이동합니다.
- 등록 을 클릭하고 양식을 작성합니다. 웹 오리진 필드에
오리진 또는
확장 프로그램 ID
chrome-extension://YOUR_EXTENSION_ID를 입력합니다. - 제출하려면 등록 을 클릭합니다.
- 제공된 토큰을 복사하여 오리진의 모든 참여 웹페이지에 추가하거나 확장 프로그램 매니페스트에 포함합니다.
- 확장 프로그램을 빌드하는 경우 확장 프로그램 오리진 트라이얼 안내를 따르세요.
- Proofreader API 사용을 시작합니다.
오리진 트라이얼을 시작하는 방법을 자세히 알아보세요.
Proofreader API 사용
모델을 사용할 준비가 되었는지 확인하려면
Proofreader.availability()를 호출합니다.
availability()에 대한 응답이 "downloadable"인 경우 다운로드 진행률을 수신 대기하고 사용자에게 알립니다. 다운로드하는 데 시간이 걸릴 수 있기 때문입니다.
const options = {
expectedInputLanguages: ['en'],
};
const available = if (Proofreader.availability("downloadable") === true);
다운로드를 트리거하고 교정기를 인스턴스화하려면
사용자 활성화를 확인합니다. 그런 다음 비동기 Proofreader.create() 함수를 호출합니다.
const session = await Proofreader.create({
monitor(m) {
m.addEventListener('downloadprogress', (e) => {
console.log(`Downloaded ${e.loaded * 100}%`);
});
},
...options,
});
Proofreader 객체 만들기
Proofreader를 만들려면 Proofreader.create() 함수를 사용합니다.
const proofreader = await Proofreader.create({
expectedInputLanguages: ["en"],
monitor(m) {
m.addEventListener("downloadprogress", e => {
console.log(Downloaded ${e.loaded * 100}%);
});
}
};
create() 메서드에는 다음과 같은 옵션이 포함되어 있습니다.
expectedInputLanguages: 예상 입력 언어의 배열입니다.
설명하듯이의 includeCorrectionTypes 및 includeCorrectionExplanation 옵션은 지원되지 않습니다.
사용자 텍스트 교정 시작
입력 텍스트의 수정을 가져오려면 proofread()를 호출합니다.
const proofreadResult = await proofreader.proofread(
'I seen him yesterday at the store, and he bought two loafs of bread.',
);
수정은 ProofreadResult 유형입니다. correctedInput 속성에서 완전히 수정된 입력을 찾고 corrections 배열에서 수정 목록을 찾습니다.
let inputRenderIndex = 0;
console.log(proofreadResult.correction);
for (const correction of proofreadResult.corrections) {
// Render part of input that has no error.
if (correction.startIndex > inputRenderIndex) {
const unchangedInput = document.createElement('span');
unchangedInput.textContent = input.substring(inputRenderIndex, correction.startIndex);
editBox.append(unchangedInput);
}
// Render part of input that has an error and highlight as such.
const errorInput = document.createElement('span');
errorInput.textContent = input.substring(correction.startIndex, correction.endIndex);
errorInput.classList.add('error');
editBox.append(errorInput);
inputRenderIndex = correction.endIndex;
}
// Render the rest of the input that has no error.
if (inputRenderIndex !== input.length){
const unchangedInput = document.createElement('span');
unchangedInput.textContent = input.substring(inputRenderIndex, input.length);
editBox.append(unchangedInput);
}
권한 정책, iframe, 웹 워커
기본적으로 Proofreader API는 최상위 창과 동일한 오리진 iframe에서만 사용할 수 있습니다. 권한 정책 allow="" 속성을 사용하여 교차 오리진 iframe에 API 액세스 권한을 위임할 수 있습니다.
<!--
The hosting site at https://main.example.com can grant a cross-origin iframe
at https://cross-origin.example.com/ access to the Proofreader API by
setting the `allow="proofreader"` attribute.
-->
<iframe src="https://cross-origin.example.com/" allow="proofreader"></iframe>
Proofreader API는 웹 워커에서 사용할 수 없습니다. 이는 권한 정책 상태를 확인하기 위해 각 워커에 책임 있는 문서를 설정하는 것이 복잡하기 때문입니다.
데모
Proofreader API Playground를 사용해 보고 소스 코드를 확인하세요.
참여 및 의견 공유
Proofreader API는 현재 활발히 논의되고 있으며 향후 변경될 수 있습니다. 이 API를 사용해 보고 의견이 있다면 언제든지 알려주세요.
- 설명하듯이를 읽고, 질문을 하고 토론에 참여하세요.
- Chrome 상태에서 Chrome 구현 검토
- Mozilla 표준 위치 및 WebKit 표준 위치를 읽어보세요.
- 사전 체험 프로그램에 참여하여 새로운 API를 미리 살펴보고 메일링 리스트에 액세스하세요.
- Chrome 구현에 관한 의견이 있으면 Chromium 버그를 신고하세요.
브라우저에서 대규모 언어 모델을 비롯한 모델을 사용하는 모든 기본 제공 AI API를 알아보세요.