Compare commits

..

2 Commits

Author SHA1 Message Date
77c4de6092 Untuk perbaikin data loss 2026-07-19 11:26:54 +07:00
f3c04ab0c3 Cleanup slob 2026-07-19 10:52:36 +07:00
2 changed files with 11 additions and 8 deletions

View File

@ -5,7 +5,7 @@ def _schema_user(vector_size):
return pyarrow.schema([ return pyarrow.schema([
pyarrow.field('id', pyarrow.uuid(), metadata={'description': 'Unique identifier (UUID)'}), pyarrow.field('id', pyarrow.uuid(), metadata={'description': 'Unique identifier (UUID)'}),
pyarrow.field('timestamp', pyarrow.timestamp('ms'), metadata={'description': 'When record created'}), pyarrow.field('timestamp', pyarrow.timestamp('ms'), metadata={'description': 'When record created'}),
pyarrow.field('character', pyarrow.string(), nullable=True, metadata={'description': 'Active Character'}), # Seharusnya WAJIB, GAK BOLEH NULL pyarrow.field('character', pyarrow.string(), metadata={'description': 'Active Character'}),
pyarrow.field('fullname', pyarrow.string(), metadata={'description': 'Fullname'}), pyarrow.field('fullname', pyarrow.string(), metadata={'description': 'Fullname'}),
pyarrow.field('nickname', pyarrow.string(), metadata={'description': 'Nickname'}), pyarrow.field('nickname', pyarrow.string(), metadata={'description': 'Nickname'}),
pyarrow.field('familyname', pyarrow.string(), nullable=True, metadata={'description': 'Family/clan name'}), pyarrow.field('familyname', pyarrow.string(), nullable=True, metadata={'description': 'Family/clan name'}),
@ -14,7 +14,7 @@ def _schema_user(vector_size):
pyarrow.field('persona', pyarrow.string(), nullable=True, metadata={'description': 'Persona'}), pyarrow.field('persona', pyarrow.string(), nullable=True, metadata={'description': 'Persona'}),
pyarrow.field('telegram_id', pyarrow.string(), nullable=True, metadata={'description': 'Telegram ID'}), pyarrow.field('telegram_id', pyarrow.string(), nullable=True, metadata={'description': 'Telegram ID'}),
pyarrow.field('telegram_username', pyarrow.string(), nullable=True, metadata={'description': 'Telegram username'}), pyarrow.field('telegram_username', pyarrow.string(), nullable=True, metadata={'description': 'Telegram username'}),
pyarrow.field('xampp_username', pyarrow.string(), nullable=True, metadata={'description': 'XAMPP username'}), pyarrow.field('xampp_username', pyarrow.string(), nullable=True, metadata={'description': 'XAMPP username'}), # XAMPP???
pyarrow.field('vector_fullname', pyarrow.list_(pyarrow.float32(), vector_size), metadata={'description': 'Vector data of fullname'}), pyarrow.field('vector_fullname', pyarrow.list_(pyarrow.float32(), vector_size), metadata={'description': 'Vector data of fullname'}),
]) ])
@ -126,13 +126,17 @@ def embed_text(url, model, text):
data = response.json() data = response.json()
return data["embeddings"][0] return data["embeddings"][0]
def users_store(db_path, model_url, model_name, fullname, nickname, alias, salutation, persona, telegram_id, telegram_username, xampp_username, familyname=None, character=None): def users_store(db_path, model_url, model_name, fullname, nickname, alias, salutation, persona, telegram_id, telegram_username, xampp_username, character, familyname=None, id=None):
try: try:
db = lancedb.connect(db_path) db = lancedb.connect(db_path)
table = db.open_table("knowledge_user") table = db.open_table("knowledge_user")
vector = embed_text(model_url, model_name, fullname) vector = embed_text(model_url, model_name, fullname)
# Gunakan id yang disediakan atau generate baru jika None
user_id = _uuid(id) if id is not None else uuid.uuid4()
record = { record = {
"id": uuid.uuid4(), "id": user_id,
"timestamp": datetime.now(), "timestamp": datetime.now(),
"character": character, "character": character,
"fullname": fullname, "fullname": fullname,

View File

@ -31,9 +31,7 @@ schema_users_store = {
} }
} }
def users_store(fullname, nickname, alias=None, salutation=None, persona=None, telegram_id=None, telegram_username=None, xampp_username=None, familyname=None, character=None): def users_store(fullname, nickname, character, id=None, alias=None, salutation=None, persona=None, telegram_id=None, telegram_username=None, xampp_username=None, familyname=None):
if not character:
character = personality.PERSONALITY.name
try: try:
success = ragroleplay_lib.users_store( success = ragroleplay_lib.users_store(
config.ragroleplay_db_path, config.ragroleplay_db_path,
@ -47,8 +45,9 @@ def users_store(fullname, nickname, alias=None, salutation=None, persona=None, t
telegram_id, telegram_id,
telegram_username, telegram_username,
xampp_username, xampp_username,
character,
familyname, familyname,
character id
) )
if success: if success:
return "Berhasil menyimpan profil user baru." return "Berhasil menyimpan profil user baru."