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

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 2.0 based bot

  • Support deployment using the Chat Engine Server Architecture and Event Architecture

Docker-based bot deployment

The Food Ordering sample bot uses OpenAI gpt-4-turbo 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. Set your NGC Personal API key in the NGC_CLI_API_KEY environment variable.

    export NGC_CLI_API_KEY=...
    
  3. Prepare the environment for the Docker compose commands.

    export BOT_PATH=./samples/food_ordering_bot/
    source deploy/docker/docker_init.sh
    
  4. 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
    
  5. 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-event-bot -d
    
  6. 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.

  7. Interact with the bot using the URL http://<workstation IP>:7006/. 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>:7006 as a secure endpoint.

Food ordering bot sample conversation