KO ▾
API 키 받기

Grok NSFW 모델을 위한 무검열 API

Groq API 속도 제한 및 429 한도 작동 방식

groq api 속도 제한을 검색했다면, Groq가 Grok 및 이 서비스와 별개의 회사이므로 그 한도는 자체 콘솔에 나열되어 있음을 참고하세요. 아래는 API의 속도 제한 및 컨텍스트 작동 방식과 이를 처리하는 클라이언트 작성 방법을 설명합니다.

업데이트됨

게이트를 통과하는 짧은 대기열이 있는 데이터 캡슐의 8개 병렬 레인을 나타내는 이미지

주요 포인트

  • Groq의 제한 사항은 Groq의 것입니다. 해당 문서를 확인하세요. 이 페이지에서는 당사 API의 제한 사항을 다룹니다.
  • 전체 키는 동시 요청 8개와 분당 300개를 허용합니다. 체험 키는 각각 2개와 60개를 허용합니다.
  • 429 응답에는 rate_limited 또는 concurrency 코드가 포함되며, 과부하 시 Retry-After: 5 헤더가 추가됩니다.
  • 스트리밍은 완료될 때까지 동시 요청 슬롯을 점유하므로 실제 처리량에 영향을 줍니다.

한도가 속한 서비스

이름이 혼동되기 쉽습니다. Groq는 자체 하드웨어에 모델을 호스팅하는 회사입니다. Grok는 xAI의 모델 계열입니다. 이 사이트는 둘 다 아니며, 독립적인 제공자가 운영하는 단일 오픈 웨이트 모델용 OpenAI 호환 API입니다(model ID uncensored). 따라서 특정 플랜의 분당 요청 수나 토큰 수와 같은 Groq API 속도 제한 자체를 확인하려면 Groq 콘솔이나 문서를 열고 계정에 해당하는 수치를 확인하세요. 수치는 변경되며 제가 추측하지 않습니다.

이후 내용은 당사 API에 정확히 적용되며, 이러한 습관은 모든 제공자에게 적용됩니다: 한도 헤더를 존중하고, 올바른 오류에만 재시도하며, 서버가 대신 처리하기 전에 자체 동시성을 제한하세요. Grok NSFW 설정을 위해 여기 오셨다면, 통합 가이드도 관련 오류를 다룹니다.

한도 요약

제한전체 키체험 키
동시 요청82
분당 요청 수30060
요청 본문8 MB8 MB
컨텍스트 창 (프롬프트 및 응답)100,000 토큰100,000 토큰

이 중 두 가지는 엄밀한 의미의 속도 제한으로, 분당 요청 수와 동시성입니다. 나머지 두 가지는 단일 요청의 크기 제한이며 속도 제한과 독립적입니다. 90,000 토큰 프롬프트를 가진 요청은 1줄 프롬프트와 마찬가지로 분당 300개에 대해 하나의 요청으로 계산되지만, 더 오래 걸리고 슬롯을 더 오래 점유합니다.

$0.50 체험 크레딧은 가입 후 API 키 페이지에서 한 번의 클릭으로 받을 수 있으며, 체험 한도를 사용합니다. 전체 키 한도는 충전 후에 적용됩니다.

3가지 유형의 429

모든 한도 오류는 HTTP 429로 발생하지만, 의미와 대응 방법이 다릅니다.

  • rate_limited: 분당 허용량을 초과한 요청을 보냈습니다. 속도를 줄이세요. 창은 1분이므로 요청을 균등하게 간격으로 보내는 것이 긴 일시 정지보다 더 도움이 됩니다.
  • concurrency: 동시에 너무 많은 요청이 진행 중입니다. 이전 요청이 완료될 때까지 기다리세요. 이는 스트리밍에서 흔하며, 각 요청은 전체 생성 동안 지속됩니다.
  • 일시적 과부하: 또한 429이며, Retry-After: 5 헤더가 있습니다. 이는 귀하의 과실이 아니며 키의 한도와 관련이 없습니다. 명시된 5초를 기다렸다가 재시도하세요.

실패한 요청은 요금이 부과되지 않으므로 재시도 루프는 최종적으로 성공한 하나의 요청 비용만 발생합니다. 응답에는 X-RateLimit-Limit-Requests 및 X-RateLimit-Limit-Concurrency가 포함되어 클라이언트가 하드 코딩된 값 대신 자체 한계를 읽을 수 있으며, 잔여 크레딧을 나타내는 X-Balance-USD와 지원팀에 문의할 때 기록하고 인용해야 하는 X-Request-Id도 포함됩니다.

처리량 계산: 분당 300을 달성하기 어려운 이유

두 한도는 상호 작용합니다. 8개의 동시 슬롯이 있으면 분당 완료할 수 있는 최대치는 8 x 60을 요청의 평균 지속 시간(초)으로 나눈 값입니다. 분당 300 요청을 실제로 달성하려면 요청의 평균 지속 시간이 8 x 60 / 300 = 1.6초여야 합니다. 더 느린 요청은 먼저 동시성으로 제한됩니다.

평균 요청 시간전체 키(8 슬롯) 기준 분당 최대체험 키(2 슬롯) 기준 분당 최대
2초24060
10초4812
20초246

이것은 가상의 요청 시간을 위한 산술 상한선이며 우리 서비스의 측정치가 아닙니다. 직접 요청 시간을 측정하세요. 핵심은 전체 키로 20초 동안 긴 창작 생성 시 분당 24 요청으로 제한되며 허용된 300보다 훨씬 낮다는 것입니다. 더 많은 처리량이 필요하면 max_tokens로 응답을 짧게 하거나 호출당 텍스트 양을 줄여 더 높은 요청 제한을 기대하지 마세요.

세 가지 경우 모두 처리하는 클라이언트

이 Python 클라이언트는 세마포어를 사용하여 자체 동시성을 제한하고, 존재할 경우 Retry-After를 읽으며, 그렇지 않으면 작은 지터로 백오프합니다. 공식 openai 패키지를 사용합니다.

import random
import threading
import time
from concurrent.futures import ThreadPoolExecutor

from openai import OpenAI, RateLimitError

client = OpenAI(
    base_url="https://api.groknsfw.top/v1",
    api_key="YOUR_KEY",
    max_retries=0,            # we handle retries ourselves
)

slots = threading.BoundedSemaphore(8)   # use 2 on the trial key

def ask(prompt, tries=6):
    for attempt in range(tries):
        with slots:
            try:
                r = client.chat.completions.create(
                    model="uncensored",
                    messages=[{"role": "user", "content": prompt}],
                    max_tokens=400,
                )
                return r.choices[0].message.content
            except RateLimitError as e:
                wait = e.response.headers.get("retry-after")
                body = e.response.text
        # sleep outside the slot so others can proceed
        delay = float(wait) if wait else min(2 ** attempt, 30)
        if "rate_limited" in body:
            delay = max(delay, 5)
        time.sleep(delay + random.random())
    raise RuntimeError("still rate limited after retries")

with ThreadPoolExecutor(max_workers=8) as pool:
    results = list(pool.map(ask, ["Write one line about the sea."] * 20))
print(len(results))

Node의 동일한 아이디어는 최대 8개의 대기 중인 프라미스를 허용하는 작은 큐이며, 아래 curl 확인은 한도 헤더를 인쇄하여 키의 한도를 확인할 수 있게 합니다:

curl -s -D - -o /dev/null https://api.groknsfw.top/v1/models \
  -H "Authorization: Bearer YOUR_KEY" | grep -i "x-"

스트리밍, 긴 프롬프트 및 컨텍스트

stream: true가 있는 스트리밍 요청은 마지막 이벤트가 도착할 때까지 동시성 슬롯을 유지합니다. 이는 느린 리더가 귀하에게 영향을 미친다는 것을 의미합니다: 각 청크를 처리하는 동안 코드가 일시 정지되면 슬롯이 점유된 상태로 유지됩니다. 스트림을 즉시 소비하세요.

긴 프롬프트는 두 가지 방식으로 한도와 상호 작용합니다. 첫째, 처리하는 데 더 많은 시간이 걸리므로 위의 공식에 따라 처리량을 낮춥니다. 둘째, 응답과 함께 100,000 토큰 창에 맞춰야 하므로 여백을 유지하세요. 오래된 대화 턴을 잘라내면 두 문제 모두에 도움이 되며, 동일한 정리가 청구액을 줄입니다: 입력 토큰 1M당 $0.15로, 20,000 토큰의 기록을 다시 보낼 때마다 $0.003의 비용이 발생합니다.

요청 형식의 세부 사항은 빠른 시작에 있으며, 요금은 가격 책정 페이지에 있습니다.

자신의 사용자에게 한도 표시

속도 제한도 제품 결정입니다. 앱이 최종 사용자와 API 사이에 있다면, 원시 429가 그들에게 도달해서는 안 됩니다. 대신 그들이 무엇을 볼지 미리 결정하세요.

  • 채팅 앱의 경우 짧은 "생성 중" 상태를 표시하고 메시지를 큐에 넣으세요. 화면에 활동이 있다면 몇 초의 대기는 대부분의 사용자에게 보이지 않습니다.
  • 배치 도구의 경우, 완료된 항목의 카운트로 진행 상황을 표시하고 작업을 백그라운드에서 실행하세요. 재시도는 내부적이어야 하며 오류로 표시되지 않아야 합니다.
  • 공유 배포의 경우, 자체 코드에서 각 사용자에게 작은 사용자별 할당량을 제공하여 한 사용자가 다른 사용자의 모든 8개 슬롯을 차지하지 않도록 하세요.

모든 실패에 대해 세 가지 항목을 기록하세요: X-Request-Id, 오류 코드 및 앱이 그 순간 진행 중이었던 요청 수. 이러한 정보를 통해 몇 분 내에 잘못된 클라이언트와 실제 부하를 구분할 수 있습니다. 문제가 서버 측에 있는 것처럼 보이면 요청 ID가 지원이 먼저 요청할 것입니다.

마지막으로 의도적으로 실패 경로를 테스트하세요. 의도적으로 세마포어를 낮게 설정한 클라이언트와 높은 클라이언트로 실행하고 로그가 무엇을 보여주는지 확인하세요. 한 번도 실행되지 않은 재시도 루프는 신뢰할 수 없습니다. 동시 요청이 2개만 허용되는 체험 키는 짧은 스크립트로 concurrency 오류를 쉽게 발생시키고 코드 반응을 볼 수 있는 편리한 장소이며, 요청당 몇 분의 1센트의 비용이 듭니다.

일반적인 실수

대부분의 429 문제는 몇 가지 패턴으로 인해 발생합니다.

  1. 즉시 재시도하기 모든 실패 시 재전송하는 루프는 한 번의 초과 순간을 폭풍으로 바꿉니다. 기다리고, 지터를 추가하며, 시도 횟수를 제한하세요.
  2. 모든 것을 재시도하기. 429 및 일시적 서버 오류에만 재시도가 필요합니다. 잘못된 요청이나 잘못된 키는 항상 동일한 방식으로 실패합니다.
  3. 스트림을 카운트에 포함하는 것을 잊기. 전체 키의 10개 열린 채팅 창은 10개의 스트림일 수 있으며, 이는 8개 슬롯보다 2개 더 많습니다.
  4. 타임아웃을 설정하지 않기 응답이 없는 연결은 슬롯을 계속 점유합니다. HTTP 클라이언트에 각 요청에 적절한 타임아웃을 설정하세요.
  5. 평균을 기준으로 크기 조정하기 트래픽은 버스트로 들어옵니다. 일일 평균이 아닌 가장 바쁜 1분을 위해 계획하세요.

출시 전 용량 계획

최대 부하에서 역산하세요. 동시에 30명의 사용자가 채팅하고 각 응답이 약 15초 동안 스트리밍된다고 가정하면, 모든 사용자가 전송하는 순간 30개의 슬롯이 필요하며, 전체 키는 8개를 제공합니다. 나머지는 자체 앱에서 큐에 넣고 짧은 대기 시간을 표시하며 슬롯이 비면 처리하세요. 8개의 슬롯과 15초 응답으로 분당 8 x 60 / 15 = 32개의 응답을 완료할 수 있습니다.

배치 작업의 경우, 동시성 제한과 동일한 고정 작업자 풀을 실행하고 재시도 로직이 일시적 과부하를 처리하도록 하세요. 한도를 우회하는 대신 큐를 구축하세요: 이는 예측 가능한 동작을 제공하고 사용자에게 실제 대기 시간을 표시할 수 있게 합니다.

질문과 답변

이것이 Groq와 동일한가요?

아닙니다. Groq는 별도의 회사이며 Grok는 xAI의 모델 계열입니다. 이는 독립적인 OpenAI 호환 API이므로 자체 문서에서 Groq의 제한을 확인하세요.

한도를 초과하면 어떻게 되나요?

API는 분당 요청이 너무 많거나 동시 요청이 너무 많을 경우 HTTP 429를 반환하며, 오류 코드는 각각 rate_limited와 concurrency입니다. 기다렸다가 다시 시도하십시오.

Retry-After: 5가 무엇을 의미하나요?

일시적 과부하 시 API는 이 헤더와 함께 429를 반환합니다. 요청을 다시 보내기 전에 5초간 기다리십시오.

한도를 높일 수 있나요?

전체 키는 동시 요청 8개와 분당 300개의 요청을 허용하며, 체험 키는 동시 요청 2개와 분당 60개를 허용합니다. 현명한 방법은 자체 앱에서 작업을 큐에 넣고 작업자 풀의 크기를 동시 요청 제한에 맞게 조정하는 것입니다.

속도 제한 요청에 요금이 부과되나요?

아닙니다. 실패한 요청에는 요금이 부과되지 않으므로, 성공할 때까지 재시도는 무료입니다.

키는 양식 하나만 작성하면 받을 수 있습니다

계정을 생성하고 키를 복사한 후 기본 URL을 변경하세요. 설정은 이것으로 끝입니다.

API 키 받기