# ============================================================
# [실습] 미니 프로젝트 — RAG QA (OpenAI 임베딩 + gpt-4o-mini 생성)
#
# 아래 항목을 직접 구현해 완성하세요:
#  1) get_embedding(text): 텍스트를 OpenAI 임베딩으로 벡터화해 numpy 배열로 반환한다.
#  2) 문서들을 임베딩해 doc_embeddings(numpy 배열)로 보관한다.
#  3) rag_query(user_query): 질문을 임베딩해 코사인 유사도가 가장 큰 문서를 찾고,
#     그 문서를 프롬프트에 넣어 gpt-4o-mini 가 근거 기반으로 답하게 한다. (문서, 답변) 반환.
# ============================================================

import numpy as np
from openai import OpenAI
from dotenv import load_dotenv

load_dotenv()
client = OpenAI()

documents = [
    "Python은 강력한 프로그래밍 언어입니다.",
    "OpenAI는 AI 연구를 선도하는 기업입니다.",
    "FAISS는 벡터 검색을 위한 라이브러리입니다.",
]


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


# 2) 문서들을 임베딩해 doc_embeddings 로 보관
# 여기에 코드를 작성하세요


# 3) rag_query: 검색(코사인 최대 문서) + 생성(gpt-4o-mini)
def rag_query(user_query):
    # 여기에 코드를 작성하세요
    pass


if __name__ == "__main__":
    q = "FAISS가 뭐야?"
    doc, answer = rag_query(q)
    print("질문:", q)
    print("검색된 문서:", doc)
    print("답변:", answer)
