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.
Source Distribution
Built Distribution
File details
Details for the file amdapi-0.0.2b9.tar.gz
.
File metadata
- Download URL: amdapi-0.0.2b9.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 153a38f73da830c5376e870cffd7620d5f1510e3e22d137e444c759b0736d588 |
|
MD5 | 8505cbb87d4c72aef5f735deec8abc91 |
|
BLAKE2b-256 | e566fd202a4861b20a98b2653ed87a985d6151a3fdbe74227b4cdf5b34086633 |
File details
Details for the file amdapi-0.0.2b9-py3-none-any.whl
.
File metadata
- Download URL: amdapi-0.0.2b9-py3-none-any.whl
- Upload date:
- Size: 15.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c011e82f2df2352cf977a28d62465436dd280dfe44e1492ca2bc21f0f3ea390 |
|
MD5 | 23480da891d3ae931cc0e950386797fd |
|
BLAKE2b-256 | f40b025a13fcdfc2705e191f4f66faad21af43556c0a97374500aafe28d18d5d |