엔드포인트

4.1 엔드포인트 표

적합한 서비스는 필수로 표시된 모든 엔드포인트를 구현해야 한다. 선택적인 엔드포인트는 구현할 수 있으며, 그 경우 서비스 설명의 기능 플래그로 알린다.

메서드 경로 요구 수준 용도
GET /.well-known/lmsp.json 필수 서비스 및 기능 검색
GET /lmsp/v1/openapi.json 필수 기계 판독 가능한 인터페이스 사양
GET /lmsp/v1/health 필수 활성 상태 및 준비 상태 확인
POST /lmsp/v1/pair 필수 페어링 코드를 베어러 토큰으로 교환
GET /lmsp/v1/models 필수 로컬 모델 나열
GET /lmsp/v1/models/{model_id} 필수 모델 하나 가져오기
POST /lmsp/v1/responses 필수 동기 또는 스트리밍 생성
GET /lmsp/v1/responses/{response_id} 선택 저장된 응답 조회
POST /lmsp/v1/tasks 필수 비동기 생성 작업 만들기
GET /lmsp/v1/tasks/{task_id} 필수 비동기 작업 가져오기
POST /lmsp/v1/tasks/{task_id}/cancel 필수 비동기 작업 취소
GET /lmsp/v1/tasks/{task_id}/events 선택 이벤트 스트림 구독 또는 재개
POST /lmsp/v1/models/{model_id}/load 선택 모델 미리 로드
POST /lmsp/v1/models/{model_id}/unload 선택 모델 언로드

/v1 아래의 OpenAI 호환 엔드포인트와 선택적인 Ollama 호환 엔드포인트는 8장에 나열되어 있다.

4.2 규칙

  • 본문. 요청과 응답의 본문은 JSON(application/json)이다. 다만 이벤트 스트림(text/event-stream)과 오류(application/problem+json)는 예외이다.
  • 경로 매개변수. {model_id}처럼 중괄호로 묶은 이름은 자리 표시자이다. 값은 퍼센트 인코딩해야 한다. qwen3:14b-q4_k_m 같은 모델 id는 qwen3%3A14b-q4_k_m으로 보낸다.
  • 인증. /.well-known/lmsp.json, /lmsp/v1/openapi.json, /lmsp/v1/health, /lmsp/v1/pair를 제외한 모든 엔드포인트는 Authorization: Bearer <token>을 요구한다.
  • 선택적 엔드포인트. 서비스가 구현하지 않은 선택적 엔드포인트는 오류 코드 unsupported_capability와 함께 501 Not Implemented로 응답해야 한다.
  • 버전과 오류. 요청은 버전 헤더를 실을 수 있고, 모든 오류는 하나의 형식을 쓴다. 둘 다 9장에서 정의한다.
  • 계약. /lmsp/1.0/openapi.json에 공개된 OpenAPI 문서는 이 페이지의 기계 판독 가능한 형태이다. 둘이 다를 경우 본문이 규범이다.