import chromadb from chromadb.utils import embedding_functions # Panggil model dan database yang sama emb = embedding_functions.SentenceTransformerEmbeddingFunction( model_name="paraphrase-multilingual-MiniLM-L12-v2") client = chromadb.PersistentClient(path="./chroma_db") koleksi = client.get_or_create_collection("pedoman", embedding_function=emb) # Daftar pertanyaan uji daftar_pertanyaan = [ "Apa syarat cuti akademik?", "Berapa batas kehadiran untuk ujian?", "Bolehkah berhenti kuliah sementara?", # Pertanyaan parafrase (tanpa kata 'cuti') "Apa sanksi jika telat bayar kuliah?" # Pertanyaan parafrase (tanpa kata 'keuangan') ] for q in daftar_pertanyaan: print("=" * 60) print("PERTANYAAN:", q) # Ambil 2 hasil terdekat hasil = koleksi.query(query_texts=[q], n_results=2) for doc, meta, jarak in zip(hasil["documents"][0], hasil["metadatas"][0], hasil["distances"][0]): # Jarak (distance) semakin kecil berarti semakin mirip print(f" [Sumber: {meta['sumber']} | Jarak: {jarak:.3f}]") print(" Teks:", doc[:120].replace("\n", " "), "...")