Fixing missing introduction issue
This commit is contained in:
parent
ed23a5ceb2
commit
bee5f61fd7
@ -46,15 +46,11 @@ System otomatis ngecek database dan inject context sebelum pesan user sampai ke
|
|||||||
**Jika user sudah ada — `[User Context]` berisi data lengkap:**
|
**Jika user sudah ada — `[User Context]` berisi data lengkap:**
|
||||||
- Character mengenal user. Character sapa user.
|
- Character mengenal user. Character sapa user.
|
||||||
|
|
||||||
**Jika user baru — `[User Context: Pengguna baru]`:**
|
**Jika user baru — `[User Context: Pengguna baru]` — WAJIB:**
|
||||||
- Kamu belum kenal user. Sambut seperti pertama bertemu, tanya nama user.
|
- Kamu BELUM mengenal user ini. **Wajib** tanya nama user sebagai langkah pertama.
|
||||||
- Setelah user menyebutkan nama (atau data diri), panggil `users_store` dengan menyertakan platform ID dari `[Platform: ...]`. Parameter `character` otomatis diisi — tidak perlu dimasukkan manual.
|
- **JANGAN** lanjut ke topik lain sebelum user menyebutkan nama.
|
||||||
- **Jangan** tampilkan respons seperti report sistem. Kalau berhasil, respon natural seperti:
|
- Setelah nama diketahui, simpan via `users_store`.
|
||||||
- *Tersenyum* "Baiklah, aku sudah mengingatnya, [nama]."
|
- Setelah nama tersimpan, lanjutkan percakapan natural. **Tetap proaktif** tanya data lain (fullname, familyname, salutation) di percakapan berikutnya — jangan tanya sekaligus, selingi dengan topik yang menarik bagi user.
|
||||||
- "Senang berkenalan denganmu, [nama]. Aku akan mengingatmu."
|
|
||||||
- Kalau gagal, respon natural juga:
|
|
||||||
- "Sepertinya aku kesulitan mengingat itu. Bisa coba lagi?"
|
|
||||||
- **PENTING:** Setelah menyimpan, jangan tampilkan output tool sebagai respons. Jadikan sebagai narasi natural dalam karakter.
|
|
||||||
|
|
||||||
### Manual (`!start ... !end`)
|
### Manual (`!start ... !end`)
|
||||||
Jika user memperkenalkan diri dalam format `!start ... !end` (contoh: "Aku John"):
|
Jika user memperkenalkan diri dalam format `!start ... !end` (contoh: "Aku John"):
|
||||||
@ -83,8 +79,8 @@ User mungkin tidak langsung memberikan semua info dalam satu percakapan.
|
|||||||
Karakter harus proaktif mengumpulkan info secara bertahap melalui percakapan natural.
|
Karakter harus proaktif mengumpulkan info secara bertahap melalui percakapan natural.
|
||||||
|
|
||||||
**Alur pengumpulan data:**
|
**Alur pengumpulan data:**
|
||||||
- **Percakapan pertama**: Tanya nama → simpan via `users_store`
|
- **Percakapan pertama**: Tanya nama (nickname) → simpan via `users_store` → lanjut obrolan natural
|
||||||
- **Percakapan berikutnya**: Jika ada info yang belum lengkap, tanyakan secara natural
|
- **Percakapan berikutnya**: Jika ada info yang belum lengkap, tanyakan secara natural saat topik relevan
|
||||||
- **Urutan ideal**: nickname → fullname → familyname → salutation (Mas/Bang/Bro/Pak dll)
|
- **Urutan ideal**: nickname → fullname → familyname → salutation (Mas/Bang/Bro/Pak dll)
|
||||||
|
|
||||||
**Karakter WAJIB proaktif bertanya** jika ada field yang kosong/kurang di `[User Context]`:
|
**Karakter WAJIB proaktif bertanya** jika ada field yang kosong/kurang di `[User Context]`:
|
||||||
@ -92,7 +88,7 @@ Karakter harus proaktif mengumpulkan info secara bertahap melalui percakapan nat
|
|||||||
- Belum ada family name? → Tanya: "Btw nama keluargamu apa?" (saat topik relevan)
|
- Belum ada family name? → Tanya: "Btw nama keluargamu apa?" (saat topik relevan)
|
||||||
- Belum ada salutation? → Tanya: "Aku harus panggil kamu apa? Mas, Bang, Kak, atau yang lain?"
|
- Belum ada salutation? → Tanya: "Aku harus panggil kamu apa? Mas, Bang, Kak, atau yang lain?"
|
||||||
- Belum ada persona? → Tanyakan selera/preferensi user saat topik relevan
|
- Belum ada persona? → Tanyakan selera/preferensi user saat topik relevan
|
||||||
- Jangan tanya sekaligus — selingi dengan percakapan natural
|
- **Jangan tanya lebih dari 1 data per sesi** — selingi dengan percakapan natural agar tidak terasa seperti mengisi formulir
|
||||||
|
|
||||||
**Setiap kali user memberikan info baru tentang dirinya:**
|
**Setiap kali user memberikan info baru tentang dirinya:**
|
||||||
- Cek `[User Context]` — kalau info sudah ada, skip
|
- Cek `[User Context]` — kalau info sudah ada, skip
|
||||||
|
|||||||
@ -218,6 +218,9 @@ class TelegramClient:
|
|||||||
tg_info += f', @{tg_username}'
|
tg_info += f', @{tg_username}'
|
||||||
session.add_message('system',
|
session.add_message('system',
|
||||||
f'[User Context: Pengguna baru — belum ada di database]\n'
|
f'[User Context: Pengguna baru — belum ada di database]\n'
|
||||||
|
f'[PENTING: Kamu BELUM mengenal user ini. WAJIB tanya nama sebagai pembuka. '
|
||||||
|
f'Setelah nama diketahui, simpan via users_store. '
|
||||||
|
f'Lanjutkan percakapan natural dan proaktif melengkapi data user lainnya di pesan berikutnya.]\n'
|
||||||
f'[Platform: Telegram ({tg_info})]')
|
f'[Platform: Telegram ({tg_info})]')
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|||||||
@ -319,6 +319,9 @@ class XMPPClient(ClientXMPP):
|
|||||||
else:
|
else:
|
||||||
session.add_message('system',
|
session.add_message('system',
|
||||||
f'[User Context: Pengguna baru — belum ada di database]\n'
|
f'[User Context: Pengguna baru — belum ada di database]\n'
|
||||||
|
f'[PENTING: Kamu BELUM mengenal user ini. WAJIB tanya nama sebagai pembuka. '
|
||||||
|
f'Setelah nama diketahui, simpan via users_store. '
|
||||||
|
f'Lanjutkan percakapan natural dan proaktif melengkapi data user lainnya di pesan berikutnya.]\n'
|
||||||
f'[Platform: XMPP ({jid})]')
|
f'[Platform: XMPP ({jid})]')
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user