diff --git a/lib/ragroleplay.py b/lib/ragroleplay.py index a2723ea..4d206a2 100644 --- a/lib/ragroleplay.py +++ b/lib/ragroleplay.py @@ -11,6 +11,7 @@ def _schema_user(vector_size): pyarrow.field('fullname', pyarrow.string(), metadata={'description': 'Fullname'}), pyarrow.field('nickname', pyarrow.string(), metadata={'description': 'Nickname'}), pyarrow.field('alias', pyarrow.string(), nullable=True, metadata={'description': 'Another call name'}), + pyarrow.field('salutation', pyarrow.string(), nullable=True, metadata={'description': 'Salutation/greeting for the user'}), 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'}), @@ -129,7 +130,7 @@ 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, persona, telegram_id, telegram_username, xampp_username): +def users_store(db_path, model_url, model_name, fullname, nickname, alias, salutation, persona, telegram_id, telegram_username, xampp_username): try: db = lancedb.connect(db_path) table = db.open_table("knowledge_user") @@ -140,6 +141,7 @@ def users_store(db_path, model_url, model_name, fullname, nickname, alias, perso "fullname": fullname, "nickname": nickname, "alias": alias, + "salutation": salutation, "persona": persona, "telegram_id": telegram_id, "telegram_username": telegram_username, diff --git a/services/telegram_client.py b/services/telegram_client.py index 85835ff..1bf70c6 100644 --- a/services/telegram_client.py +++ b/services/telegram_client.py @@ -202,6 +202,7 @@ class TelegramClient: f'[User Context]\n' f'Nama: {u["fullname"]} ({u["nickname"]})\n' f'Alias: {u.get("alias", "-") or "-"}\n' + f'Salutation: {u.get("salutation", "-") or "-"}\n' f'Persona: {u.get("persona", "-") or "-"}\n' f'Telegram: {u.get("telegram_id", "-") or "-"} / @{u.get("telegram_username", "-") or "-"}\n' f'XMPP: {u.get("xampp_username", "-") or "-"}\n' diff --git a/services/xmpp_client.py b/services/xmpp_client.py index 644cfd6..e49cbe9 100644 --- a/services/xmpp_client.py +++ b/services/xmpp_client.py @@ -306,6 +306,7 @@ class XMPPClient(ClientXMPP): f'[User Context]\n' f'Nama: {u["fullname"]} ({u["nickname"]})\n' f'Alias: {u.get("alias", "-") or "-"}\n' + f'Salutation: {u.get("salutation", "-") or "-"}\n' f'Persona: {u.get("persona", "-") or "-"}\n' f'Telegram: {u.get("telegram_id", "-") or "-"} / @{u.get("telegram_username", "-") or "-"}\n' f'XMPP: {u.get("xampp_username", "-") or "-"}\n' diff --git a/tools/ragroleplay.py b/tools/ragroleplay.py index 9244f2c..21cc499 100644 --- a/tools/ragroleplay.py +++ b/tools/ragroleplay.py @@ -19,6 +19,7 @@ schema_users_store = { "fullname": {"type": "string", "description": "Full name of the user"}, "nickname": {"type": "string", "description": "Nickname of the user"}, "alias": {"type": "string", "description": "Alias of the user"}, + "salutation": {"type": "string", "description": "How to address/greet the user (e.g., Mas, Mbak, Kak)"}, "persona": {"type": "string", "description": "Detailed persona or description of the user"}, "telegram_id": {"type": "string", "description": "Telegram user ID"}, "telegram_username": {"type": "string", "description": "Telegram username"}, @@ -58,6 +59,7 @@ schema_users_update = { "fullname": {"type": "string", "description": "Updated full name"}, "nickname": {"type": "string", "description": "Updated nickname"}, "alias": {"type": "string", "description": "Updated alias"}, + "salutation": {"type": "string", "description": "Updated salutation"}, "persona": {"type": "string", "description": "Updated persona description"}, "telegram_id": {"type": "string", "description": "Updated telegram ID"}, "telegram_username": {"type": "string", "description": "Updated telegram username"}, @@ -617,7 +619,7 @@ def memories_delete(memory_id): except Exception as e: return f"Error while deleting memory: {str(e)}" -def users_store(fullname, nickname, alias=None, persona=None, telegram_id=None, telegram_username=None, xampp_username=None): +def users_store(fullname, nickname, alias=None, salutation=None, persona=None, telegram_id=None, telegram_username=None, xampp_username=None): try: success = ragroleplay_lib.users_store( config.ragroleplay_db_path, @@ -626,6 +628,7 @@ def users_store(fullname, nickname, alias=None, persona=None, telegram_id=None, fullname, nickname, alias, + salutation, persona, telegram_id, telegram_username, @@ -651,6 +654,7 @@ def users_filter(query_name=None, unique_id=None, persona_keyword=None, user_id= f"User #{i}\n" f"ID: {row['id']}\n" f"Nama: {row['fullname']} ({row['nickname']})\n" + f"Salutation: {row.get('salutation', '-') or '-'}\n" f"Persona: {row['persona']}\n" ) output.append(user_info)