何を行いたかったか?
「miibo」のチャットに「IPアドレス制限」機能や「会話の履歴(ON/OFF可能)」機能も追加されまして、
いよいよ、そのままmiiboチャットを社内展開に使えるな!(社員メール等を個別にログインさせなくても!)と思いまして。
でも、社員の誰の利用なのか?は把握しておきたいなぁと思い、
”初回のチャットで名前を覚える→次回以降のチャットではその名前を使う”実装を行いたいと思いまして、
そういえば、miiboにはユーザーIDと、ステート機能があるから、それで紐づけできそうだなと試していたのです。
実装できた機能
- miiboでの設定
このように、
- [AIによる応答の設定] - [プロンプトエディタ]
- シナリオ「1. あなたのお名前は?」
- シナリオ「2. お名前存じています」
この3つを設定しないと実現できませんでした。
(追記:2024.12.2)
AIからの返答の度「〇〇さん、こんにちは」から始まってしまったので、、次のように変更。
- [シナリオ対話の作成] - シナリオ「2. お名前存じています」の
”このノードでのエージェントの発話”は「@{auto_response}」だけにした。 - [エージェントの設定] - [固定の応答文言の設定]の
「チャット画面起動時の文言 (※1行に1つの表現を記入)」に、
”#{onamae}さん、こんにちは”を追記。
(こうしておけば口調の設定も含めて「〇〇さん」になります。)
2024.11.30現在、miiboのシナリオ機能では次の動作でした。
- トリガーとして「次のステートが存在しない場合」が機能しない。
- ▶回避策として「(トリガー)条件: 会話の開始と同時に発動」と「(トリガー)条件:「シナリオ会話をする」のステートが存在する場合」で動作条件を分けたシナリオを2つ作った。
- シナリオのノード内に書いたプロンプトに反応しない。
- シナリオのノード内の「エージェントの発話後に保持するステートの名前」が機能しない。
- ▶回避策として[AIによる応答の設定] - [プロンプトエディタ]にステートを記憶するように指示するようにした。
試行錯誤
当初は、これらマニュアルの情報から、シナリオに「(トリガー)条件: 「onamae」のステートが存在しない場合」や、名前の予約語である「(トリガー)条件: 「username」のステートが存在しない場合」等を設定すれば簡単に実装できると思っていたのです。。
NG1:名前のステートを記憶してくれない。。
NG2:予約された名前のステートusernameの初期値「あなた」を上書きしてくれない。。
しかし、どうやら現状は、注釈に書いたような仕様(?)であるらしく、
現時点としては、冒頭に掲載した設定以外には、今回の動作を実現する方法はない様子でした。
この実装までに結構時間と労力を使ったので、、
他にこの機能を実装したい方がおられましたら、ご参考ください。
・・・そしてmiiboは応援しているので!たぶんこの不具合(?)の解消を期待します!