OpenAI의 Batch API 문서 한국어 번역본


Batch API 소개

Batch API는 OpenAI의 API 요청을 대량으로 비동기 처리할 수 있는 기능을 제공합니다. 요청은 24시간 이내에 처리되며, 기존 API 가격의 50% 할인된 가격으로 이용할 수 있습니다.


Batch 생성하기

POST https://api.openai.com/v1/batches 엔드포인트를 통해 요청 파일을 업로드하여 새로운 Batch를 생성하고 실행할 수 있습니다. 요청 파일은 JSONL 형식이어야 하며, 목적(purpose)을 'batch'로 명시하여 업로드해야 합니다. 현재는 /v1/chat/completions 엔드포인트만 지원됩니다.


요청 시 다음 파라미터를 전달해야 합니다:


- input_file_id (필수): 요청이 담긴 업로드된 파일의 ID

- endpoint (필수): Batch의 모든 요청에 사용될 엔드포인트 

- completion_window (필수): Batch 처리 시간 (현재는 24h만 지원)

- metadata (선택): Batch에 첨부할 사용자 정의 메타데이터


요청이 성공하면 생성된 Batch 객체가 반환됩니다.


Batch 조회하기

GET https://api.openai.com/v1/batches/{batch_id} 엔드포인트를 통해 특정 Batch를 조회할 수 있습니다. 요청 시 path parameter로 조회할 Batch의 ID를 전달해야 합니다. 응답으로는 해당 ID의 Batch 객체가 반환됩니다.


Batch 취소하기 

POST https://api.openai.com/v1/batches/{batch_id}/cancel 엔드포인트를 통해 진행 중인 Batch를 취소할 수 있습니다. 요청 시 path parameter로 취소할 Batch의 ID를 전달해야 합니다. 응답으로는 해당 ID의 Batch 객체가 반환됩니다.


Batch 목록 조회하기

GET https://api.openai.com/v1/batches 엔드포인트를 통해 조직의 Batch 목록을 조회할 수 있습니다. 선택적으로 after와 limit 쿼리 파라미터를 사용하여 페이지네이션 할 수 있습니다. 응답으로는 페이지네이션 된 Batch 객체 목록이 반환됩니다.


Batch 객체

Batch 객체는 다음과 같은 속성을 가집니다:


- id: Batch의 고유 ID

- object: 항상 "batch"로 설정

- endpoint: Batch에서 사용된 OpenAI API 엔드포인트

- errors: 오류 정보 

- input_file_id: Batch의 입력 파일 ID

- completion_window: Batch 처리 시간

- status: Batch의 현재 상태

- output_file_id: 성공한 요청의 출력을 담은 파일 ID  

- error_file_id: 오류가 발생한 요청의 출력을 담은 파일 ID

- created_at: Batch 생성 시각 (Unix timestamp)

- in_progress_at: Batch 처리 시작 시각 (Unix timestamp) 

- expires_at: Batch 만료 시각 (Unix timestamp)

- finalizing_at: Batch 완료 처리 시작 시각 (Unix timestamp)

- completed_at: Batch 완료 시각 (Unix timestamp) 

- failed_at: Batch 실패 시각 (Unix timestamp)

- expired_at: Batch 만료 시각 (Unix timestamp)

- cancelling_at: Batch 취소 시작 시각 (Unix timestamp)

- cancelled_at: Batch 취소 시각 (Unix timestamp) 

- request_counts: Batch 내 요청 상태별 개수

- metadata: 사용자 정의 메타데이터 (최대 16개 key-value 쌍)


요청 입력 객체

Batch 입력 파일의 각 줄은 다음과 같은 형식의 JSON 객체여야 합니다:


- custom_id (필수): 출력과 입력을 매칭하기 위한 개발자 제공 요청 ID (Batch 내 유일해야 함)  

- method (필수): 요청의 HTTP 메서드 (현재는 POST만 지원)

- url (필수): 요청에 사용될 OpenAI API의 상대 URL (현재는 /v1/chat/completions만 지원)

- body (필수): 요청의 본문


요청 출력 객체

Batch 출력 파일과 오류 파일의 각 줄은 다음과 같은 형식의 JSON 객체입니다:  


- id: 요청 고유 ID

- custom_id: 출력과 입력을 매칭하기 위한 개발자 제공 요청 ID

- response: 요청 응답 객체 (성공한 경우) 

- error: 요청 오류 객체 (실패한 경우)


주요 FAQ

- Batch API의 가격은 기존 API 대비 50% 할인된 가격으로 제공됩니다.

- Batch는 24시간 이내에 처리를 목표로 하며, 현재 이 기간은 변경할 수 없습니다.  

- Batch에 포함할 수 있는 요청 수에는 제한이 없지만, 사용량 등급에 따른 Batch 요청 속도 제한이 적용됩니다.

- Batch가 만료되거나 취소되면, 이미 완료된 작업에 대해서만 요금이 청구됩니다.

- Batch는 스트리밍과 zero data retention을 지원하지 않습니다.


나온지 얼마 안된건데 다 모르겠고 가격 반인건 좋네요

로컬이랑 서로 보완해서 쓰면 좋을듯...