Installation
Every AICE package, its current version, and what each language needs.
Install only the services you call. Each package is versioned on its own, so upgrading one never forces an upgrade of another.
Requirements
| Python | TypeScript | |
|---|---|---|
| Runtime | Python 3.11+ | Node 18+ (or any runtime with fetch) |
| Module format | typed (py.typed) | ESM only, types included |
| HTTP | httpx | native fetch |
| Sync and async | both (XClient, AsyncXClient) | async (promises) |
Packages
| Service | Python | Version | TypeScript | Version |
|---|---|---|---|---|
| Agent Platform | aice-agent-platform | 0.2.1 | @aiceafrica/agent-platform | 0.2.0 |
| Recommendation | aice-recommendation | 0.2.2 | @aiceafrica/recommendation | 0.2.1 |
| Knowledge | aice-knowledge | 0.1.2 | @aiceafrica/knowledge | 0.1.0 |
| Crawler | aice-crawler | 0.1.2 | @aiceafrica/crawler | 0.1.1 |
| Data Brain | aice-data-brain | 0.1.2 | @aiceafrica/data-brain | 0.1.1 |
| KYC | aice-kyc | 0.1.2 | @aiceafrica/kyc | 0.1.1 |
| Sandbox | aice-sandbox, see note | 0.1.0 | not available | |
| Everything above | aice-sdk | 0.1.2 | @aiceafrica/sdk | 0.1.0 |
| Shared transport | aice-core | 0.3.0 | @aiceafrica/core | 0.3.0 |
| Telemetry bootstrap | aice-observability | 0.1.0 | not available |
You don't install aice-core / @aiceafrica/core yourself: every service package depends on it. The umbrella pulls in every service except Sandbox, which authenticates differently.
pip install aice-recommendation aice-knowledge
# or everything:
pip install aice-sdkBundling for the browser
Don't. The project key must stay on your servers, so these packages belong in backend code only. If you ship to an edge runtime, install single service packages rather than @aiceafrica/sdk, which pulls every client into the bundle.
Installing from the monorepo
Until a package reaches your registry, install it from the aice_sdks repository:
cd aice_sdks/python/knowledge_service
uv sync # or: pip install -e .Service URLs
Each service is its own deployment, with no shared gateway. A client's base URL is the service's host plus its path: the clients add each endpoint's path to whatever you pass, so the service's own prefix has to be part of it.
| Service | Base URL, local stack | Path |
|---|---|---|
| Agent Platform | http://localhost:6060 | none |
| Knowledge | http://localhost:6100/knowledge | /knowledge |
| Crawler | http://localhost:6200/crawl | /crawl |
| Recommendation | http://localhost:6400/ecommerce | /{vertical}: your project's vertical, shown in the console |
| Sandbox | http://localhost:8080 | none |
| Data Brain | see Data Brain | /v1 |
| KYC | see KYC | /api/v1/kyc |
The built-in defaults leave the path out
Clients and the umbrella fall back to bare http://localhost:<port> URLs when you don't pass one. Those miss the path for Knowledge, Crawler and Recommendation, so always pass the full base URL.
Versioning
Packages follow SemVer and keep their own CHANGELOG.md. Everything is below 1.0, so read a minor bump (0.1 → 0.2) as "something changed that you should look at", and patch bumps as safe.
Two renames happened at 0.2.0 of Recommendation: aice-reco-sdk became aice-recommendation and RecoClient became RecommendationClient. See Recommendation.