Food Ordering Bot

The food ordering bot is a virtual assistant bot that can help you with placing your food order. The food ordering bot is capable of:

  • Listing menu items

  • Managing order cart

  • Listing bill amount

  • Showcasing use of entry and exit events

The food ordering bot uses the following ACE Agent features:

  • Intent & Slot classification using Joint Intent-Slot model

  • Slot management techniques such as Lookup, Synonym replacement, and Slot resolution

  • Plugin Server for integration with Menu and Cart Manager

  • Colang 1.0 based bot

  • Chat Engine Server Architecture

Docker-based bot deployment

The Food Ordering sample bot uses OpenAI gpt-3.5-turbo-instruct as the main model. This sample bot is present in the quickstart directory at ./samples/food_ordering_bot/.

  1. Set the OpenAI API key environment variable.

    export OPENAI_API_KEY=...
    
  2. Prepare the environment for the Docker compose commands.

    export BOT_PATH=./samples/food_ordering_bot/
    source deploy/docker/docker_init.sh
    
  3. Deploy the NLP and Speech models. The Food Ordering sample bot utilizes the Intent Slot model along with Riva ASR and TTS speech models.

    docker compose -f deploy/docker/docker-compose.yml up model-utils-speech
    
  4. Deploy the ACE Agent microservices. Deploy the Chat Controller, Chat Engine, Plugin server, and NLP server microservices.

    docker compose -f deploy/docker/docker-compose.yml up speech-bot -d
    
  5. Wait for a few minutes for all services to be ready. You can check the Docker logs for individual microservices to confirm. You will see log print Server listening on 0.0.0.0:50055 in the Docker logs for the Chat Controller container.

  6. Try out the bot using a web browser. You can deploy a sample frontend application with voice capture and playback support as well as with text input-output support using the following command.

    docker compose -f deploy/docker/docker-compose.yml up frontend-speech
    
  7. Interact with the bot using the URL http://<workstation IP>:9001/. For accessing the mic on the browser, we need to either convert http to https endpoint by adding SSL validation or update your chrome://flags/ or edge://flags/ to allow http://<workstation IP>:9001 as a secure endpoint.

Food ordering bot sample conversation