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()