Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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.

Release files for amdapi 0.0.2b9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amdapi 0.0.2b9
File Size Uploaded
amdapi-0.0.2b9.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amdapi 0.0.2b9
File Interpreter ABI Platform
amdapi-0.0.2b9-py3-none-any.whl Python 3 none any Details

Total release size: 29.8 kB

Release files / amdapi-0.0.2b9.tar.gz

Download URL amdapi-0.0.2b9.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
153a38f73da830c5376e870cffd7620d5f1510e3e22d137e444c759b0736d588
BLAKE2b-256 checksum
How to use checksums
e566fd202a4861b20a98b2653ed87a985d6151a3fdbe74227b4cdf5b34086633
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.12

Release files / amdapi-0.0.2b9-py3-none-any.whl

Download URL amdapi-0.0.2b9-py3-none-any.whl
Size 15.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2c011e82f2df2352cf977a28d62465436dd280dfe44e1492ca2bc21f0f3ea390
BLAKE2b-256 checksum
How to use checksums
f40b025a13fcdfc2705e191f4f66faad21af43556c0a97374500aafe28d18d5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.12

Release history Release notifications | RSS feed

This release

0.0.2b9 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page