import logging from openai import OpenAI import json import re import logging class GPTClient: def __init__(self, model="gpt-4o-mini", temperature=0.2): self.client = None self.model = model self.temperature = temperature self.set_client(api_key='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') def set_client(self, api_key): self.client = OpenAI(api_key=api_key) def ask(self, prompt: str) -> dict: """프롬프트를 이용하여 GPT 모델로부터 응답을 받습니다. 항상 JSON 형식으로 반환.""" try: response = self.client.chat.completions.create( model=self.model, temperature=self.temperature, messages=[{"role": "user", "content": prompt}] ) # GPT 응답 내용 가져오기 content = response.choices[0].message.content.strip() print(f'GPT 응답: {content}') # 불필요한 포맷팅 제거 (```json```) cleaned_content = re.sub(r"^```json|```$", "", content).strip() # JSON 변환 시도 return json.loads(cleaned_content) except json.JSONDecodeError as e: print(f'JSON 디코딩 실패: {e}. 원본 응답: {content}') return {} except Exception as e: print(f'GPT 통신 오류: {e}') return {}