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.

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
        }

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.1b0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

amdapi-0.0.1b0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file amdapi-0.0.1b0.tar.gz.

File metadata

  • Download URL: amdapi-0.0.1b0.tar.gz
  • Upload date:
  • Size: 13.5 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.1b0.tar.gz
Algorithm Hash digest
SHA256 f094227b10373c7ff270f21d61d382068182db0d6404fe3618a409c2bc141b86
MD5 99823406c0382da0606045c5e1f6e4c4
BLAKE2b-256 46cfd1bcc91a27180ca33609ea58313f25c8194a5378389f124e66d183ca1406

See more details on using hashes here.

File details

Details for the file amdapi-0.0.1b0-py3-none-any.whl.

File metadata

  • Download URL: amdapi-0.0.1b0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 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.1b0-py3-none-any.whl
Algorithm Hash digest
SHA256 4124c7b7ceb99e4195903f616dfe5e0d60ad8e93cac80ccf05e573e924d2ab9b
MD5 8eb07d7f0656b50234e8bf474f0b1b1b
BLAKE2b-256 b656f2fbf29ea73f6f055cd043372150d5f16ce8e68a819ec33181a11f3744d0

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