6. Appendix

6.1. フロントエンド

DialBBには,Web APIにアクセスするための,2種類のサンプルフロントエンドが付属しています.

6.1.1. シンプルなフロントエンド

以下でアクセスできます.

http://<ホスト>:<ポート番号>

システム発話とユーザ発話を吹き出しで表示します.

aux_dataの送信はできません.また,レスポンスに含まれるシステム発話以外の情報は表示されません.

6.1.2. デバッグ用フロントエンド

以下でアクセスできます.

http://<ホスト>:<ポート番号>/test

システム発話とユーザ発話をリスト型式で表示します.

aux_dataの送信ができます.また,レスポンスに含まれるaux_dataも表示されます.

6.2. DialBBをpipでインストールせずに利用する方法

GitHubリポジトリからcloneします.cloneしたディレクトリを<DialBBのディレクトリ>とします.

git clone git@github.com:c4a-ri/dialbb.git <DialBBのディレクトリ>

環境変数PYTHONPATHを設定します.

export PYTHONPATH=<DialBBのディレクトリ>:$PYTHONPATH

クラスAPIで利用する場合,Pythonを立ち上げた後dialbbから必要なモジュールやクラスをimportします.

from dialbb.main import DialogueProcessor

WebAPIで利用する場合,コンフィギュレーションファイルを指定してサーバを起動します.

$ python <DialBBのディレクトリ>/run_server.py [--port <port>] <config file>

port(ポート番号)のデフォルトは8080です.

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

LLM (ChatGPT) を用いたユーザシミュレータを用いたテスタが付属しています。

6.3.1. サンプルの動かし方

以下bashの例で説明します.Windows コマンドプロンプトの場合は適宜読み替えてください。

  • DialBBをインストールし、サンプルアプリケーションをダウンロードして展開します.

  • 環境変数OPENAI_API_KEYにOpenAI APIのキーを設定します.

    export OPENAI_KEY=<OPENAIのAPIキー>
    
  • サンプルアプリケーションを展開したディレクトリ(sample_apps)で以下のコマンドを実行します.

    dialbb-sim-tester --app_config lab_app_ja/config.yml --test_config lab_app_ja/simulation/config.yml --output _output.txt
    
  • _output.txtに結果が記述されます.

  • プログラムの中でテスタを起動するには以下のようにします

    from dialbb.sim_tester.main import test_by_simulation
    
    test_by_simulation("lab_app_ja/config.yml", 
                       "lab_app_ja/simulation/config.yml", output="_output.txt")
    

6.3.2. 仕様

  • 起動オプション

    dialbb-sim-tester --app_config <DialBBアプリケーションのコンフィギュレーションファイル> --test_config <テストコンフィギュレーションファイル> --output <出力ファイル>
    
  • テストコンフィギュレーションファイル

    以下のキーをもつYAML

    • model: (文字列.必須)OpenAIのGPTモデル名.gpt-4ogpt-4o-miniなど.gpt-5は不可.

    • user_name: (文字列.任意)プロンプト内の対話履歴でユーザを指す文字列.デフォルト値 "User"

    • system_name: (文字列.任意)プロンプト内の対話履歴でシステムを指す文字列.デフォルト値 "System"

    • settings(オブジェクトのリスト.必須)設定のリスト.以下の要素を持つことができる

      • prompt_templates: (文字列のリスト.必須)プロンプトテンプレートを記述したテキストファイルのパスのリスト.ファイルパスはコンフィギュレーションファイルからの相対パス.

      • initial_aux_data(文字列.任意)対話の最初にDialBBアプリケーションにアクセスする際に,aux_dataに入れる内容を書いたJSONファイルのパス.パスはコンフィギュレーションファイルからの相対パス.

    • temperatures: (浮動小数点数のリスト.任意)GPTの温度パラメータのリスト.デフォルト値は0.7の一要素のみのリスト.prompt_templatesのリストの長さ×このリストの長さのセッションが行われます.

    • max_turns: (整数.任意)セッションあたりの最大ターン数.デフォルト値15.

  • 関数仕様

    • dialbb.sim_test.main.test_by_simulation(test_config_file: str, app_config_file: str, output_file: str=None, json_output: bool=False, prompt_params: Dict[str, str])

      パラメータ

      • test_config_file: テストコンフィギュレーション

      • app_config_file: DialBBアプリケーションファイル

      • output_file: 対話ログ出力ファイル

      • json_output: 出力ファイルのフォーマットがJSONかどうか。Falseならテキストファイル。

      • prompt_params: プロンプトに埋め込む情報を辞書型で記述したもの。プロンプトテンプレートに{<key>}があれば、<value>で置き換えられる。

6.4. 廃止された機能

6.4.1. Snips Understander組み込みブロック

SnipsがPython3.9以上ではインストールが困難なため,ver. 0.9で廃止されました.代わりにLR-CRF Understander組み込みブロックを用いてください.

6.4.2. Whitespace Tokenizer組み込みブロックおよびSudachi Tokenizer組み込みブロック

ver. 0.9で廃止されました.LR-CRF UnderstanderやChatGPT Understanderを使えばTokenizerブロックを使う必要はありません.

6.4.3. Snips+STNサンプルアプリケーション

ver. 0.9で廃止されました.