TransWorker/main.py

45 lines
1.7 KiB
Python

import argparse
from modules.image_translate_server import run_server
from modules.image_processor2 import ImageProcessor
from modules.loggerModule import Logger1
from modules.gpt_client import GPTClient
import sys, os
def get_base_dir():
"""
실행 환경에 따라 base_dir을 설정하는 메서드.
cx_Freeze로 패키징된 경우 실행 파일의 경로, 일반 Python 환경일 경우 __file__을 기준으로 설정.
"""
if getattr(sys, 'frozen', False): # 패키징된 경우
base_dir = os.path.dirname(sys.executable)
internal_dir = os.path.join(base_dir, 'lib') # lib 디렉토리 포함
if os.path.exists(internal_dir): # lib 디렉토리가 존재하면 base_dir로 설정
return internal_dir
else: # 일반 Python 실행 환경
base_dir = os.path.dirname(os.path.abspath(__file__))
debug_dir = os.path.join(base_dir) # lib 디렉토리 포함
return debug_dir
def main():
parser = argparse.ArgumentParser(description="이미지 번역 FastAPI 서버 실행")
parser.add_argument('--workers', type=int, default=2, help='최대 동시 워커 수 (2~8)')
args = parser.parse_args()
max_workers = max(2, min(args.workers, 8))
# 실제 환경에 맞게 객체 생성
logger = Logger1()
gpt_client = GPTClient()
base_dir = get_base_dir()
font_path = os.path.join(base_dir, "modules", "fonts", "HakgyoansimDunggeunmisoTTFB.ttf")
print(f"font_path: {font_path}")
image_processor = ImageProcessor(logger, gpt_client, base_dir, font_path)
port = run_server(image_processor, max_workers)
print(f"서버가 127.0.0.1:{port} 에서 실행 중입니다.")
if __name__ == "__main__":
main()