From ca11896a2c21aa4d4abc649dc203ffdb8704d37f Mon Sep 17 00:00:00 2001 From: kakusiA Date: Wed, 24 Sep 2025 12:04:19 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=ED=99=98=EA=B2=BD=EB=B3=80=EC=88=98?= =?UTF-8?q?=20=EB=B3=80=EA=B2=BD=20-=20log=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20-=20=ED=99=98=EA=B2=BD=EB=B3=91=EC=88=98?= =?UTF-8?q?=20load=5Fdotenv=20->=20setting=20=EC=82=AC=EC=9A=A9=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pre-processing-service/app/core/config.py | 2 +- .../app/service/blog/blog_create_service.py | 28 ++++++++----------- .../app/utils/llm_extractor.py | 5 ++-- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/apps/pre-processing-service/app/core/config.py b/apps/pre-processing-service/app/core/config.py index a710faba..ad7005ea 100644 --- a/apps/pre-processing-service/app/core/config.py +++ b/apps/pre-processing-service/app/core/config.py @@ -104,7 +104,7 @@ class BaseSettingsConfig(BaseSettings): MAX_IMAGE_SIZE_MB: int = 10 # 테스트/추가용 필드 - openai_api_key: Optional[str] = None # << 이 부분 추가 + OPENAI_API_KEY: Optional[str] = None # << 이 부분 추가 def __init__(self, **kwargs): super().__init__(**kwargs) diff --git a/apps/pre-processing-service/app/service/blog/blog_create_service.py b/apps/pre-processing-service/app/service/blog/blog_create_service.py index 70af1626..12154441 100644 --- a/apps/pre-processing-service/app/service/blog/blog_create_service.py +++ b/apps/pre-processing-service/app/service/blog/blog_create_service.py @@ -1,17 +1,14 @@ import json import logging -import os +from loguru import logger from datetime import datetime from typing import Dict, List, Optional, Any from openai import OpenAI -from dotenv import load_dotenv - +from app.core.config import settings from app.model.schemas import RequestBlogCreate from app.errors.BlogPostingException import * -# 환경변수 로드 -load_dotenv(".env.dev") class BlogContentService: @@ -19,14 +16,13 @@ class BlogContentService: def __init__(self): # OpenAI API 키 설정 - self.openai_api_key = os.getenv("OPENAI_API_KEY") + self.openai_api_key = settings.OPENAI_API_KEY if not self.openai_api_key: raise ValueError("OPENAI_API_KEY가 .env.dev 파일에 설정되지 않았습니다.") # 인스턴스 레벨에서 클라이언트 생성 self.client = OpenAI(api_key=self.openai_api_key) logging.basicConfig(level=logging.INFO) - self.logger = logging.getLogger(__name__) def generate_blog_content(self, request: RequestBlogCreate) -> Dict[str, Any]: """ @@ -39,26 +35,26 @@ def generate_blog_content(self, request: RequestBlogCreate) -> Dict[str, Any]: Dict: {"title": str, "content": str, "tags": List[str]} 형태의 결과 """ try: - self.logger.debug("[STEP1] 콘텐츠 컨텍스트 준비 시작") + logger.debug("[STEP1] 콘텐츠 컨텍스트 준비 시작") content_context = self._prepare_content_context(request) - self.logger.debug(f"[STEP1 완료] context length={len(content_context)}") + logger.debug(f"[STEP1 완료] context length={len(content_context)}") - self.logger.debug("[STEP2] 프롬프트 생성 시작") + logger.debug("[STEP2] 프롬프트 생성 시작") prompt = self._create_content_prompt(content_context, request) - self.logger.debug(f"[STEP2 완료] prompt length={len(prompt)}") + logger.debug(f"[STEP2 완료] prompt length={len(prompt)}") - self.logger.debug("[STEP3] OpenAI API 호출 시작") + logger.debug("[STEP3] OpenAI API 호출 시작") generated_content = self._generate_with_openai(prompt) - self.logger.debug(f"[STEP3 완료] generated length={len(generated_content)}") + logger.debug(f"[STEP3 완료] generated length={len(generated_content)}") - self.logger.debug("[STEP4] 콘텐츠 파싱 시작") + logger.debug("[STEP4] 콘텐츠 파싱 시작") result = self._parse_generated_content(generated_content, request) - self.logger.debug("[STEP4 완료]") + logger.debug("[STEP4 완료]") return result except Exception as e: - self.logger.error(f"콘텐츠 생성 실패: {e}") + logger.error(f"콘텐츠 생성 실패: {e}") return self._create_fallback_content(request) def _prepare_content_context(self, request: RequestBlogCreate) -> str: diff --git a/apps/pre-processing-service/app/utils/llm_extractor.py b/apps/pre-processing-service/app/utils/llm_extractor.py index 3fb200a5..7140b184 100644 --- a/apps/pre-processing-service/app/utils/llm_extractor.py +++ b/apps/pre-processing-service/app/utils/llm_extractor.py @@ -1,8 +1,7 @@ import os from openai import OpenAI from dotenv import load_dotenv - -load_dotenv() +from app.core.config import settings class LLMExtractor: @@ -13,7 +12,7 @@ def __init__(self, model="gpt-4o"): :param model: 사용할 LLM 모델 이름 """ - self.client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) + self.client = OpenAI(api_key=settings.OPENAI_API_KEY) self.model = model def login_extraction_prompt(self, target_description: str, html: str): From 0165eaafba8abebf39ace4f473c8360640eea406 Mon Sep 17 00:00:00 2001 From: kakusiA Date: Wed, 24 Sep 2025 12:08:43 +0900 Subject: [PATCH 2/2] =?UTF-8?q?style:FASTAPI=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=ED=8F=AC=EB=A9=A7=ED=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/service/blog/blog_create_service.py | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/pre-processing-service/app/service/blog/blog_create_service.py b/apps/pre-processing-service/app/service/blog/blog_create_service.py index 12154441..a66fa609 100644 --- a/apps/pre-processing-service/app/service/blog/blog_create_service.py +++ b/apps/pre-processing-service/app/service/blog/blog_create_service.py @@ -10,7 +10,6 @@ from app.errors.BlogPostingException import * - class BlogContentService: """RAG를 사용한 블로그 콘텐츠 생성 전용 서비스"""