61. 비용 50% 절감! OpenAI Batch API, 효율적으로 처리하는 방법

OpenAI Batch API는 대량의 요청을 처리하는 데 있어 50% 비용을 절감할 수 있다는 사실을 알고 있으셨나요? 비용을 50%나 절감하면서도 대량 데이터 처리 작업을 훨씬 더 효율적으로 수행할 수 있습니다. 이 글에서는 Batch API의 주요 기능과 사용법을 흥미롭게 소개하며, 대량 작업 처리 시 비용을 절감하는 방법을 알아보겠습니다.

OpenAI 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를 이용하여 데이터 번역이라던지, 다양한 작업들을 진행하고 있어요!

여러분도 한번 사용해보시면 좋을 거 같아요!

답글 남기기