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/
.
Set the OpenAI API key environment variable.
export OPENAI_API_KEY=...
Set your NGC Personal API key in the
NGC_CLI_API_KEY
environment variable.export NGC_CLI_API_KEY=...
Prepare the environment for the Docker compose commands.
export BOT_PATH=./samples/food_ordering_bot/ source deploy/docker/docker_init.sh
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
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
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.Interact with the bot using the URL
http://<workstation IP>:7006/
. For accessing the mic on the browser, we need to either converthttp
tohttps
endpoint by adding SSL validation or update yourchrome://flags/
oredge://flags/
to allowhttp://<workstation IP>:7006
as a secure endpoint.