게시일: 2025년 1월 13일
이 문서는 LLM 챗봇에 관한 3부작 시리즈의 마지막 문서입니다. 이전 도움말에서는 클라이언트 측 LLM의 강력한 기능을 살펴보고 할 일 목록 애플리케이션에 WebLLM 기반 챗봇을 추가하는 방법을 안내했습니다.
일부 최신 기기에는 대규모 언어 모델과 기타 AI 모델이 기기에 바로 탑재되어 있습니다. Chrome에서는 기본 제공 AI API를 브라우저에 통합할 것을 제안했으며, 다양한 API가 여러 개발 단계에 있습니다. 이러한 API 중 다수는 웹사이트가 동일한 구현과 모델을 사용하여 추론 성능을 극대화할 수 있도록 표준 프로세스를 거치고 있습니다.
Prompt API가 이러한 AI API 중 하나입니다. 이 기능을 사용하려면 개발자가 사전 체험 프로그램에 가입하는 것이 좋습니다. 신청이 수락되면 브라우저에서 프롬프트 API를 사용 설정하는 방법에 관한 안내가 전송됩니다. 프롬프트 API는 Chrome 확장 프로그램용 오리진 트라이얼에서 사용할 수 있으므로 실제 확장 프로그램 사용자를 대상으로 이 API를 테스트할 수 있습니다.
공유 모델 액세스
프롬프트 API는 WebLLM과 유사하게 작동합니다. 하지만 이번에는 모델 선택이 없습니다 (브라우저와 함께 제공되는 LLM을 사용해야 함). 내장 AI를 사용 설정하면 Chrome에서 Gemini Nano를 브라우저에 다운로드합니다. 그러면 이 모델을 여러 출처에서 공유하고 최대 성능으로 실행할 수 있습니다. 개발자가 모델 선택 기능을 추가해 달라고 요청한 GitHub 문제가 있습니다.
대화 설정
메시지 대화는 똑같은 방식으로 시작할 수 있지만 프롬프트 API는 시스템 프롬프트를 지정하는 약식 구문도 제공합니다. LanguageModel 인터페이스에서 create() 메서드를 사용하여 언어 모델 세션을 시작합니다.
const session = await LanguageModel.create({
initialPrompt: [
{
type: 'system',
content: `You are a helpful assistant. You will answer questions related
to the user's to-do list. Decline all other requests not related to the
user's todos. This is the to-do list in JSON: ${JSON.stringify(todos)}`,
},
],
});
첫 번째 질문에 답변
스트리밍을 구성하는 구성 객체가 있는 대신 프롬프트 API는 다음과 같은 두 가지 별도의 메서드를 제공합니다.
prompt()은 전체 문자열을 반환합니다.promptStreaming()는 비동기 반복 가능 항목을 반환합니다. WebLLM과 달리 프롬프트 API는 전체 문자열 응답으로 응답하므로 결과를 직접 결합할 필요가 없습니다.
다른 출처에서 이전에 모델 다운로드를 트리거하지 않은 경우 Gemini Nano가 브라우저에 다운로드되는 동안 첫 번째 요청이 매우 오래 걸릴 수 있습니다. 모델을 이미 사용할 수 있는 경우 추론이 즉시 시작됩니다.
const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
console.log(reply);
}

데모
요약
LLM을 애플리케이션에 통합하면 사용자 경험을 크게 개선할 수 있습니다. 클라우드 서비스는 사용자의 기기에 관계없이 고품질 모델과 높은 추론 성능을 제공하지만, WebLLM 및 Chrome의 프롬프트 API와 같은 온디바이스 솔루션은 오프라인으로 작동할 수 있고, 개인 정보 보호를 개선하며, 클라우드 기반 대안에 비해 비용을 절감합니다. 이 새로운 API를 사용해 웹 애플리케이션을 더 스마트하게 만들어 보세요.