import chromadb
import logging
from chromadb.config import Settings

# 로깅 설정
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# ----------------- 수정할 내용 -----------------
# 1. ChromaDB 클라이언트 설정 (로컬 기본값: chromadb.Client())
#    다른 서버에서 실행 중인 경우: client = chromadb.HttpClient(host='localhost', port=8000)
chroma_client = chromadb.HttpClient(
    host="localhost",
    port=8001,
    settings=Settings(chroma_api_impl="rest")
)

# 2. 컬렉션 이름
COLLECTION_NAME = "segue_saved_qna13"

# 3. 검색할 단어 (이 단어가 포함된 'answer'를 찾습니다)
SEARCH_KEYWORD = "公式ウェブサイト"
# -----------------------------------------------

try:
    collection = chroma_client.get_collection(name=COLLECTION_NAME)
    logging.info(f"'{COLLECTION_NAME}' 컬렉션에 연결했습니다.")

    # 컬렉션의 모든 데이터를 가져옵니다.
    # 참고: 데이터가 매우 많은 경우, 성능에 영향을 줄 수 있습니다.
    all_data = collection.get(include=["metadatas"])

    found_items = []
    # 파이썬으로 직접 필터링
    for i, metadata in enumerate(all_data['metadatas']):
        answer = metadata.get('answer', '')
        if SEARCH_KEYWORD in answer:
            # 검색 키워드가 answer에 포함되어 있으면, 해당 데이터의 id와 answer를 저장
            found_items.append({
                "id": all_data['ids'][i],
                "answer": answer
            })

    if not found_items:
        logging.warning(f"'{SEARCH_KEYWORD}' 단어가 포함된 데이터를 찾지 못했습니다.")
    else:
        print("\n--- 검색 결과 ---")
        logging.info(f"총 {len(found_items)}개의 데이터를 찾았습니다. 삭제를 원하시면 아래 ID를 복사하세요.")
        for item in found_items:
            print(f"  - ID: {item['id']}, Answer: {item['answer']}")
        print("-----------------\n")


except Exception as e:
    logging.error(f"오류 발생: {e}")
