AVINA is an open source systems architecture for businesses and organisations to rapidly deploy instances of AI, chatbots and computer vision with Intel hardware at any of their physical sites, with a network aware mobile service that is vicinity and proximity based.
- An Azure account with access to QnA service.
- Docker
- Powershell Core
- Complete the Organisation server installation & deployment as you will be asked the Domain Name or IP of the organisation server during setup.
Since AVINA integrates with a Chatbot service to answer the user's questions, the relevant information about the service must be provided when setting up the application. To create the Azure QnA Service and the Knowledge Base navigate to Azure QnA Maker. Follow the instructions to complete the creation of the chatbot. After the creation of the service, you will be redirected to page like this:
The Knowledge Base Host is the HTTPS URL in the 2nd line without the /qnamaker
. (ex. https://gosh-bot.azurewebsites.net
)
The Endpoint Key is located on the 3rd line after EndpointKey {EndpointKey}
.
The Knowledge Base ID is at the 1st line between the /knowledgebases/{Knowledge Base ID}/generateAnswer
.
The AVINA location server is a containerized application, so it can easily be deployed to a cloud service or configured to run on a custom (on-premises) windows, linux, or mac-os machine of your choosing. An on-premise installation is favorable so that the multiple cameras that are installed can send records to the server with minimum latency. A Powershell script is provided to automate configuration.
- Download the code.
- Once downloaded, under the
/scripts
directory you will find a Powershell Core script namedConfigureSightPlusPlusAppSettings.ps1
.
Once run (with Powershell Core) the script will ask you to fill in the required settings to configure the.env
file, such as the Knowledge Base ID, the Knowledge Base Host and the Endpoint Key that were generated in an earlier step. - After configuring the application, you can deploy it by running
docker-compose up --build -d
.
Once the deployment is complete, we can start setting up the devices.
To add devices to your database, you can send POST requests to http://{IP-of-your-server-or-localhost-if-deployed-locally}:9999/devices
The schema of the JSON request can be found here.
An example of a camera device is:
"_id": "1",
"deviceType": "camera",
"deviceLocation": "Reception",
"site": "GOSH DRIVE",
"isIndoor": true,
"floor": 0
}
An example of a BLE device:
{
"_id": "2",
"deviceType": "BLE",
"deviceLocation": "Reception",
"site": "GOSH DRIVE",
"isIndoor": true,
"floor": 0
}
Once you have set up at least one camera and one BLE in the same location, you are ready to use AVINA.
For the camera setup so that it will send its records to the server, follow the instructions here.
If don't want to setup the camera right now, you can mock a camera's record by sending a POST request to http://{IP-of-your-server-or-localhost-if-deployed-locally}:9999/records
The schema of the JSON request can be found here.
An example of a record regarding queueing:
"timestamp": "2021-08-31T18:25:43.511Z",
"deviceId": "1",
"recordType": 1,
"queueing": 2 //# of people waiting in the queue.
}
An example of a record regarding empty seats available:
"timestamp": "2021-08-31T18:25:43.511Z",
"deviceId": "1",
"recordType": 2,
"freeSeats": 2 //# of empty chairs.
}
Now you can continue with the mobile app setup.