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([
pyarrow.field('id', pyarrow.uuid(), metadata={'description': 'Unique identifier (UUID)'}),
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('nickname', pyarrow.string(), metadata={'description': 'Nickname'}),
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('telegram_id', pyarrow.string(), nullable=True, metadata={'description': 'Telegram ID'}),
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'}),
])
@ -126,13 +126,17 @@ def embed_text(url, model, text):
data = response.json()
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:
db = lancedb.connect(db_path)
table = db.open_table("knowledge_user")
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 = {
"id": uuid.uuid4(),
"id": user_id,
"timestamp": datetime.now(),
"character": character,
"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):
if not character:
character = personality.PERSONALITY.name
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):
try:
success = ragroleplay_lib.users_store(
config.ragroleplay_db_path,
@ -47,8 +45,9 @@ def users_store(fullname, nickname, alias=None, salutation=None, persona=None, t
telegram_id,
telegram_username,
xampp_username,
character,
familyname,
character
id
)
if success:
return "Berhasil menyimpan profil user baru."