From 9c072e629e657412ac80d2968b1474438f5b86e1 Mon Sep 17 00:00:00 2001 From: cheetahadmin Date: Thu, 18 Sep 2025 01:13:40 +0000 Subject: [PATCH] Update 1/model.py --- 1/model.py | 92 +++++++++++------------------------------------------- 1 file changed, 19 insertions(+), 73 deletions(-) diff --git a/1/model.py b/1/model.py index 4b9a21a..6137dea 100644 --- a/1/model.py +++ b/1/model.py @@ -1,82 +1,28 @@ -# model.py +# model.py - 최소한의 구현 import triton_python_backend_utils as pb_utils import numpy as np -import json -import random -import string class TritonPythonModel: def initialize(self, args): - """ - 모델이 로드될 때 딱 한 번만 호출됩니다. - """ - self.logger = pb_utils.Logger - self.model_name = args["model_name"] - self.model_config = json.loads(args["model_config"]) - self.logger.log_info(f"'{self.model_name}' 모델 초기화 완료") - + print("Model initialized") + def execute(self, requests): - """ - Triton이 각 추론 요청에 대해 호출하는 실행 함수입니다. - """ + print(f"Received {len(requests)} requests") responses = [] - - # 각 추론 요청을 순회하며 처리합니다. - for request in requests: - try: - # 입력 텐서 직접 가져오기 - self.logger.log_info("입력 텐서 직접 가져오기") - input_tensor = pb_utils.get_input_tensor_by_name(request, "INPUT") - self.logger.log_info(f"input_tensor: '{input_tensor}'") - - if input_tensor is None: - # 입력이 없는 경우 기본값 처리 - input_text = "default_input" - else: - # numpy 배열로 변환 후 문자열로 디코딩 - input_array = input_tensor.as_numpy() - if len(input_array) > 0: - # bytes인 경우 decode, 아니면 str로 변환 - first_element = input_array[0] - if isinstance(first_element, bytes): - input_text = first_element.decode('utf-8') - elif isinstance(first_element, np.bytes_): - input_text = first_element.decode('utf-8') - else: - input_text = str(first_element) - else: - input_text = "empty_input" - - self.logger.log_info(f"INPUT 처리됨: {input_text}") - - # 랜덤 문자열 생성 - random_string = ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(16)) - output_text = f"Processed: {input_text} -> {random_string}" - - self.logger.log_info(f"OUTPUT 생성됨: {output_text}") - - # 출력 텐서 생성 - bytes 형태로 직접 생성 - output_bytes = output_text.encode('utf-8') - output_tensor = pb_utils.Tensor("OUTPUT", np.array([output_bytes], dtype=np.object_)) - - # 응답 생성 - response = pb_utils.InferenceResponse(output_tensors=[output_tensor]) - responses.append(response) - - except Exception as e: - # 오류 발생시 오류 응답 생성 - self.logger.log_error(f"실행 중 오류 발생: {str(e)}") - error_msg = f"Error: {str(e)}" - output_bytes = error_msg.encode('utf-8') - output_tensor = pb_utils.Tensor("OUTPUT", np.array([output_bytes], dtype=np.object_)) - response = pb_utils.InferenceResponse(output_tensors=[output_tensor]) - responses.append(response) - + + for i, request in enumerate(requests): + print(f"Processing request {i}") + + # 고정된 응답 생성 + output_data = "Hello World" + output_tensor = pb_utils.Tensor("OUTPUT", np.array([output_data])) + + response = pb_utils.InferenceResponse(output_tensors=[output_tensor]) + responses.append(response) + print(f"Response {i} created") + + print("All responses ready") return responses - + def finalize(self): - """ - 모델 종료시 정리 작업 - """ - self.logger.log_info(f"'{self.model_name}' 모델 종료") - pass \ No newline at end of file + print("Model finalized") \ No newline at end of file