Documentation AIME API Client Interface
- class aime_api_client_interface.ModelAPI(api_server, endpoint_name, user=None, key=None, session=None, output_format='base64', output_type='image')
An interface for interacting with the AIME ML API server.
- Parameters:
api_server (str) – The base URL of the API server.
endpoint_name (str) – The name of the API endpoint.
session (aiohttp.ClientSession) – Give existing session to ModelApi API to make login request in given session. Defaults to None.
- api_server
The base URL of the API server.
- Type:
str
- endpoint_name
The name of the specific API endpoint.
- Type:
str
- client_session_auth_key
The authentication key for the client session, obtained from do_api_login.
- Type:
str
Examples
Synchronous with progress callback:
from python_api_client_interface import ModelAPI def progress_callback(progress_info, progress_data): process_progress_info(progress_info) process_progress_data(progress_data) model_api = ModelAPI('https://api.aime.team', 'llama2_chat', 'user_name', 'user_key') model_api.do_api_login() result = model_api.do_api_request(params, progress_callback) result_2 = model_api.do_api_request(params, progress_callback) ...
Asynchronous with asynchronous callbacks:
import asyncio from python_api_client_interface import ModelAPI async def result_callback(result): await process_result(result) async def progress_callback(progress_info, progress_data): await process_progress_info(progress_info) await process_progress_data(progress_data) async def progress_error_callback(error_description): print(error_description) async def main(): model_api = modelAPI('https://api.aime.team', 'llama2_chat', 'user_name', 'user_key') await model_api.do_api_login() result = await model_api.do_api_request(params, result_callback, progress_callback) result2 = await model_api.do_api_request(params, result_callback, progress_callback) ... await model_api.close_session() asynchio.run(main())
Asynchronous with synchronous callbacks:
import asyncio from python_api_client_interface import ModelAPI sync def result_callback(result): process_result(result) def progress_callback(progress_info, progress_data): process_progress_info(progress_info) process_progress_data(progress_data) def progress_error_callback(error_description): print(error_description) async def main(): model_api = modelAPI('https://api.aime.team', 'llama2_chat', 'user_name', 'user_key') await model_api.do_api_login() result = await model_api.do_api_request(params, result_callback, progress_callback) result2 = await model_api.do_api_request(params, result_callback, progress_callback) ... await model_api.close_session() asynchio.run(main())
- async do_api_login_async(user=None, key=None, result_callback=None, error_callback=None, session=None)
Asynchronous client login to API server and obtain an authentication key.
- Parameters:
user (str) – The name of the user
key (str) – The user related key
result_callback (callable or coroutine) – Callback function or coroutine with the obtained client_session_auth_key as argument. Accepts synchronous functions and asynchrouns couroutines. Defaults to None.
error_callback (callable or coroutine) – Accepts synchronous functions and asynchrouns couroutines. Prevents ConnectionError. Defaults to None.
session (aiohttp.ClientSession) – Give existing session to ModelApi API to make login request in given session. Defaults to None.
- Raises:
ConnectionError – If there is a connection issue with the API server and no error_callback given.
- Returns:
Client session authentication key
- Return type:
str
- do_api_login(user=None, key=None)
Client login to API server and obtain an authentication key.
- Parameters:
user (str) – The name of the user
key (str) – The user related key
- Raises:
ConnectionError – If there is a connection issue with the API server.
- Returns:
Client session authentication key
- Return type:
str
- async do_api_request_async(params, result_callback=None, progress_callback=None, request_error_callback=None, progress_error_callback=None, progress_interval=0.3, progress_stream=False, session=None, output_format='base64')
Do an asynchronous API request with optional progress data via asynchronous or synchronous callbacks.
- Parameters:
params (dict) – Dictionary with parameters for the the API request like ‘prompt’ or ‘image’.
result_callback (callable or coroutine, optional) – Callback function or coroutine with argument result (dict) to handle the API request result. Accepts synchronous functions and asynchrouns couroutines. Defaults to None
progress_callback (callable or coroutine, optional) – Callback function or coroutine with arguments progress_info (dict) and progress_data (dict) for tracking progress. Accepts synchronous functions and asynchrouns couroutines. Default is None.
request_error_callback (callable or coroutine, optional) – Callback function or coroutine with argument error_description (str) for catching request errors. Accepts synchronous functions and asynchrouns couroutines. Prevents ConnectionError and PermissionError. Defaults to None.
progress_error_callback (callable or coroutine, optional) – Callback function or coroutine with argument error_description (str) for catching progress errors with successful initial request. Accepts synchronous functions and asynchrouns couroutines. Prevents ConnectionErrors during Transmitting. Defaults to None.
progress_interval (int, optional) – Interval in seconds at which progress is checked. Default is {DEFAULT_PROGRESS_INTERVAL}.
progress_stream (bool, optional) – Not implemented yet
session (aiohttp.ClientSession) – Give existing session to ModelApi API to make login request in given session. Defaults to None.
- Raises:
ConnectionError – Raised if client couldn’t connect with API sserver and no request_error_callback is given. Also raised if client lost connection during transmitting and no progress_error_callback is given.
PermissionError – Raised if client is not logged in the API server and no error_callback given.
NotImplementedError – If progress_stream != None.
- Returns:
Dictionary with job results
- Return type:
dict
Examples
Example job result dict in result callback argument or return value:
result = { 'auth': '<name_of_worker>', 'compute_duration': 2.4, 'images': 'data:image/PNG;base64,...' 'job_id': 'JID3', 'seed': 1234413214, 'success': True, 'text': 'Test output...', 'total_duration': 2 }
Example progress_callback arguments progress_info and progress_data dictionaries:
progress_info = { 'job_id': 'JID3', 'progress': 50, 'queue_position': 0, 'estimate': -1 } progress_data = { 'info': '<infos from worker about progress', 'images': 'data:image/PNG;base64,...', 'text': 'Test outpu...' }
- do_api_request(params, progress_callback=None, progress_error_callback=None, progress_interval=0.3, progress_stream=None)
Do an synchronous API request with optional progress data via callbacks.
- Parameters:
params (dict) – Dictionary with parameters for the the API request like ‘prompt’ or ‘image’
progress_callback (callable, optional) – Callback function or coroutine with arguments progress_info (dict) and progress_data (dict) for receiving progress data. Defaults to None.
progress_error_callback (callable, optional) – Callback function or coroutine with argument error_description (str) for catching progress errors with successful initial request. Prevents ConnectionErrors during Transmitting. Defaults to None.
progress_interval (int, optional) – Interval in seconds at which progress is checked. Default is 300.
progress_stream (int, optional) – Not implemented yet
- Raises:
ConnectionError – Raised if client couldn’t connect with API server. Also raised if client lost connection during transmitting and no progress_error_callback given.
PermissionError – Raised if client is not logged in the API server
NotImplementedError – If progress_stream != None
- Returns:
Dictionary with request result parameters.
- Return type:
dict
Examples
Example job result dict:
result = { 'auth': '<name_of_worker>', 'compute_duration': 2.4, 'images': 'data:image/PNG;base64,...' 'job_id': 'JID3', 'seed': 1234413214, 'success': True, 'text': 'Test output...', 'total_duration': 2 }
Example progress_callback arguments progress_info and progress_data dictionaries:
progress_info = { 'job_id': 'JID3', 'progress': 50, 'queue_position': 0, 'estimate': -1 } progress_data = { 'info': '<infos from worker about progress', 'images': 'data:image/PNG;base64,...', 'text': 'Test outpu...' }
- setup_session(session)
Open a new session if session is
- Parameters:
session (aiohttp.ClientSession) – Give existing session to ModelApi API to make upcoming requests in given session.
- async close_session()
Close the aiohttp client session saved in ModelApi().session.
- static check_if_valid_base64_string(test_string)
Check if given string is a valid base64-encoded string.
- Parameters:
test_string (str) – The string to test.
- Returns:
True if the string is a valid base64-encoded string, False otherwise.
- Return type:
bool
- static get_version()
Parses name and version of AIME API Client Interface with pkg_resources
- Returns:
Name and version of AIME API Client Interface
- Return type:
str
- async aime_api_client_interface.do_api_request_async(api_server, endpoint_name, params, user=None, key=None, result_callback=None, progress_callback=None, request_error_callback=None, progress_error_callback=None, session=None)
A simplified interface for making a single asynchronous API request with do_api_login included.
- Parameters:
api_server (str) – The address of the API server
endpoint_name (str) – The name of the API endpoint
params (dict) – Parameters for the API request
user (str) – The name of the user
key (str) – The user related key
result_callback (callback, optional) – Callback function with argument result (dict) to handle the API request result. Defaults to None.
progress_callback (callback, optional) – Callback function with arguments progress_info (dict). Defaults to None. and progress_data (dict) for tracking progress. Defaults to None.
request_error_callback (callback, optional) – Callback function with arguments error_description (str) for catching request errors. Defaults to None.
progress_error_callback (callable or coroutine, optional) – Callback function with arguments error_description (str) for catching progress errors with successful initial request. Accepts synchronous functions and asynchrouns couroutines. Defaults to None.
session (aiohttp.ClientSession) – Give existing session to ModelApi API to make login request in given session. Defaults to None.
- Returns:
Dictionary with request result parameters.
- Return type:
dict
- Raises:
ConnectionError – Raised if client couldn’t connect with API server and no request_error_callback is given. Also raised if client lost connection during transmitting and no progress_error_callback is given.
Examples
Example usage with synchronous callbacks:
import asyncio def result_callback(result): process_result(result) def progress_callback(progress_info, progress_data): process_progress_info(progress_info) process_progress_data(progress_data) asyncio.run(do_api_request('https://api.aime.team', 'llama2_chat', {'text': 'Chat question'}, 'user_name', 'password', result_callback, progress_callback))
Example usage with asynchronous callbacks:
import asyncio async def result_callback(result): await process_result(result) async def progress_callback(progress_info, progress_data): await process_progress_info(progress_info) await process_progress_data(progress_data) result = asyncio.run(do_api_request('https://api.aime.team', 'llama2_chat', {'text': 'Chat question'}, 'user_name', 'password', result_callback, progress_callback))
Example progress result dictionary at start:
progress_result = { 'job_id': 'JID6', 'job_state': 'processing', 'progress': { 'progress': 0, 'queue_position': 0 }, 'success': True }
Example progress result dictionary while processing:
progress_result = { 'job_id': 'JID6', 'job_state': 'processing', 'progress': { 'job_id': 'JID6', 'progress': 50, 'progress_data': { 'images': 'base64-string', 'text': 'Test output' }, 'queue_position': 0 }, 'success': True }
Example progress_result dictionaries when finished:
progress_result = { 'job_id': 'JID6', 'job_result': { 'auth': 'neo07_GPU0', 'compute_duration': 2.4, 'images': 'data:image...', 'text': 'Test outpu...', 'total_duration': 2.5 }, 'job_state': 'done', 'progress': { 'job_id': 'JID6', 'progress': 100, 'progress_data': { 'images': 'data:image...', 'text': 'Test outpu...' }, 'queue_position': 0 }, 'success': True }
- aime_api_client_interface.do_api_request(api_server, endpoint_name, params, user=None, key=None, progress_callback=None, progress_error_callback=None)
A simplified interface for making a single synchronous API request with do_api_login included.
- Parameters:
api_server (str) – Address of API server
endpoint_name (str) – Name of endpoint
params (dict) – Dictionary with api request parameters
user (str) – The name of the user
key (str) – The user related key
progress_callback (callback, optional) – Callback function with arguments progress_info (dict) and progress_data (dict) for tracking progress. Defaults to None.
progress_error_callback (callback, optional) – Callback function with argument error_description (str) called if request was successfull but progress got errors. Defaults to None.
- Returns:
Dictionary with request result parameters
- Return type:
dict
- Raises:
ConnectionError – Raised if client couldn’t connect with API server. Also raised if client lost connection during transmitting and no progress_error_callback is given.
Examples
Example usage with progress and progress_error_callback:
import asyncio def progress_callback(progress_info, progress_data): process_progress_info(progress_info) process_progress_data(progress_data) def progress_error_callback(error_description): pass result = do_api_request('https://api.aime.team', 'llama2_chat', {'text': 'Chat question'}, 'user_name', 'password', progress_callback, progress_error_callback)
Example progress result dictionary at start:
progress_result = { 'job_id': 'JID6', 'job_state': 'processing', 'progress': { 'progress': 0, 'queue_position': 0 }, 'success': True }
Example progress result dictionary while processing:
progress_result = { 'job_id': 'JID6', 'job_state': 'processing', 'progress': { 'job_id': 'JID6', 'progress': 50, 'progress_data': { 'images': 'base64-string', 'text': 'Test output' }, 'queue_position': 0 }, 'success': True }
Example progress_result dictionaries when finished:
progress_result = { 'job_id': 'JID6', 'job_result': { 'auth': 'neo07_GPU0', 'compute_duration': 2.4, 'images': 'data:image...', 'text': 'Test outpu...', 'total_duration': 2.5 }, 'job_state': 'done', 'progress': { 'job_id': 'JID6', 'progress': 100, 'progress_data': { 'images': 'data:image...', 'text': 'Test outpu...' }, 'queue_position': 0 }, 'success': True }