Skip to main content
Pre-release

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

Aipolabs ACI Python SDK

PyPI version

The official Python SDK for the Aipolabs ACI API. Currently in private beta, breaking changes are expected.

The Aipolabs ACI Python SDK provides convenient access to the Aipolabs ACI REST API from any Python 3.10+ application.

Documentation

The REST API documentation is available here.

Installation

pip install aipolabs

or with poetry:

poetry add aipolabs

Usage

Aipolabs ACI platform is built with agent-first principles. Although you can call each of the APIs below any way you prefer in your application, we strongly recommend trying the Agent-centric features and taking a look at the examples to get the most out of the platform and to enable the full potential and vision of future agentic applications.

Client

from aipolabs import ACI

client = ACI(
    # it reads from environment variable by default so you can omit it if you set it in your environment
    api_key=os.environ.get("AIPOLABS_ACI_API_KEY")
)

Apps

Types

from aipolabs.types.apps import AppBasic, AppDetails

Methods

# search for apps, returns list of basic app data, sorted by relevance to the intent
# all parameters are optional
apps: list[AppBasic] = client.apps.search(
    intent="I want to search the web",
    allowed_apps_only=False, # If true, only return apps that are allowed by the agent/accessor, identified by the api key.
    include_functions=False, # If true, include functions (name and description) in the search results.
    categories=["search"],
    limit=10,
    offset=0
)
# get detailed information about an app, including functions supported by the app
app_details: AppDetails = client.apps.get(app_name="BRAVE_SEARCH")

Functions

Types

from aipolabs.types.functions import FunctionExecutionResult, FunctionDefinitionFormat

Methods

# search for functions, returns list of basic function data, sorted by relevance to the intent
# all parameters are optional
functions: list[dict] = client.functions.search(
    app_names=["BRAVE_SEARCH", "TAVILY"],
    intent="I want to search the web",
    allowed_apps_only=False, # If true, only returns functions of apps that are allowed by the agent/accessor, identified by the api key.
    format=FunctionDefinitionFormat.OPENAI, # The format of the functions, can be OPENAI, ANTHROPIC, BASIC (name and description only)
    limit=10,
    offset=0
)
# get function definition of a specific function, this is the schema you can feed into LLM
# the actual format is defined by the format parameter: OPENAI, ANTHROPIC, BASIC (name and description only)
function_definition: dict = client.functions.get_definition(
    function_name="BRAVE_SEARCH__WEB_SEARCH",
    format=FunctionDefinitionFormat.OPENAI
)
# execute a function with the provided parameters
result: FunctionExecutionResult = client.functions.execute(
    function_name="BRAVE_SEARCH__WEB_SEARCH",
    function_parameters={"query": {"q": "what is the weather in barcelona"}},
    linked_account_owner_id="john_doe"
)

if result.success:
    print(result.data)
else:
    print(result.error)

Agent-centric features

The SDK provides a suite of features and helper functions to make it easier and more seamless to use functions in LLM powered agentic applications. This is our vision and the recommended way of trying out the SDK.

Meta Functions and Unified Function Calling Handler

We provide 4 meta functions that can be used with LLMs as tools directly, and a unified handler for function calls. With these the LLM can discover apps and functions (that our platform supports) and execute them autonomously.

from aipolabs import meta_functions

# meta functions
tools = [
    meta_functions.ACISearchApps.SCHEMA,
    meta_functions.ACISearchFunctions.SCHEMA,
    meta_functions.ACIGetFunctionDefinition.SCHEMA,
    meta_functions.ACIExecuteFunction.SCHEMA,
]
# unified function calling handler
result = client.handle_function_call(
    tool_call.function.name,
    json.loads(tool_call.function.arguments),
    linked_account_owner_id="john_doe",
    allowed_apps_only=True,
    format=FunctionDefinitionFormat.OPENAI
)

There are mainly two ways to use the platform with the meta functions:

Please also see agent_with_preplanned_tools.py for comparison where the specific functions are pre selected and provided to the LLM.

Metadata

Release files for aipolabs 0.0.1b7

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

Source distribution (sdist)

Source distribution for aipolabs 0.0.1b7
File Size Uploaded Provenance Actions
aipolabs-0.0.1b7.tar.gz 13.6 kB Without provenance Details for aipolabs-0.0.1b7.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for aipolabs 0.0.1b7
File Interpreter ABI Platform Actions
aipolabs-0.0.1b7-py3-none-any.whl Python 3 none any Details for aipolabs-0.0.1b7-py3-none-any.whl

Total release size: 32.3 kB

Release files / aipolabs-0.0.1b7.tar.gz

Download URL aipolabs-0.0.1b7.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
861b076c2fc50923e25896d10158493b51ebffbb308f7477371555f00fcf22fb
BLAKE2b-256 checksum
How to use checksums
c6206583980adf556d6dbde8509015dc4ea694187347398fed4fb04b7a10a6ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.13.0 Darwin/24.3.0

Release files / aipolabs-0.0.1b7-py3-none-any.whl

Download URL aipolabs-0.0.1b7-py3-none-any.whl
Size 18.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e3a37c30c9cac81b036e37a8a48599451d3747212fba3b761ed2eeb889081287
BLAKE2b-256 checksum
How to use checksums
07b7c788e6630a86659c7fab8c46578c3f83272659d416b1087d27353fb5ad32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.4 CPython/3.13.0 Darwin/24.3.0

Security for aipolabs 0.0.1b7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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