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

はじめに

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

動作環境

Windows11,MacOSで動作します.

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

Pythonのインストール

DialBBのインストール

シナリオエディタのインストール

起動

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

正常に起動するとメイン画面が表示されます.(少し時間がかかることがあります.)

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

Pythonのインストール

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

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

DialBBのインストール

https://github.com/c4a-ri/dialbb/blob/dev-v1.0/docs/files/dialbb.zip からdialbb.zipファイルをダウンロードします.Downloadフォルダにダウンロードされます.ダウンロードフォルダにすでにdialbb.zipがある場合,dialbb(1).zipのような名前になっている場合があるのでその場合,古いdialbb.zipを消してからもう一度ダウンロードしてください.

ターミナルを開きます.適当なディレクトリ(DialBBディレクトリと呼びます)を作って移動してください.

そこで,

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

シナリオエディタのインストール

https://github.com/c4a-ri/dialbb-scenario-editor/blob/main/docs/files/editor-gui.zipからeditor-gui.zipををダウンロードします.Downloadファイルにダウンロードされます.

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

起動

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

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

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

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

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

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

OpenAI API キーの登録

最初にDialBB-NCを使うときや,DialBBのインストールをし直した後には,OpenAIのAPIキーの登録が必要です.OpenAIのAPIキーの登録は以下のようにします.

起動

停止

ログ

アンインストール

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

アプリケーションの編集

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

Edit Application画面でコンフィギュレーションボタンを押すと,以下の画面が表示されます.

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

編集項目説明
固有表現抽出を行いますか?固有表現抽出(後述)を行うかどうかを選択します.
言語理解を行いますか?言語理解を行うかどうかを選択します.
モデル利用するChatGPTのモデルを選択します.その他を押すと,プルダウンにないモデルを追加できます.
状況GPTのプロンプトに書く状況を入力します,1行ごとに状況を記述します.
ペルソナGPTのプロンプトに書くシステムのペルソナを入力します,1行ごとにペルソナを記述します.

シナリオファイルの編集

Edit Application画面でシナリオボタンを押すと,シナリオエディタが表示されます.もし表示されなければ,Webブラウザを立ち上げて,現れたウインドウに書いてあるURLをブラウザのアドレスバーに貼り付けてエンターキーを押してください.

シナリオエディタの概要

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

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

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

ノードの追加

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

ノードの削除

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

ノードの編集

ノードの上で右クリック し,編集を選択すると,ノードの編集画面が表示されます.

 

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

コネクタの接続・削除

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

 

削除はfromをつまんで離すか,リンク上で右クリック して削除を選択します.

変更を戻すときにはコントロールキーを押しながらzを押してください。

保存

上部のSaveボタンをクリックすると保存します.保存しないでエディタサーバを停止した場合はデータが失われます.

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

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

 

typeは以下のどれかです.

type説明
initial対話の最初のシステム発話を記述します.シナリオの中で,typeがinitialであるシステムノードは一つだけ存在しなくてはなりません.
finalこのノードに来たら,システム発話を生成して対話を終了します.typeがfinalであるシステムノードはいくつあっても構いません.
error内部エラーが起きたときにこのノードに移行し,システム発話を生成して終了します.別のノードとつながっていてはいけません.
otherその他のシステムノードです.

utteranceには,システム発話を書きます.システム発話の中の{}で囲んだ部分に以下のようなものを書けます.

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

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

 

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

ユーザ発話の例にはユーザ発話例を書きます.システムの動作には影響しません.書かなくても構いません.

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

ユーザ発話タイプは言語理解で得られるユーザ発話のタイプを書きます.コンフィギュレーションで,言語理解を行うことを選択している場合,および,言語理解で得られたユーザ発話のタイプが,ここに書いてあるものにマッチした場合,条件が満たされます.ここが空の場合は,必ず条件が満たされたとみなします.

遷移の条件には,ユーザ発話以外のタイプに関する条件を書きます.条件が複数ある場合は,";"でつなぎます.条件には以下のようなものが書けます.

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

 

言語理解用知識の編集

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

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

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

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

言語理解知識を編集するには,Edit Application画面でNLU knowledgeを選択します.Excelが起動して言語理解知識を読み込むので,編集して保存してください.

言語理解用知識のExcelファイルは,utterancesシートと,slotsシートからなります. 以下がutterancesシートの例です.

flagtypeutteranceslots
Y肯定はい 
Y特定のラーメンが好き好きなのは味噌ラーメン好きなラーメン=味噌ラーメン
Yある地方の特定のラーメンが好き博多の豚骨ラーメンって美味しいですよね地方=博多,好きなラーメン=豚骨ラーメン

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

flagslot nameentitysynonyms
Y好きなラーメン豚骨ラーメンとんこつラーメン,豚骨スープのラーメン,豚骨
Y好きなラーメン味噌バターラーメン 
Y地方富山 

固有表現抽出知識の編集

固有表現とは,固有名詞+αと思って構いません.発話テキストから固有表現を抽出することを固有表現抽出と言います.固有表現はクラスに分かれています.例えば,人名,地名,組織名,商品名,時間,数量などが,クラスとして使われます.言語理解のスロットと似ていますが,言語理解のスロットは,タイプと結びついているのに対して,

対話システムに固有表現抽出を行わせるには,固有表現抽出知識が必要です.固有表現抽出知識には以下のような情報を記述します.

一つの発話から同じクラスの固有表現が複数得られることもあります.例えば,「太郎と次郎はラーメンが好き」ならば,「太郎」も「次郎」も人名クラスの固有表現です.

固有表現抽出知識を編集するには,Edit Application画面でNER knowledgeを選択します.Excelが起動するので,編集して保存してください.

固有表現抽出知識のExcelファイルは,utterancesシートと,classesシートからなります.

以下がutterancesシートの例です.

flagutteranceentities
Y札幌の味噌ラーメンが好きです地名=札幌
Y田中です人名=田中
Y太郎は東京に住んでます人名=太郎,地名=東京

以下はclassesシートの例です.固有表現のクラス毎に1行記述します.

flagclassexplanationexamples
Y人名人の名前田中,山田,太郎,花子,ジョン
Y地名場所の名前札幌,東京,大阪,日本,アメリカ,北海道