35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
import gc, sys, lancedb
|
|
import config, lib.ragroleplay as ragroleplay
|
|
|
|
def memories_check(question, search_limit):
|
|
db = lancedb.connect(config.ragroleplay_db_path)
|
|
table = db.open_table("knowledge_memories")
|
|
query_vector = ragroleplay.embed_text(config.ragroleplay_model_url, config.ragroleplay_model_name, question)
|
|
results = table.search(query_vector, vector_column_name="vector_context").limit(search_limit).to_list()
|
|
|
|
print("")
|
|
print(f"Pertanyaan: {question}")
|
|
print("")
|
|
|
|
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("")
|
|
|
|
del table
|
|
del db
|
|
gc.collect()
|
|
|
|
if __name__ == "__main__":
|
|
memories_check(sys.argv[1], 3)
|