runpod/runpod-python

🐍 | Python library for Runpod API and serverless worker SDK.

Runpod | Python 라이브러리

자신의 코드에서 Runpod의 클라우드 플랫폼(GPU 기반 "pods" 및 서버리스 엔드포인트)과 통신할 수 있게 해주는 가볍고 문서화가 잘 된 Python SDK입니다. Runpod REST v2 API를 래핑하고, 서버리스 워커(사용자 정의 모델 추론 API)를 구축하기 위한 작은 프레임워크를 제공하며, pod 수명 주기 관리를 위한 도우미를 포함합니다.


기능 소개

영역 기능
서버리스 워커 SDK 작업을 처리하는 Python 함수를 작성한 후 runpod.serverless.start({"handler": my_func})로 시작합니다. SDK는 상태 확인, 선택적 GPU/볼륨 워밍 캐시를 처리하며, 디버깅을 위해 로컬에서 실행할 수 있습니다.
REST v2 래퍼 runpod.Endpoint(id)는 배포된 엔드포인트를 호출하기 위한 .run()(비동기) 및 .run_sync()(동기) 메서드가 포함된 객체를 제공합니다.
Pod 관리 runpod.create_pod(), runpod.get_pods(), runpod.stop_pod(), runpod.resume_pod(), runpod.terminate_pod()와 같은 함수를 통해 프로그래밍 방식으로 GPU 또는 CPU pod를 시작, 쿼리 및 제어할 수 있습니다.
API 키 처리 runpod.api_key를 통한 전역 키 또는 엔드포인트별 키 설정이 가능하며, 우선순위가 문서화되어 있고 스레드 안전합니다.
유틸리티 도우미 네트워크 마운트된 모델 캐시를 예열하기 위한 VolumeCache, 워커 시작 전 GPU, 디스크 공간 등을 확인하는 피트니스 체크 데코레이터 등이 포함되어 있습니다.

퀵 스타트 (서버리스 워커)

# my_worker.py
import runpod

def is_even(job):
    n = job["input"]["number"]
    if not isinstance(n, int):
        return {"error": "need an integer"}
    return n % 2 == 0

runpod.serverless.start({"handler": is_even})

이 스크립트를 컨테이너의 진입점(Docker CMD 또는 Runpod 템플릿)으로 추가하면 해당 함수가 사용자 정의 API 엔드포인트로 노출됩니다.

퀵 스타트 (기존 엔드포인트 호출)

import runpod
runpod.api_key = "YOUR_KEY"

ep = runpod.Endpoint("ENDPOINT_ID")
result = ep.run_sync({"text": "hello"})
print(result)   # → 모델 출력 또는 상태 딕셔너리

Pod 수명 주기 예제

import runpod
runpod.api_key = "YOUR_KEY"

# GPU pod 생성
pod = runpod.create_pod(name="demo", image="runpod/stack", gpu_type="NVIDIA GeForce RTX 4090")
print(pod["id"])

# 나중에…
runpod.stop_pod(pod["id"])   # 일시 중지
runpod.resume_pod(pod["id"]) # 재개
runpod.terminate_pod(pod["id"]) # 삭제

설치

# 안정화 버전
pip install runpod   # 또는: uv add runpod

# 최신 개발 버전
pip install git+https://github.com/runpod/runpod-python.git

Python 3.10 이상이 필요합니다.


주요 설계 포인트

  • 피트니스 체크 – 데코레이터(@runpod.serverless.register_fitness_check)는 워커 시작 시 한 번 실행됩니다. 실패 시 프로세스가 중단되어 오케스트레이터가 정상적인 인스턴스를 다시 시작할 수 있도록 합니다.
  • 네트워크 볼륨 워밍 캐시 – VolumeCache는 콜드 스타트 시 원격 볼륨(예: HuggingFace 모델 캐시)을 로컬 저장소로 복사하고 종료 시 다시 동기화하여, 수 GB의 다운로드 비용을 엔드포인트당 1회 비용으로 줄여줍니다.
  • 스레드 안전한 엔드포인트 객체 – 각 Endpoint는 자체 API 키를 저장하므로 여러 스레드에서 동시에 요청을 보내도 안전합니다.
  • 완벽한 Pod 생성 기능 – GPU 및 CPU pod, 사용자 정의 Docker 인수, 볼륨 마운트, 배치 제약 조건 및 스케일링 매개변수를 지원합니다.

다음 단계

  • 문서 – https://docs.runpod.io/serverless-ai/custom-apis 및 저장소의 docs/ 폴더를 참조하세요.
  • 예제 – examples/ 디렉토리에서 바로 사용할 수 있는 워커 및 pod 스크립트를 확인하세요.
  • 커뮤니티 – Discord(README에 링크 있음)에 참여하여 도움, 기능 요청 및 공지 사항을 확인하세요.

요약: runpod Python 패키지는 코드와 Runpod GPU 클라우드를 연결하는 공식 프로덕션급 브리지로, 몇 줄의 Python 코드만으로 pod를 시작하고, 모델 엔드포인트를 호출하거나, 사용자 정의 서버리스 추론 API를 배포할 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트