호환성 수정
This commit is contained in:
@@ -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("사용자에 의해 작업이 중단되었습니다.")
|
||||
|
||||
Reference in New Issue
Block a user