# ============================================================
# [실습] Few-shot 프롬프트 (예시로 형식 가르치기)
#
# few-shot = 예시 몇 개를 미리 보여줘 모델이 '같은 형식'으로 답하게 만드는 기법.
# 아래 항목을 직접 구현하세요:
#  1) 예제 한 건을 ("human", ...)/("ai", ...) 메시지 쌍으로 만든 뒤 FewShotChatMessagePromptTemplate 로 펼치고,
#     system + few-shot 메시지들 + 진짜 user 입력을 잇는 final_prompt 를 구성한다.
#     이어서 format_messages → invoke → .content 로 새 문장을 분석한다.
# ============================================================

from dotenv import load_dotenv

load_dotenv()  # .env 에서 OPENAI_API_KEY 로드

from langchain_core.prompts import ChatPromptTemplate, FewShotChatMessagePromptTemplate
from langchain_openai import ChatOpenAI

examples = [
    {"sentence": "오늘 정말 최고의 하루였어!", "result": "감정: 긍정 / 점수: 9"},
    {"sentence": "이거 진짜 별로네요. 시간 낭비였어요.", "result": "감정: 부정 / 점수: 2"},
    {"sentence": "그냥 평범했어요. 특별히 좋지도 나쁘지도 않았네요.", "result": "감정: 중립 / 점수: 5"},
]

# 1) 여기에 코드를 작성하세요
#    - example_prompt: ("human","{sentence}") / ("ai","{result}") 쌍
#    - fewshot_messages: FewShotChatMessagePromptTemplate(examples, example_prompt)
#    - final_prompt: system + fewshot_messages + ("human","{sentence}")
#    - format_messages(sentence="배송이 너무 느려서 답답했어요.") → invoke → .content 출력
