webmachinelearning/prompt-api

💬 A proposal for a web API for prompting browser-provided language models

해결하는 문제

이 프로젝트는 웹 개발자가 브라우저나 운영체제에 내장된 언어 모델에 직접 액세스할 수 있도록 하는 표준화된 JavaScript API를 제안합니다. 개발자는 클라우드 기반 API에만 의존하거나, WASM과 WebGPU를 통해 대규모 모델을 수동으로 번들링하고 실행할 필요가 없어지며, 이로 인해 비용 절감, 로컬 처리를 통한 프라이버시 향상, 오프라인 기능 제공이 가능해집니다.

작동 방식

API는 LanguageModel 인터페이스를 제공하여 세션을 생성할 수 있습니다. 개발자는 prompt()를 사용해 단일 응답을 얻거나, promptStreaming()을 사용해 실시간 출력을 받을 수 있습니다. 다음과 같은 고급 프롬프팅 기법을 지원합니다:

  • 시스템 프롬프트: 모델의 성격이나 맥락을 설정합니다 (예: "우아한 햄스터가 된 척해라").
  • N-샷 프롬프팅: 사용자/어시스턴트 상호작용 예시를 제공하여 모델의 행동을 안내합니다.
  • 도구 사용: JSON 스키마를 통해 외부 기능(도구)을 정의합니다. 모델은 도구 호출을 요청하고, 애플리케이션이 이를 실행한 후 결과를 세션에 피드백합니다.
  • 샘플링 파라미터: temperature와 topK를 조정하여 출력의 무작위성과 창의성을 제어합니다.

대상 사용자

자신의 모델 인프라를 관리하지 않고도 텍스트 분류, 요약, 번역, 인터랙티브 어시스턴트와 같은 AI 기능을 웹 애플리케이션에 통합하고자 하는 웹 개발자.

주요 특징

  • 로컬 실행: 장치 내 모델을 활용해 더 빠른 결과와 낮은 지연 시간을 제공합니다.
  • 모델 독립성: 브라우저나 OS가 제공하는 특정 모델에 관계없이 일관된 API를 제공합니다.
  • 도구 통합: 외부 데이터나 함수로 모델 기능을 확장할 수 있는 오픈 루프 도구 호출을 지원합니다.
  • 자원 효율성: 최적화된 내장 모델을 사용해 사용자 대역폭과 스토리지 부담을 줄입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트