Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amdapi-0.0.2b9.tar.gz (14.8 kB view hashes)

Uploaded Source

Built Distribution

amdapi-0.0.2b9-py3-none-any.whl (15.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page