first commit

This commit is contained in:
2026-11-02 10:49:47 +07:00
commit 1414eb9295
16 changed files with 340 additions and 0 deletions
+57
View File
@@ -0,0 +1,57 @@
import chromadb
from chromadb.utils import embedding_functions
# Menggunakan model embedding yang sama
emb = embedding_functions.SentenceTransformerEmbeddingFunction(
model_name="paraphrase-multilingual-MiniLM-L12-v2"
)
# Membuka database
client = chromadb.PersistentClient(path="./chroma_db")
# Membuka koleksi ukuran 1000
koleksi = client.get_collection(
name="pedoman_1000",
embedding_function=emb
)
# 5 pertanyaan biasa + 2 parafrase
PERTANYAAN = [
("Biasa", "Apa yang dimaksud dengan airworthiness?"),
("Biasa", "Apa kepanjangan dan pengertian MRO?"),
("Biasa", "Apa perbedaan line maintenance dan base maintenance?"),
("Biasa", "Apa tujuan utama aircraft maintenance?"),
("Biasa", "Apa itu Non-Destructive Testing?"),
("Parafrase", "Bagaimana mengetahui bahwa sebuah pesawat layak diterbangkan dengan aman?"),
("Parafrase", "Jenis perawatan rutin apa yang dilakukan ketika pesawat masih beroperasi?")
]
if koleksi.count() == 0:
print("Database masih kosong.")
else:
for nomor, (jenis, pertanyaan) in enumerate(PERTANYAAN, 1):
print("\n" + "=" * 60)
print(f"Pertanyaan {nomor} ({jenis})")
print(pertanyaan)
hasil = koleksi.query(
query_texts=[pertanyaan],
n_results=min(3, koleksi.count())
)
for peringkat, (doc, meta, jarak) in enumerate(
zip(
hasil["documents"][0],
hasil["metadatas"][0],
hasil["distances"][0]
),
start=1
):
print(f"\nPeringkat {peringkat}")
print(f"Sumber: {meta['sumber']}")
print(f"Chunk: {meta['chunk']}")
print(f"Jarak: {jarak:.3f}")
print(doc[:300])