from sentence_transformers import SentenceTransformer
from transformers import pipeline

# 1) 정답 — 임베딩: 문장을 의미 벡터로
embed_model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2")
emb = embed_model.encode("인공지능이 세상을 바꾸고 있다.")
print("[임베딩]")
print(f"  벡터 차원: {emb.shape[0]}")          # 예: 384
print(f"  처음 10개 값: {emb[:10].round(4)}")


# 2) 정답 — 문장 완성: 빈칸([MASK]) 채우기 (masked LM)
fill = pipeline("fill-mask", model="klue/bert-base")
print("\n[문장 완성 - 빈칸 채우기]")
print("  문장: 인공지능이 세상을 [MASK] 있다.")
for r in fill("인공지능이 세상을 [MASK] 있다.")[:3]:
    print(f"  → {r['token_str']} (확률 {r['score']:.3f})")


# 3) 정답 — 분류: 문장 감정 분류
clf = pipeline("sentiment-analysis", model="nlptown/bert-base-multilingual-uncased-sentiment")
print("\n[분류 - 감정]")
for s in ["이 영화 정말 최고였어요!", "서비스가 너무 별로네요."]:
    out = clf(s)[0]
    print(f"  '{s}' → {out['label']} ({out['score']:.2f})")
