OpenAI Batch API는 대량의 요청을 처리하는 데 있어 50% 비용을 절감할 수 있다는 사실을 알고 있으셨나요? 비용을 50%나 절감하면서도 대량 데이터 처리 작업을 훨씬 더 효율적으로 수행할 수 있습니다. 이 글에서는 Batch API의 주요 기능과 사용법을 흥미롭게 소개하며, 대량 작업 처리 시 비용을 절감하는 방법을 알아보겠습니다.
OpenAI Batch API
OpenAI 플랫폼을 사용하는 많은 경우, 즉각적인 응답이 필요하지 않거나 높은 비율 제한 때문에 많은 수의 쿼리를 빠르게 실행할 수 없습니다. 이러한 문제를 해결하기 위해 Batch API는 대량 평가, 대규모 데이터셋 분류, 콘텐츠 저장소 임베딩 등의 작업을 보다 효율적으로 처리할 수 있도록 도와줍니다.
주요 장점
- 비용 효율성: 동기식 API에 비해 무려 50%나 비용을 절감할 수 있습니다!
- 높은 비율 제한: 동기식 API에 비해 훨씬 높은 비율 제한을 제공하여 더 많은 요청을 처리할 수 있습니다.
- 빠른 완료 시간: 각 배치는 24시간 이내에 완료되며, 종종 더 빠르게 처리됩니다.
Batch API 사용 방법: step-by-step
1. 배치 파일 준비하기
먼저 각 줄에 개별 API 요청의 세부 정보를 포함하는 .jsonl 파일을 준비합니다. 현재 사용 가능한 엔드포인트는 /v1/chat/completions (Chat Completions API)와 /v1/embeddings (Embeddings API)입니다. 각 요청에는 고유한 custom_id 값을 포함해야 합니다.
예시 파일은 다음과 같습니다:
{"custom_id": "request-1", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gpt-3.5-turbo-0125", "messages": [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Hello world!"}],"max_tokens": 1000}}
{"custom_id": "request-2", "method": "POST", "url": "/v1/chat/completions", "body": {"model": "gpt-4o", "messages": [{"role": "system", "content": "You are an unhelpful assistant."},{"role": "user", "content": "Hello world!"}],"max_tokens": 1000}}
2. 배치 입력 파일 업로드
준비된 파일을 업로드하여 배치 처리를 시작합니다. 파일을 업로드하려면 다음과 같이 Files API를 사용합니다:
from openai import OpenAI
client = OpenAI(api_key="")
batch_input_file = client.files.create(
file=open("batchinput.jsonl", "rb"),
purpose="batch"
)
3. 배치 생성
입력 파일을 업로드한 후, 해당 파일 ID를 사용하여 배치를 생성합니다. 예를 들어, 파일 ID가 file-abc123인 경우 다음과 같이 배치를 생성합니다:
python코드 복사batch_input_file_id = batch_input_file.id
client.batches.create(
input_file_id=batch_input_file_id,
endpoint="/v1/chat/completions",
completion_window="24h",
metadata={
"description": "nightly eval job"
}
)
4. 배치 상태 확인
배치의 상태는 언제든지 확인할 수 있습니다. 다음 코드를 통해 배치 상태를 조회합니다:
client.batches.retrieve("batch_test")
5. 결과 가져오기
배치가 완료되면 결과를 다운로드할 수 있습니다. 다음 코드를 통해 결과를 가져옵니다:
content = client.files.content("file-test")
6. 배치 취소
진행 중인 배치를 취소해야 할 경우, 다음 코드를 사용하여 배치를 취소할 수 있습니다:
client.batches.cancel("batch_test")
7. 모든 배치 목록 조회
언제든지 모든 배치를 확인할 수 있습니다. 다음 코드를 사용하여 배치 목록을 조회합니다:
client.batches.list(limit=10)
Batch API로 처리 가능한 모델
Batch API는 다음 모델들에 대해 쿼리를 실행할 수 있습니다:
- gpt-4o
- gpt-4-turbo
- gpt-4
- gpt-3.5-turbo
- text-embedding-3-large
- 등등
대량 작업도 스마트하게, 비용도 절약하며
OpenAI Batch API는 대량의 요청을 효율적으로 처리하고 비용을 절감하는 데 있어 최적의 솔루션입니다. 이 API를 사용하면 대규모 데이터셋을 분류하고 평가하거나, 콘텐츠 저장소를 임베딩하는 등의 작업을 더 빠르고 경제적으로 수행할 수 있습니다. 지금 바로 Batch API를 활용해 보세요, 더 스마트하고 비용 효율적인 작업 처리를 경험해보세요!
저는 이런 batch api를 이용하여 데이터 번역이라던지, 다양한 작업들을 진행하고 있어요!
여러분도 한번 사용해보시면 좋을 거 같아요!