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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for amdapi-0.0.2b9.tar.gz
Algorithm Hash digest
SHA256 153a38f73da830c5376e870cffd7620d5f1510e3e22d137e444c759b0736d588
MD5 8505cbb87d4c72aef5f735deec8abc91
BLAKE2b-256 e566fd202a4861b20a98b2653ed87a985d6151a3fdbe74227b4cdf5b34086633

See more details on using hashes here.

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

Hashes for amdapi-0.0.2b9-py3-none-any.whl
Algorithm Hash digest
SHA256 2c011e82f2df2352cf977a28d62465436dd280dfe44e1492ca2bc21f0f3ea390
MD5 23480da891d3ae931cc0e950386797fd
BLAKE2b-256 f40b025a13fcdfc2705e191f4f66faad21af43556c0a97374500aafe28d18d5d

See more details on using hashes here.

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