tritonclient.http Python API

tritonclient.http Python API

tritonclient.http는 Triton의 HTTP/REST 엔드포인트와 통신하는 파이썬 클라이언트 라이브러리예요. 추론 요청, 모델·서버 메타데이터 조회, 모델 로드/언로드, shared memory 관리, 로그·트레이스 설정 등을 서버에 보낼 수 있어요.

출처: 공식문서

핵심 클래스

InferenceServerClient(url, ...)

Triton HTTP 서버와의 통신을 담당하는 클라이언트 객체예요. 주요 메서드는 다음과 같아요.

  • 추론 관련
    • infer(model_name, inputs, outputs=None, headers=None, query_params=None, request_id="", model_version="") — 모델 이름과 입력 텐서로 추론 요청을 보내고 InferResult를 반환해요.
    • async_infer(...) — 비동기 추론을 시작하고 InferAsyncRequest 핸들을 반환해요.
  • 모델·서버 상태 조회
    • is_server_live(headers=None, query_params=None) / is_server_ready(...) — 서버의 liveness/readiness를 확인해요.
    • is_model_ready(model_name, model_version="", headers=None) — 모델 준비 상태 확인.
    • get_model_metadata(model_name, model_version="") — 모델의 이름·버전·입출력 메타데이터 조회.
    • get_model_config(model_name, model_version="") — 모델의 config.pbtxt 설정 조회.
    • get_model_repository_index() — 모델 저장소의 모델 인덱스 조회.
    • get_server_metadata() — 서버 메타데이터 조회.
    • get_inference_statistics(model_name="") — 추론 통계 조회.
  • 모델 관리
    • load_model(model_name, headers=None, config=None, files=None) — 모델 로드.
    • unload_model(model_name, headers=None, unload_dependents=False) — 모델 언로드.
  • shared memory 관리 (시스템·CUDA)
    • register_system_shared_memory(name, key, byte_size, offset=0) / unregister_system_shared_memory(name) / get_system_shared_memory_status()
    • register_cuda_shared_memory(name, raw_handle, byte_size, offset=0) / unregister_cuda_shared_memory(name) / get_cuda_shared_memory_status()
  • 로그·트레이스
    • get_log_settings() / update_log_settings(settings) — 서버 로그 설정.
    • get_trace_settings(model_name) / update_trace_settings(settings, model_name="") — 트레이스 설정.
  • close() — 클라이언트 종료 및 세션 정리.

InferInput(name, shape, datatype)

추론 요청의 입력 텐서를 설명하는 객체예요.

  • name() / datatype() / shape() — 입력의 이름·데이터 타입·형상 조회.
  • set_data_from_numpy(input_tensor, binary_data=True) — numpy 배열로 텐서 데이터 설정. HTTP 본문에서 JSON 뒤에 바이너리 데이터로 전달할지(binary_data=True), JSON 안에 명시적 텐서로 할지(binary_data=False) 선택해요.
  • set_shape(shape) — 입력 형상 설정.
  • set_shared_memory(region_name, byte_size, offset=0) / unset_shared_memory() — 시스템 shared memory 영역에서 텐서 데이터 설정/해제.

InferRequestedOutput(name, binary_data=True)

추론 응답에서 반환받고 싶은 출력 텐서를 지정하는 객체예요.

  • name() — 출력 이름.
  • set_binary_data(flag) — 출력을 바이너리 형식으로 받을지 설정.

InferResult

추론 응답 결과를 담는 객체예요.

  • as_numpy(name) — 이름으로 출력 텐서를 numpy 배열로 반환.
  • get_output(name) — 지정 출력의 원시 응답을 반환.
  • get_response() — 전체 응답을 반환.

InferAsyncRequest(greenlet, verbose=False)

진행 중인 비동기 추론 요청의 핸들을 나타내는 객체예요.

  • get_result(block=True, timeout=None) — 연관된 비동기 추론의 결과를 반환. block=True이면 서버 응답을 기다리고, timeout을 넘기면 그 시간 안에 응답이 없을 때 InferenceServerException을 던져요.

더 알아보기 (Learn more)