# ============================================================
# [실습] ChromaDB 구축 (영속화 / 생성·로드 / 검사)
#
# 아래 항목을 직접 구현하세요:
#  1) 텍스트를 로드·청킹한 뒤 Chroma.from_documents 로 collection_name·persist_directory 를 지정해
#     임베딩과 함께 디스크에 저장한다.
#  2) Chroma(...) 생성자에 collection_name·embedding_function·persist_directory 를 주어
#     재임베딩 없이 기존 DB 를 로드하고, PERSIST_DIR 존재 여부로 로드/생성을 분기한다.
#  3) store._collection.count() 로 문서 개수를 확인하고, store._collection.get(...) 으로
#     검색 없이 일부 청크의 id·내용·메타데이터를 직접 들여다본다.
# ============================================================

from dotenv import load_dotenv

load_dotenv()  # .env 에서 OPENAI_API_KEY 로드

import os
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_chroma import Chroma

PERSIST_DIR     = "./chroma_db"
COLLECTION_NAME = "storage_demo"
embeddings = OpenAIEmbeddings(model="text-embedding-3-small")


def build_store():
    # 1) 여기에 코드를 작성하세요 (로드·청킹 → Chroma.from_documents(collection_name, persist_directory))
    pass


def load_store():
    # 2) 여기에 코드를 작성하세요 (Chroma(collection_name, embedding_function, persist_directory))
    pass


# 2) 여기에 코드를 작성하세요 (PERSIST_DIR 있으면 load_store, 없으면 build_store → store)


def inspect_store(store):
    # 3) 여기에 코드를 작성하세요 (_collection.count(), _collection.get(limit=3) 으로 일부 확인)
    pass


# 여기에 코드를 작성하세요 (inspect_store(store) 호출)
