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

139 lines
5.6 KiB
Python

import gc, lancedb, uuid
from datetime import datetime, timedelta
import config, embedding
def main():
db = lancedb.connect(config.memories_db_path)
table = db.open_table(config.memories_table)
now = datetime.now()
memories = [
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(days=10),
"relative_time": "Saat pertama kali menginjakkan kaki di Kota Perak",
"event": "Pertemuan pertama",
"category": "Social",
"detail": "Bertemu dengan karakter utama di perpustakaan kota, suasana terasa canggung namun hangat.",
"physical": "Tegak, sedikit gemetar",
"emotional": "Gugup, Penasaran",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(days=9),
"relative_time": "Setelah badai pasir mereda di gurun",
"event": "Kesepakatan awal",
"category": "Plot",
"detail": "Menyepakati kerjasama untuk mencari artefak kuno yang hilang di hutan terlarang.",
"physical": "Bersalaman dengan erat",
"emotional": "Optimis, Bertekad",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(days=7),
"relative_time": "Ketika bulan darah mencapai puncaknya",
"event": "Serangan mendadak",
"category": "Action",
"detail": "Diserang oleh sekelompok goblin saat berkemah di pinggir sungai.",
"physical": "Siaga, memegang senjata",
"emotional": "Terkejut, Waspada",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(days=5),
"relative_time": "Di tengah perdebatan panas di aula rapat",
"event": "Diskusi moral",
"category": "Emotional",
"detail": "Berdebat tentang moralitas penggunaan sihir terlarang untuk menyelamatkan desa.",
"physical": "Tangan mengepal, napas berat",
"emotional": "Marah, Dilema",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(days=3),
"relative_time": "Sesaat setelah pintu kuil terlarang terbuka",
"event": "Penemuan petunjuk",
"category": "Investigation",
"detail": "Menemukan peta tua di reruntuhan kuil yang menunjukkan lokasi tepat artefak.",
"physical": "Mata terbelalak, membungkuk melihat peta",
"emotional": "Sangat senang, Antusias",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(days=2),
"relative_time": "Saat malam sunyi di bawah pohon kehidupan",
"event": "Momen tenang",
"category": "Social",
"detail": "Berbagi cerita masa lalu di depan api unggun di bawah langit berbintang.",
"physical": "Rileks, bersandar pada pohon",
"emotional": "Tenang, Melankolis",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(days=1),
"relative_time": "Ketika topeng sang pengkhianat terbuka",
"event": "Pengkhianatan",
"category": "Plot",
"detail": "Mengetahui bahwa salah satu rekan tim ternyata adalah mata-mata dari kerajaan lawan.",
"physical": "Kaku, tatapan tajam",
"emotional": "Terkhianati, Kecewa",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(hours=5),
"relative_time": "Di lorong gelap bawah tanah kastil",
"event": "Diskusi rahasia",
"category": "Plot",
"detail": "Membicarakan rencana infiltrasi ke markas musuh menggunakan terowongan bawah tanah.",
"physical": "Membungkuk, berbisik",
"emotional": "Waspada, Serius",
},
{
"id": uuid.uuid4(),
"timestamp": now - timedelta(hours=2),
"relative_time": "Saat matahari baru saja terbit di ufuk timur",
"event": "Latihan tempur",
"category": "Training",
"detail": "Melatih kombinasi serangan sihir dan fisik untuk meningkatkan sinkronisasi tim.",
"physical": "Keringat bercucuran, napas terengah",
"emotional": "Fokus, Pantang menyerah",
},
{
"id": uuid.uuid4(),
"timestamp": now,
"relative_time": "Tepat sebelum genderang perang bertalu",
"event": "Persiapan akhir",
"category": "Plot",
"detail": "Memeriksa kembali semua perlengkapan sebelum memasuki gerbang terakhir menuju artefak.",
"physical": "Menyesuaikan pelindung lengan",
"emotional": "Tegang, Percaya Diri",
},
]
for mem in memories:
context_text = f"[{mem['category']}] {mem['event']} - {mem['relative_time']}: {mem['detail']}"
row = {
"id": mem["id"],
"timestamp": mem["timestamp"],
"relative_time": mem["relative_time"],
"event": mem["event"],
"category": mem["category"],
"detail": mem["detail"],
"physical": mem["physical"],
"emotional": mem["emotional"],
"vector_context": embedding.embed_text(config.model_url, config.model_name, context_text),
}
table.add([row])
print(f"Menambahkan memori: {mem['event']}")
print("\nTable memori roleplaying dengan vector_context berhasil diproses.")
print("Nama table:", config.memories_table)
print("Jumlah row:", table.count_rows())
del table
del db
gc.collect()
if __name__ == "__main__":
main()