import os
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()  # .env 를 자동 탐색(현재 폴더부터 상위로)해 OPENAI_API_KEY 로드
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))

# --- 단발성 Chat Completion 호출 ---
# 1) 정답
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[
        {'role': 'system', 'content': '당신은 친절한 AI 도우미입니다.'},
        {'role': 'user', 'content': '안녕, 챗봇!'},
    ],
)

# 응답은 객체 → 속성으로 접근한다
print('챗봇:', response.choices[0].message.content)


# --- system 프롬프트 ---
# 챗봇 성격 — 한 줄만 활성화해 바꿔보세요
system_prompt = '당신은 친절한 AI 도우미입니다.'
# system_prompt = '당신은 여행 가이드입니다. 여행 정보를 제공하세요.'
# system_prompt = '당신은 초등학생도 이해하도록 쉽게 설명하는 선생님입니다.'


# --- CLI 챗봇 루프 ---
def ask_chatgpt(user_input):
    # 2) 정답
    try:
        response = client.chat.completions.create(
            model='gpt-4o-mini',
            messages=[
                {'role': 'system', 'content': system_prompt},
                {'role': 'user', 'content': user_input},
            ],
        )
        return response.choices[0].message.content
    except Exception as error:
        print('API 요청 중 오류 발생:', str(error))
        return '응답을 가져오는 도중 오류가 발생했습니다.'


if __name__ == '__main__':
    print('챗봇과 대화를 시작합니다. (종료: exit)')
    while True:
        user_input = input('\n나: ').strip()
        if user_input.lower() == 'exit':
            break
        print('챗봇:', ask_chatgpt(user_input))
