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)
- tritonclient.grpc Python API — gRPC 기반 클라이언트
- 추론 프로토콜과 API — HTTP/REST·gRPC 옵션