|
| 1 | +<p align="center"> |
| 2 | + <br> |
| 3 | + <img src="docs/_static/logo.png" width="400"/> |
| 4 | + <br> |
| 5 | +<p> |
| 6 | + |
| 7 | +<div align="center"> |
| 8 | + <a href="https://github.com/salesforce/botsim/releases"><img alt="Latest Release" src="https://img.shields.io/github/release/salesforce/LAVIS.svg" /></a> |
| 9 | + <a href="https://opensource.salesforce.com/botsim/index.html"> |
| 10 | + <img alt="docs" src="https://github.com/salesforce/LAVIS/actions/workflows/docs.yaml/badge.svg"/> |
| 11 | + <a href="https://opensource.org/licenses/BSD-3-Clause"> |
| 12 | + <img alt="license" src="https://img.shields.io/badge/License-BSD_3--Clause-blue.svg"/> |
| 13 | + </a> |
| 14 | +</div> |
| 15 | + |
| 16 | +<div align="center"> |
| 17 | +<a href="https://arxiv.org/abs/2211.11982">System Demo Paper</a>, |
| 18 | +<a href="https://arxiv.org/abs/2211.11982">Technical Report</a>, |
| 19 | +<a href="https://salesforce-botsim.herokuapp.com/">Demo</a>, |
| 20 | +<a href="https://opensource.salesforce.com/botsim//latest/index.html">Documentation</a>, |
| 21 | +<a href="">Blog</a> |
| 22 | +</div> |
| 23 | + |
| 24 | + |
| 25 | +# BotSIM: An End-to-End Bot Simulation Toolkit for Commercial Task-Oriented Dialog Systems |
| 26 | + |
| 27 | + |
| 28 | +## Table of Contents |
| 29 | +1. [Introduction](#introduction) |
| 30 | +2. [Installation](#installation) |
| 31 | +3. [Getting Started](#getting-started) |
| 32 | +4. [Tutorials](#tutorial) |
| 33 | +4. [Documentation](#documentation) |
| 34 | +5. [System Demo Paper and Technical Report](#system-demo-paper-and-technical-report) |
| 35 | + |
| 36 | + |
| 37 | +## Introduction |
| 38 | +BotSIM is a Bot SIMulation toolkit for performing large-scale data-efficient end-to-end evaluation, diagnosis and remediation of commercial task-oriented dialog (TOD) systems to accelerate bot development and evaluation, reduce cost and time-to-market. |
| 39 | +As a modular framework, BotSIM can be extended by bot developers to support new bot platforms. As a toolkit, it offers an easy-to-use App and a suite of command line tools for bot admins or practitioners to readily perform evaluation and remediation of their bots. |
| 40 | + |
| 41 | +Key features of BotSIM include: |
| 42 | + |
| 43 | +- **Multi-stage bot evaluation**: BotSIM can be used for both pre-deployment testing and potentially post-deployment performance monitoring. |
| 44 | +- **Data-efficient dialogue generation**: Equipped with a deep network based paraphrasing model, BotSIM can generate an extensive set of test intent queries from the limited number of input intent utterances, which can be used to evaluate the bot intent model at scale. |
| 45 | +- **End-to-end bot evaluation via dialogue simulation**: Through automatic chatbot simulation, BotSIM can identify existing issues of the bot and evaluate both the natural language understanding (NLU) performance (for instance, intent or NER error rates) and the end-to-end dialogue performance such as goal completion rates. |
| 46 | +- **Bot health report dashboard**: The bot health report dashboard presents a multi-granularity top-down view of bot performance consisting of historical performance, current bot test performance and dialogue-specific performance. Together with the analytical tools, they help bot practitioners quickly identify the most urgent issues and properly plan their resources for troubleshooting. |
| 47 | +- **Easy extension to new bot platform**: BotSIM was built with a modular task-agnostic design, with multiple platform support in mind, so it can be easily extended to support new bot platforms. BotSIM currently supports [Salesforce Einstein BotBuilder](https://help.salesforce.com/s/articleView?id=sf.bots_service_intro.htm&type=5) and [Google DialogFlow CX](https://cloud.google.com/dialogflow/cx/docs/basics) |
| 48 | + |
| 49 | +## Installation |
| 50 | + |
| 51 | +1. (Optional) Creating conda environment |
| 52 | +```bash |
| 53 | + conda create -n botsim python=3.9 |
| 54 | + conda activate botsim |
| 55 | +``` |
| 56 | + |
| 57 | +2. Cloning and building dependencies |
| 58 | +``` bash |
| 59 | + git clone https://github.com/salesforce/botsim.git |
| 60 | + cd BotSIM |
| 61 | + pip install . |
| 62 | +``` |
| 63 | + |
| 64 | +## Getting Started |
| 65 | +### Streamlit Web App |
| 66 | +The Streamlit Web App can be used to |
| 67 | +<p align="center" width="100%"> |
| 68 | + <img width="100%" src="docs/BotSIM_App.png"> |
| 69 | +</p> |
| 70 | + |
| 71 | +The following commands can be used to run BotSIM as a Streamlit Web App locally: |
| 72 | +```bash |
| 73 | + export PYTHONPATH=./:$PYTHONPATH |
| 74 | + export DATABASE_URL="db/botsim_sqlite_demo.db" |
| 75 | + streamlit run botsim/streamlit_app/app.py |
| 76 | +``` |
| 77 | +The App can also be deplpyed as a docker image: |
| 78 | +``` |
| 79 | + # build the docker image |
| 80 | + docker build -t botsim-streamlit . |
| 81 | + # run the docker container |
| 82 | + docker run -p 8501:8501 botsim-streamlit |
| 83 | +``` |
| 84 | +### Command Line Tools |
| 85 | +Alternatively, users can also use the command line tools to deep-dive into BotSIM's generation-simulation-remediation pipeline. |
| 86 | + |
| 87 | +## Tutorial |
| 88 | +We provide the following tutorials in the tutorial section of the documentation. |
| 89 | +- Using Streamlit Web App |
| 90 | +- Using BotSIM command line tools |
| 91 | +- Navigating through bot health dashboard |
| 92 | +- Applying remedidation suggestions |
| 93 | + |
| 94 | +## Documentation |
| 95 | +For more details of the system components and advanced usages, please refer to [code documentation]((https://opensource.salesforce.com/botsim//latest/index.html#)]). |
| 96 | +We welcome the contribution from the open-source community to improve the toolkit! To support new bot platforms, please also follow the guidelines detailed in the code documentation. |
| 97 | + |
| 98 | +## System Demo Paper and Technical Report |
| 99 | +You can find more details in our technical report and system demo paper. |
| 100 | +If you're using BotSIM in your research or applications, please cite using this BibTeX for technical report: |
| 101 | +``` |
| 102 | +@article{guangsen2022-botsim-tr, |
| 103 | + author = {Guangsen Wang and Shafiq Joty and Junnan Li and Steven Hoi}, |
| 104 | + title = {BotSIM: An End-to-End Bot Simulation Toolkit for Commercial Task-Oriented Dialog Systems}, |
| 105 | + year = {2022}, |
| 106 | + doi = {}, |
| 107 | + url = {}, |
| 108 | + archivePrefix = {arXiv}, |
| 109 | +} |
| 110 | +``` |
| 111 | +or the following BibTex for our system demo paper: |
| 112 | +``` |
| 113 | +@article{guangsen2022-botsim-demo, |
| 114 | + author = {Guangsen Wang and Samson Tan and Shafqi Joty and Guang Wu and Jimmy Au and Steven Hoi}, |
| 115 | + title = {BotSIM: An End-to-End Bot Simulation Framework for Commercial Task-Oriented Dialog Systems}, |
| 116 | + year = {2022}, |
| 117 | + doi = {}, |
| 118 | + url = {}, |
| 119 | + archivePrefix = {arXiv}, |
| 120 | +} |
| 121 | +``` |
| 122 | + |
| 123 | +## Contact Us |
| 124 | +Feel free to contact botsim@salesforce.com for any comments, issues or suggestions. |
| 125 | + |
| 126 | +## License |
| 127 | +[BSD 3-Clause License](LICENSE.txt) |
0 commit comments