# ============================================================
# [실습] 대화형 챗봇: 멀티턴과 Temperature
#
# 아래 항목을 직접 구현해 완성하세요:
#  1) chat(user_input): 사용자 메시지를 messages 에 추가하고, 누적된 전체 대화를 보내 답변을 받은 뒤 그 답변을 assistant 역할로 다시 추가하고 반환한다.
#  2) trim_history(history): history 길이가 MAX_HISTORY_LENGTH 를 넘으면 system(0번)은 두고 오래된 대화부터 제거한다.
#  3) temperature, max_tokens, top_p, frequency_penalty, presence_penalty 를 지정해 모델을 호출한다.
# ============================================================

import os
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))

# --- messages 로 대화 이력 누적하기 ---
messages = [
    {'role': 'system', 'content': '당신은 친절한 AI 도우미입니다.'},
]


def chat(user_input):
    # 1) 여기에 코드를 작성하세요
    pass


# --- 대화 이력 길이 관리 ---
MAX_HISTORY_LENGTH = 10


def trim_history(history):
    # 2) 여기에 코드를 작성하세요
    pass


# --- Temperature 등 파라미터 조절 ---
temperature = 0.7  # 0.0 (정확·일관) / 1.5 (창의·다양)

# 3) 여기에 코드를 작성하세요 (위 파라미터들을 지정해 gpt-4o-mini 호출 → response)


if __name__ == '__main__':
    print('[멀티턴 대화]')
    print('사용자: 내 이름은 홍길동이야.')
    print('AI:', chat('내 이름은 홍길동이야.'))
    print('사용자: 내 이름이 뭐라고 했지?')
    print('AI:', chat('내 이름이 뭐라고 했지?'))

    print('\n[Temperature 0.7 응답]')
    print(response.choices[0].message.content)
