tritonclient.grpc Python API
tritonclient.grpc Python API
tritonclient.grpc는 Triton의 gRPC 엔드포인트와 통신하는 파이썬 클라이언트 라이브러리예요. HTTP 클라이언트와 비슷한 역할을 하지만 gRPC 기반이며, 스트리밍 추론(start_stream·async_stream_infer)과 KeepAlive 옵션 같은 gRPC 고유 기능도 제공해요.
출처: 공식문서
핵심 클래스
InferenceServerClient(url, ...)
Triton gRPC 서버와의 통신을 담당하는 클라이언트 객체예요.
- 추론 관련
infer(model_name, inputs, outputs=None, request_id="", model_version="", headers=None)— 모델 이름과 입력 텐서로 추론 요청을 보내고InferResult를 반환해요.async_infer(...)— 비동기 추론을 시작하고InferAsyncRequest핸들을 반환해요.start_stream(query_params=None, headers=None)— 추론 요청/응답 스트림을 시작해요.async_stream_infer(...)— 열린 스트림 위에서 비동기 추론을 시작해요.stop_stream(cancel_requests=False)— 스트림을 닫아요.
- 모델·서버 상태 조회
is_server_live()/is_server_ready()— 서버의 liveness/readiness 확인.is_model_ready(model_name, model_version="")— 모델 준비 상태 확인.get_model_metadata(model_name, model_version="")— 모델 메타데이터 조회.get_model_config(model_name, model_version="")— 모델 설정 조회.get_model_repository_index()— 모델 저장소 인덱스 조회.get_server_metadata()— 서버 메타데이터 조회.get_inference_statistics(model_name="")— 추론 통계 조회.
- 모델 관리
load_model(model_name, config=None, files=None)— 모델 로드.unload_model(model_name, 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()— 클라이언트 종료 및 세션 정리.
KeepAliveOptions(...)
gRPC KeepAlive 설정을 담는 객체로, 클라이언트와 서버 사이 연결 수명을 관리하기 위한 파라미터(keepalive time·timeout 등)를 지정해요.
InferInput(name, shape, datatype)
추론 요청의 입력 텐서를 설명하는 객체예요.
name()/datatype()/shape()— 입력 이름·데이터 타입·형상 조회.set_data_from_numpy(input_tensor)— numpy 배열로 텐서 데이터 설정.set_shape(shape)— 입력 형상 설정.set_shared_memory(region_name, byte_size, offset=0)/unset_shared_memory()— 시스템 shared memory 영역에서 텐서 데이터 설정/해제.
InferRequestedOutput(name)
추론 응답에서 반환받고 싶은 출력 텐서를 지정하는 객체예요.
name()— 출력 이름.set_binary_data(flag)— 출력을 바이너리 형식으로 받을지 설정.
InferResult
추론 응답 결과를 담는 객체예요.
as_numpy(name)— 이름으로 출력 텐서를 numpy 배열로 반환.get_output(name, as_json=False)— 지정 출력의 원시 protobuf 응답을 반환.get_response(as_json=False)— 전체 응답을 반환.
InferAsyncRequest(greenlet, verbose=False)
진행 중인 비동기 추론 요청의 핸들을 나타내는 객체예요.
get_result(block=True, timeout=None)— 연관된 비동기 추론의 결과를 반환.
InferenceServerClientPlugin(...)
InferenceServerClient의 플러그인 클래스로, 파생 클라이언트에서 공통 동작을 확장하는 기반 역할을 해요.
Request(...)
스트리밍·비동기 요청을 나타내는 객체예요.
더 알아보기 (Learn more)
- tritonclient.http Python API — HTTP/REST 기반 클라이언트
- HTTP/REST·gRPC 프로토콜 — gRPC 프로토콜 명세