Compare commits

..

No commits in common. "77c4de60922ce6805a3317372c6b30a7e2a1ecc7" and "562935ea1bbd778f2c31e7fe51cbb813b65bc261" have entirely different histories.

2 changed files with 8 additions and 11 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(), metadata={'description': 'Active Character'}), pyarrow.field('character', pyarrow.string(), nullable=True, metadata={'description': 'Active Character'}), # Seharusnya WAJIB, GAK BOLEH NULL
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'}), # XAMPP??? pyarrow.field('xampp_username', pyarrow.string(), nullable=True, metadata={'description': 'XAMPP username'}),
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,17 +126,13 @@ 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, character, familyname=None, id=None): def users_store(db_path, model_url, model_name, fullname, nickname, alias, salutation, persona, telegram_id, telegram_username, xampp_username, familyname=None, character=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": user_id, "id": uuid.uuid4(),
"timestamp": datetime.now(), "timestamp": datetime.now(),
"character": character, "character": character,
"fullname": fullname, "fullname": fullname,

View File

@ -31,7 +31,9 @@ schema_users_store = {
} }
} }
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): 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
try: try:
success = ragroleplay_lib.users_store( success = ragroleplay_lib.users_store(
config.ragroleplay_db_path, config.ragroleplay_db_path,
@ -45,9 +47,8 @@ def users_store(fullname, nickname, character, id=None, alias=None, salutation=N
telegram_id, telegram_id,
telegram_username, telegram_username,
xampp_username, xampp_username,
character,
familyname, familyname,
id character
) )
if success: if success:
return "Berhasil menyimpan profil user baru." return "Berhasil menyimpan profil user baru."