BotSIM is an open-source Bot SIMulation toolkit for large-scale data-efficient end-to-end evaluation, diagnosis and remediation of commercial task-oriented dialog systems (chatbots) across multiple bot platforms. This toolkit aims to provide bot developers and practitioners with a one-stop solution to accelerate bot development and evaluation, reduce cost and time-to-market. As a modular framework, BotSIM can be extended by bot developers to support new bot platforms. As a toolkit, BotSIM offers an easy-to-use App and a suite of command line tools for bot practitioners to readily apply BotSIM's "generation-simulation-remediation" pipeline.
Key features of BotSIM include:
To use BotSIM, users need to have API access to the following supported bot platforms:
org ID
, button ID
, deployment Id
, chat endpoint
location ID
, project ID
, agent ID
and JSON API token conda create -n botsim python=3.9
conda activate botsim
git clone https://github.com/salesforce/botsim.git
cd botsim
pip install -r requirements.txt
The most straightforward way of getting started with BotSIM is the Streamlit Web App. The multi-page App is developed to guide users to leverage BotSIM's "generation-simulation-remediation" pipeline for evaluation, diagnosis and remediation of their bots.
The following commands can be used to start the Streamlit Web App locally:
export PYTHONPATH=./:$PYTHONPATH
export DATABASE_URL="db/botsim_sqlite_demo.db"
streamlit run botsim/streamlit_app/app.py
The App can also be deployed to GCP for access to GPU resources. Detailed deployment instructions are given in the GCP Deployment section of the documentation.
Alternatively, users can also deep-dive to learn more about BotSIM's system components through the command line tools. Details are given in the tutorial section of the code documentation.
We provide the following tutorials in the code documentation.
For more details of the system components and advanced usages, please refer to the code documentation. We welcome the contribution from the open-source community to improve BotSIM. To support new bot platforms, please also follow the guidelines detailed in the code documentation.
A dashboard demo of the Streamlit App can be accessed here. You can find more details regarding BotSIM designs in our technical report:
@article{guangsen2022-botsim-tr,
author = {Guangsen Wang and Junnan Li and Shafiq Joty and Steven Hoi},
title = {BotSIM: An End-to-End Bot Simulation Toolkit for Commercial Task-Oriented Dialog Systems},
year = {2022},
url = {https://arxiv.org/abs/2211.15916},
archivePrefix = {arXiv},
}
The detailed system descriptions are presented in the following EMNLP 2022 system demo paper:
@article{guangsen2022-botsim-demo,
author = {Guangsen Wang and Samson Tan and Shafqi Joty and Gang Wu and Jimmy Au and Steven Hoi},
title = {BotSIM: An End-to-End Bot Simulation Framework for Commercial Task-Oriented Dialog Systems},
year = {2022},
url = {https://arxiv.org/abs/2211.11982},
archivePrefix = {arXiv},
}
If you're using BotSIM in your research or applications, please cite the papers.
Feel free to contact [email protected] for any comments, issues or suggestions.
BSD 3-Clause License