Nida is a contact center analytics solution that allows you to analyze customer calls using AI. The solution supports easy creation of multiple persons to evaluate the calls and thus allows to extract department specific information. For example:
- Sales Quality Manager --> Able to easily extract insights about the agents' sales qualities, e.g., up-selling attempts, empathy, etc.
- Marketing Manager --> Extract sentiment, awareness regarding promotions, etc.
- Product Manager --> Extract product related issues and pain points of customers
The project consists of a multi-stage pipeline to process calls:
- Transcription via
whisperorgpt-4o-audio-preview, subsequent diarization (if required) viagpt-4o - Insight extraction via
gpt-4o, based on user-defined personas - Analytics based on PowerBI (optional)
- Docker
- Azure CLI
- Azure Developer CLI
- Available quota for Azure OpenAI in your Azure subscription (rates can be adjusted in
infra/app/src.bicep):
| Model | Deloyment Type | Quota |
|---|---|---|
| gpt-4o (2024-11-20) | GlobalStandard | 30k TPM |
| whisper-001 | Standard | 1 RPM |
| gpt-4o-audio-preview (2024-12-17) | GlobalStandard | 80k TPM |
For example swedencentral
- Clone the repo
az loginazd up
Then visit the azurecontainerapps URL that is returned. In the UI, you can upload the sample calls from samples/audios/*.wav and create a first persona from samples/marketing_sentiment_details.txt.
cd srccp .env.sample .envand update.envwith your valid keys, endpoint, and settings- Make sure you have the relevant permissions on the Storage Account (
Storage Blob Data ContributorandStorage Queue Data Contributor), Azure OpenAI resource (Cognitive Services OpenAI User) and Azure Search (Search Service Contributor,Search Index Data Contributorand make sure to enabled RBAC-access underKeys) pip install -r requirements.txtstreamlit run main.py- Then head to the Diagnostics page and make sure all tests pass.
This project consists of:
-
infra/– Bicep files for Azure infrastructure deployments.app/src.bicepis the main file to modify.- Refer to
azure.yamlfor basic service definitions, such as container app settings, Dockerfiles, and any optional resource group info (commented).
-
src/– Main application code with a Streamlit app.Main.pysets up Streamlit configuration, page title, and loads a logo.- Other Python files (e.g.,
transcriptions.py) import services likeazure_storageandazure_transcription.
-
samples/– Sample person definition and sample audio call.