boilerbot

Official Open-Source Implementation of BoilerBot: A Reliable Task-Oriented Chatbot Enhanced with Large Language Models.

https://github.com/jinensetpal/boilerbot

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.9%) to scientific vocabulary

Keywords

conversational-agent llms nlp
Last synced: 6 months ago · JSON representation ·

Repository

Official Open-Source Implementation of BoilerBot: A Reliable Task-Oriented Chatbot Enhanced with Large Language Models.

Basic Info
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
conversational-agent llms nlp
Created over 2 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

BoilerBot: A Reliable Task-Oriented Chatbot Enhanced with Large Language Models

This is an official re-implementation of the task-oriented conversational chatbot Purdue's BoilerBot team developed for the Alexa Prize TaskBot Challenge 2.

Architecture

inference pipeline

Setup

Ensure ports 8001-8003 & 27017 are unused. Then, from the root of the repository, run: bash docker compose up If you want to use cache from your host machine, you will have to change paths under volumes in compose.yml if XDG_CACHE_HOME != /home/<user> or if you are on Windows / OSX.

Running

I'm working on developing a web frontend using APL Viewhost to render the APLs. In the meantime, the deployment is only available as an API. You can send POST requests to http://localhost:8001/chat with query: str, uid: str|None, apl:true|false, or visit http://localhost:8001/docs and press 'Try it out' for a friendlier UI.

The security key for requests to the GPU server is insecure_placeholder.

UID

The UID enables conversation persistence. To start a new conversation, leave the field blank. To continue a conversation, use the UID returned from the previous request.

Changes from the Original Deployment

Our TaskBot was developed using Amazon's Cobot (conversational bot) framework. The source for the framework, alongside Amazon's datasets and APIs are closed source and couldn't be a part of our public implementation. Therefore: 1. The Cobot framework was rewritten using an API base instead of the Lambda function that was originally used. 2. Task-relevant off-the-shelf models were taken from HuggingFace or manually developed to replace Amazon APIs. 3. Community datasets (WikiHow-Dataset, RecipeNLG) were used as the task databases. 4. LLM modules are not functional. Will post an update as soon as I find the time and compute.

Owing to the less robust neural approaches, noisy datasets, and a framework re-implementation, some amount of reliability (e.g. intent classification) and efficiency (e.g. sequential NLU) of the system is lost. It is also why some design decisions are hacky hotfixes. If you run into a bug, please submit an issue.

Citation

If you use our work, you can cite it using: bibtex @inproceedings{boilerbot, title={BoilerBot: A Reliable Task-Oriented Chatbot Enhanced with Large Language Models}, author={Hu, Yifei and Setpal, Jinen and Zhang, Damin and Zietek, Jacob and Lambert, Jack and Gonzalez, Rey Alex and Rayz, Julia}, booktitle={2nd Proceedings of Alexa Prize TaskBot Challenge (Alexa Prize 2023)}, year={2023}, url = {https://www.amazon.science/alexa-prize/proceedings/boilerbot-a-reliable-task-oriented-chatbot-enhanced-with-large-language-models} }

Owner

  • Name: Jinen Setpal
  • Login: jinensetpal
  • Kind: user
  • Location: Purdue University
  • Company: @DAGsHub

Research in Interpretable Network Optimization

Citation (CITATION.cff)

cff-version: 1.2.0
title: >-
  BoilerBot: A Reliable Task-Oriented Chatbot Enhanced with
  Large Language Models
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: inproceedings
authors:
  - given-names: Yifei
    family-names: Hu
    email: hu381@purdue.edu
    affiliation: Purdue University
  - given-names: Jinen
    family-names: Setpal
    email: jsetpal@cs.purdue.edu
    affiliation: Purdue University
    orcid: 'https://orcid.org/0000-0002-8959-0451'
  - given-names: Damin
    family-names: Zhang
    email: zhan4060@purdue.edu
    affiliation: Purdue University
  - given-names: Jacob
    family-names: Zietek
    email: jzietek@cs.purdue.edu
    affiliation: Purdue University
  - given-names: Jack
    family-names: Lambert
    email: lamberjb@purdue.edu
    affiliation: Purdue University
  - given-names: Alex
    family-names: Gonzalez
    email: gonza736@purdue.edu
    affiliation: Purdue University
  - given-names: Julia
    family-names: Rayz
    email: jtaylor1@purdue.edu
    affiliation: Purdue University
identifiers:
  - type: url
    value: >-
      https://www.amazon.science/alexa-prize/proceedings/boilerbot-a-reliable-task-oriented-chatbot-enhanced-with-large-language-models
    description: Publication
  - type: url
    value: >-
      https://assets.amazon.science/8c/03/80c814a749f58e73a1aeda2ff282/boilerbot-tb2-final-2023.pdf
    description: PDF
repository-code: 'https://dagshub.com/jinensetpal/boilerbot/'
abstract: >-
  This paper outlines the design and deployment of
  BoilerBot: a task-oriented multi- modal conversational
  agent developed for the Alexa Prize TaskBot 2 competition.
  BoilerBot features flexible response generation,
  leveraging large language models (LLMs) to enable
  adaptable user experiences. We discuss our novel
  contributions towards advancing state-of-the-art
  task-oriented conversational agents, highlighting
  user-facing challenges and proposing fault-tolerant,
  iterative solutions for carefully guided workflows that
  enable Alexa users to maximize BoilerBot’s functionality.
license: Apache-2.0

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 3
  • Total Committers: 1
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 3
  • Committers: 1
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jinen Setpal j****8@g****m 3

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

cpu-server/Dockerfile docker
  • python 3.11-slim build
data-studio/Dockerfile docker
  • python 3.11-slim build
gpu-server/Dockerfile docker
  • python 3.11-slim build
cpu-server/requirements.txt pypi
  • Requests ==2.31.0
  • attrs ==23.2.0
  • fastapi ==0.85.1
  • injector ==0.20.1
  • numpy ==1.25.1
  • pymongo ==4.6.1
  • sentence_transformers ==2.2.2
  • thefuzz ==0.20.0
  • transformers ==4.30.2
  • uvicorn ==0.23.0
data-studio/requirements.txt pypi
  • Flask ==3.0.0
  • gunicorn ==21.2.0
gpu-server/requirements.txt pypi
  • Requests ==2.31.0
  • chromadb ==0.3.29
  • fastapi ==0.85.1
  • numerizer ==0.2.3
  • numpy ==1.25.1
  • pandas ==2.0.3
  • pydantic ==1.10.11
  • scikit_learn ==1.3.0
  • sentence_transformers ==2.2.2
  • spacy ==3.6.0
  • torch ==2.0.1
  • transformers ==4.30.2
  • uvicorn ==0.23.0
gpu-server/src/requirements.txt pypi