호환성 수정

This commit is contained in:
2025-08-01 09:44:54 +09:00
parent 486c2ceeb8
commit e62ac36fb8
7 changed files with 227 additions and 185 deletions

View File

@@ -6,12 +6,7 @@ import argparse
import sys
from urllib.parse import urljoin
import logging
# --- 설정 ---
BASE_URL = "http://172.16.10.176:8888"
API_KEY = 'sk-e03e060ea4ee8edf2e057fbff3e68c28'
RETRY_COUNT_ON_404 = 3
RETRY_DELAY_ON_404 = 5
from dotenv import load_dotenv
# --- 로거 설정 ---
# 전역 로거 객체 생성
@@ -54,10 +49,12 @@ def start_extraction(post_url, file_path, filename, headers, model_name=None):
logger.exception(f"[{filename}] POST 요청 중 오류 발생")
return None
def check_progress(progress_path, filename, headers):
def check_progress(base_url, progress_path, filename, headers):
"""GET /extract/progress/{request_id}: 진행 상태 확인 (로깅 적용)"""
get_url = urljoin(BASE_URL + '/', progress_path.lstrip('/'))
get_url = urljoin(base_url + '/', progress_path.lstrip('/'))
RETRY_COUNT_ON_404 = 3
RETRY_DELAY_ON_404 = 5
retries_left = RETRY_COUNT_ON_404
last_status = ""
@@ -99,10 +96,22 @@ def check_progress(progress_path, filename, headers):
# --- 메인 실행 로직 ---
def main():
# .env 파일에서 환경 변수 로드 (workspace 디렉터리 기준)
dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(dotenv_path=dotenv_path)
# 로거를 가장 먼저 설정합니다.
setup_logger()
parser = argparse.ArgumentParser(description="문서 정보 추출 자동화 스크립트 (로깅 적용)")
# 환경 변수에서 API 정보 가져오기
BASE_URL = os.getenv("BASE_URL")
API_KEY = os.getenv("API_KEY")
if not BASE_URL or not API_KEY:
logger.error("환경 변수(BASE_URL, API_KEY)가 설정되지 않았습니다. workspace/.env 파일을 확인하세요.")
return
parser = argparse.ArgumentParser(description="문서 정보 추출 자동화 스크립트")
parser.add_argument("input_dir", help="입력 디렉터리 경로")
parser.add_argument("-o", "--output_dir", default="results", help="출력 디렉터리 경로")
parser.add_argument("--endpoint", choices=['i18n', 'd6c'], default='i18n', help="추출 API 엔드포인트 선택 (i18n 또는 d6c)")
@@ -145,7 +154,7 @@ def main():
logger.info(f"[{filename}] 작업 요청 성공. Request ID: {request_id}")
final_result = check_progress(status_check_url, filename, headers)
final_result = check_progress(BASE_URL, status_check_url, filename, headers)
if final_result:
output_path = os.path.join(args.output_dir, f"{os.path.splitext(filename)[0]}.json")
@@ -165,4 +174,4 @@ if __name__ == "__main__":
main()
except KeyboardInterrupt:
# KeyboardInterrupt는 main 밖에서 처리해야 할 수 있으므로 로거를 직접 호출
logging.getLogger(__name__).warning("사용자에 의해 작업이 중단되었습니다.")
logging.getLogger(__name__).warning("사용자에 의해 작업이 중단되었습니다.")