memories/memories_semantic_search.py
2026-07-03 17:53:18 +07:00

43 lines
1.2 KiB
Python

import gc, sys, lancedb
import config, embedding
def main():
db = lancedb.connect(config.memories_db_path)
table = db.open_table(config.memories_table)
question = sys.argv[1]
query_vector = embedding.embed_text(config.model_url, config.model_name, question)
results = (
table.search(query_vector, vector_column_name="vector_context")
.limit(3)
.to_list()
)
print("\n" + "=" * 60)
print(f"Pertanyaan: {question}")
print("=" * 60)
if not results:
print("Tidak ada memori yang ditemukan.")
else:
print(f"Ditemukan {len(results)} memori yang relevan berdasarkan KONTEKS:\n")
for i, row in enumerate(results, 1):
print(f"--- Memori #{i} ---")
print(f"Kapan: {row['relative_time']}")
print(f"Kejadian: {row['event']}")
print(f"Detail: {row['detail']}")
print(f"Kondisi Fisik: {row['physical']}")
print(f"Emosi: {row['emotional']}")
print(f"Kategori: {row['category']}")
print(f"Skor Jarak: {row.get('_distance', 'N/A')}")
print("-" * 30)
print("=" * 60)
del table
del db
gc.collect()
if __name__ == "__main__":
main()