Python SDK for AMDAPi API
Project description
AMDAPi Python SDK
The AMDAPi Python SDK package serves as a native python interface allowing for easy consumption of AMDAPi API services.
Installation
The AMDAPi SDK can be installed from pip as follows:
pip install amdapi
Quick-Start Guide
In order to create a client and use the AMDAPi services, you must first be granted credentials from AMDAPi.
Once you have these credentials this Quick-Start guide can be followed to quickly understand the main functionality of the SDK.
If further explanation is required the full documentation can be found here.
Creating a Client
from amdapi import Client
amdapi_id = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
amdapi_secret = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client(amdapi_id, amdapi_secret)
or credentials can be loaded into local environment variables
import os
from amdapi import Client
from amdapi.configs import CLIENT_ID_ENV_NAME, CLIENT_SECRET_ENV_NAME
# Client looks for the ID @ AMDAPI-CLIENT-ID
os.environ[CLIENT_ID_ENV_NAME] = "XXXXXXXXXXXXXXXXXXXXXXXXXX"
# Client looks for the Secret @ AMDAPI-CLIENT-SECRET
os.environ[CLIENT_SECRET_ENV_NAME] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client()
Output:
< amdapi.Client | ClientID: XXXXXXXXXXXXXXXXXXXXXXXXXX | Last Token Refresh: 2022-04-29 08:43:49>
Analyzing a Call
To send a call to the AMDAPi Backend the following parameters are required.
Note: Currently the audio file must be in a .wav
format.
Call Params
Name | Type | Allowed Values | Description |
---|---|---|---|
call_id |
str |
NA | ID of Call from your DB |
client_id |
int |
NA | ID of Client from your DB |
agent_id |
int |
NA | ID of Agent from your DB |
customer_id |
int |
NA | ID of Customer from your DB |
summary |
bool |
NA | Wheather the call should be summarised during analysis. |
filename |
str |
NA | Filename of the audio file. |
origin |
str |
['Inbound','Outbound'] |
Defines whether the call was Outbound or Inbound. |
language |
str |
['en','en-in','fr'] |
Primary language of the audio sent for analysis. |
agent_channel |
int |
[0,1] |
⚠ Required for stereo audio to specify the channel for the agent audio. Will be ignored in the case of mono-channel audio. |
Example
The following code segment demonstrates how you would analyze a call:
filename = "6c89833033cd57c3cfeb1ad8445821a6714d9bf6cd3613b723ac1cfb"
file_path = f"{filename}.wav"
params = {
"client_id": 12345,
"agent_id": 12345,
"filename": filename,
"call_id": 12345,
"customer_id": 12345,
"origin":"Inbound",
"language":"en",
"summary": True,
"agent_channel": 1 # <- Indicates that the audio is stereo and that the agent is on channel 1
}
with open(file_path, 'rb') as file:
call = client.analyze_call(file, **params)
A Call
object containing the meta-data provided and the automatically generated uuid will be returned.
Please allow a few minutes for the analysis of the call to be complete, and retrieve the analyzed call using the call UUID.
Output:
< amdapi.Call | UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | Analyzed: False >
Retrieving A Call
Retrieving a call via UUID can be achieved as follows:
call = client.get_call(call.uuid)
Output:
< amdapi.Call | UUID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | Analyzed: True >
Searching for Multiple Calls
The SDK allows for searching for all previously uploaded calls and will return results in a paginated format with max 350 calls per page.
Search params
Currently these search parameters are supported, they may be left None
to get all calls.
Name | Type | Allowed Values | Description |
---|---|---|---|
page_number |
int |
NA | The page number |
agent_id |
int |
NA | ID of Client from your DB |
client_id |
int |
NA | ID of Agent from your DB |
start_date |
str | datetime.datetime |
"DD/MM/YYYY" - If string is used. |
The start date of your search. |
end_date |
str | datetime.datetime |
"DD/MM/YYYY" - If string is used |
The end date of your search. |
Example
search_params = {
"page_number": 123,
"agent_id": 123,
"client_id": 123,
"start_date": 25/07/2021,
"end_date": datetime.now(),
}
search = client.search_calls(**search_params)
Output [No Calls Found]:
< amdapi.SearchResult | current_page: None | is_last_page: None | n_calls 0 >
Output [Calls Found]:
< amdapi.SearchResult | current_page: 1 | is_last_page: False | n_calls 350 >
Default Search
If no Search Parameters are provided then all calls will be returned.
search = client.search_calls()
Output:
< amdapi.SearchResult | current_page: 1 | is_last_page: False | n_calls 350 >
Deleting Calls
⚠ WARNING - This action is irreversible
You can delete a call and all analysis from the AMDAPi servers with the following:
msg = client.delete_call(call.uuid)
Output:
'Call XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Deleted Successfully'
Reference Docs
Find our full documentation here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.