DialBBノーコードツール(DialBB-NC)ドキュメント

はじめに

本ドキュメントはDialBBのノーコードツール(DialBB-NC)のドキュメントです.

Ver1.xからの大きな変更点

動作環境

Windows11,MacOSで動作します.

インストール・起動(Windows)

Pythonのインストール

DialBBのインストール

起動

dialbb-setupフォルダ内でstart-dialbb-nc(またはstart-dialbb-nc.bat)をダブルクリックします.

正常に起動するとメイン画面が表示されます.

 

インストールと起動(Mac)

Pythonのインストール

Windowsの場合と同様,Python3.11-3.14がインストールされていれば,新たにインストールする必要はありません.

Pythonがインストールされていない場合,以下の手順でインストールしてください.

DialBBのインストール

https://c4a-ri.github.io/dialbb/files/dialbb-setup.zip からdialbb-setup.zipファイルをダウンロードします.Downloadフォルダにダウンロードされます.ターミナルを開きます.適当なディレクトリ(DialBBディレクトリと呼びます)を作って移動してください.

そこで,

としてください.DialBBがインストールされます.

起動

ターミナルで以下を実行します.(ディレクトリはどこでも構いません)

Macの場合少し画面が乱れます.(修正予定)

アプリケーションの読み込み・作成・書き出し

アプリケーションの読み込み/新規作成

アプリケーションの書き出し

アプリケーションの起動・停止

API キーの登録

最初にDialBB-NCを使うときや,DialBBのインストールをし直した後には,利用する大規模言語モデル(ChatGPTなど)のためのAPIキーの登録が必要です.例えば,ChatGPTを使う場合には,OpenAIのAPIキーの登録が必要です( OpenAIのAPIキーの入手方法は別途「OpenAI API キー」などで検索して調べてください. 少額ですが有料です).登録は以下のようにします.

対話の実行

テスト

ユーザシミュレーションを利用したテストができます.後で詳細に説明します.

対話サーバの使い方(上級用)

Webサーバとしてアプリケーションを動かし,他のプログラムと連携させたりできます.

起動

停止

ログ

アンインストール

dialbb-setupフォルダの中にある,uninstallというアイコンをダブルクリックするとDialBBがアンインストールできます.

アプリケーションの編集

コンフィギュレーションの変更

設定ボタンを押すと,以下の画面が表示されます.

以下が各編集項目の説明です.

編集項目説明
スロット抽出を行いますか?固有表現抽出(後述)を行うかどうかを選択します.(上級用)
モデル利用する大規模言語モデル(LLM)を選択します.追加を押すと,プルダウンにないモデルを追加できます.
状況LLMのプロンプトに書く状況を入力します.1行ごとに状況を記述します.
ペルソナLLMのプロンプトに書くシステムのペルソナを入力します.1行ごとにペルソナを記述します.
注意事項LLMのプロンプトに書く注意事項を記述します.(システムノードでのみ用いられます.)

シナリオファイルの編集

シナリオ編集ボタンを押すと,シナリオエディタが表示されます.

シナリオエディタの概

シナリオは,システムノードとユーザノードがリンクで接続されたものです.システムノードではシステム発話を記述し,ユーザノードでは,遷移の条件を記述します.priorityの値が高い順に遷移の条件を調べていき,条件が満たされれば,その次のシステムノードに遷移します.どのユーザノードの遷移の条件も満たされない場合,同じシステムノードに戻って,システム発話が生成されます.

システムノードは複数のユーザにリンクが出て行き,ユーザノードからは一つだけのノードにリンクが出て行きます.(ノード右側コネクタが出口,ノード左側が入口です)

以下の説明の画像には古いバージョンのものがあります.ver2.0以降では,ユーザノードには発話タイプがありません.

システム発話や遷移の条件の記述については,後で説明します.

ノードの追加

背景で右クリック し,システムノード追加かユーザノード追加を選択するとシステムノードかユーザノードが新規追加されます.

ノードの削除

ノードの上で右クリック し削除を選択するかノードを選択してDelキーを押すとそのノードが削除されます.

ノードの編集

ノードの上でダブルクリック すると,ノードの編集画面が表示されます.

ノードの編集の仕方は後述します.

コネクタの接続・削除

ノード右側〇を左クリックし,他ノードの左側〇へドラッグして接続します.

削除はコネクタ上で右クリック し削除を選択するか,選択した状態でDelキーを押すと削除されます.

元に戻す/やり直し

変更を戻すときには上部の元に戻すボタン,やり直しをする時はやり直しボタンを押してください.コントロールキーを押しながらz/yでも操作が可能です.

保存

上部の保存ボタンをクリックすると保存します.保存しないでエディタを終了した場合は変更データが失われます.

再読み込み

上部の再読み込みボタンをクリックすると最後に保存されたデータを読み込みます.大規模な状態遷移図の編集ではこまめに保存をしておけばその状態まで復元することが可能です.

拡大/縮小

マウスのホイールを使いズームイン/ズームアウトが可能です.

キャンバスの移動

マウスの中ボタンまたはコントロールキーを押しながら左クリックで全体をドラッグできます.

シナリオエディタの終了

メインGUIでシナリオ編集終了ボタンを押すとエディタウィンドウが閉じます.

システムノードの編集の仕方

システムノードをダブルクリックすると以下のような入力ダイアログが表示されますので,中身を書き換えて保存ボタンを押します.キャンセルボタンを押すと保存せずに閉じます.

ノードタイプは以下のどれかです.

type説明
initial対話の最初のシステム発話を記述します.シナリオの中で,typeがinitialであるシステムノードは一つだけ存在しなくてはなりません.
finalこのノードに来たら,システム発話を生成して対話を終了します.typeがfinalであるシステムノードはいくつあっても構いません.
error内部エラーが起きたときにこのノードに移行し,システム発話を生成して終了します.別のノードとつながっていてはいけません.
prep準備状態.対話が始まった時に,この状態からの遷移が試みられます.最初のシステム発話や状態を状況に応じて変更するときに使います.
otherその他のシステムノードです.

発話には,システム発話を書きます.システム発話の中に以下のようなものを書けます.

ユーザノードの編集の仕方

ユーザノードをダブルクリックすると以下のような入力ダイアログが表示されますので,中身を書き換えて保存ボタンを押します.キャンセルボタンを押すと保存せずに閉じます.

優先度はこのユーザノードの優先度を表す整数です.一つのシステムノードからつながっているユーザノードのうち,priority numberの高い順に条件がチェックされます.この数字は,シナリオを保存する度にリセットされ,大きいものから順に100, 90, 80, ...に変更されます.

遷移の条件にはこのユーザノードの条件を書きます.両方が満たされたとき,このユーザノードの次のシステムノードに移行します.

遷移の条件には,この遷移が使われる条件を書きます.条件が複数ある場合は,";"でつなぎます.条件には以下のようなものが書けます.

遷移時のアクションは進んだ使い方の時のみ利用するのでここでは説明しません.

 

スロット抽出知識の編集(上級用)

スロット抽出とは,それまでの対話から必要な情報を取り出すことです.必要な情報のことをスロットと言います.例えば,気象情報を検索する対話システムならば,「地名」や「日付」などがスロットなります. この「地名」や「日付」をスロット名,実際に抽出される地名や日付の値をスロット値と呼びます.このスロット値をシナリオのユーザノードで遷移の条件として使うことができます.

対話システムに言語理解を行わせるには,スロット抽出知識が必要です.スロット抽出知識には以下のような情報を記述します.

さらに,各スロットの同義語も記述することができます.

同じ単語が別のスロットになることもあります.例えば,券売機の対話システムで「東京から新大阪までの乗車券」と言えば,乗車駅=東京,降車駅=新大阪,券種別=乗車券となりますが,乗車駅スロットと降車駅スロットは両方とも駅名です.

言語理解知識を編集するには,メイン画面で言語理解知識を選択します.Excelが起動して言語理解知識を読み込むので,編集して保存してください. (OpenOfficeなど,Excel以外のものを使っている場合にはそちらが立ち上がります.表計算ソフトを使っていない場合にはご相談ください)

スロット抽出知識のExcelファイルは,dialoguesシートとslotsシートからなります. 以下がdialoguesシートの例です.

 

flagdialogueslots
Yシステム:好きなラーメンは何ですか?
ユーザ:豚骨ラーメンです
好きなラーメン=豚骨ラーメン
Yシステム:好きなラーメン教えて
ユーザ:豚骨ラーメン
システム:博多の?
ユーザ:そう
地方=博多,好きなラーメン=豚骨ラーメン

以下はslotsシートの例です.

 

flagslot nameentitysynonyms
Y好きなラーメン豚骨ラーメンとんこつラーメン,豚骨スープのラーメン,豚骨
Y好きなラーメン味噌ラーメンみそらーめん,みそ味のラーメン,味噌
Y地方博多 
Yユーザの名前太郎 

flag列は使いません.

ユーザシミュレータを用いたテスト

ユーザシミュレータを用いたテストができます.メインメニューでテストボタンを押すと以下のテストメニュー画面が現れます.

設定を押すと,シミュレータの設定が表示されます.

モデルはシミュレータが使うモデルで,最大ターン数はシミュレーション対話のユーザ発話の最大数です.プロンプトはシミュレータのプロンプトです.適宜編集してOKボタンを押して終了してください.

テストメニュー画面で実行ボタンを押すとテストが行えます.