roboto-sai-sdk
Python SDK for the Roboto SAI platform — the canonical client and source of truth for public model names, runtime profiles, and the frozen runtime contract.
Install
pip install roboto-sai-sdk
Requires Python 3.10+.
What pip install roboto-sai-sdk pulls in (0.7.0+)
Since 0.7.0 the core install is the full roboto-sai.com backend runtime including its heavy ML
stack and PyTorch, so the site needs nothing but pip install roboto-sai-sdk — there are no
[site]/[server] extras. That is 48 direct requirements and ~190–210 installed distributions.
Measured site-packages on Linux x86_64:
| Install path | site-packages |
|---|---|
CPU torch first (below), then pip install roboto-sai-sdk |
~2.0 GB |
plain pip install roboto-sai-sdk from PyPI (resolves the CUDA torch build + nvidia-* wheels) |
~6.4 GB |
CPU-only install (servers and CI without a GPU) — install torch from the PyTorch CPU index
first; pip then treats torch==2.14.1 as satisfied and skips the CUDA build:
pip install torch==2.14.1 --index-url https://download.pytorch.org/whl/cpu
pip install roboto-sai-sdk
Warning: a Render 512 MB Starter instance previously ran out of memory (OOM-killed) with this heavy stack installed. Use a larger instance, or keep heavy imports lazy.
- Web/ASGI: fastapi, uvicorn, uvloop (not on Windows), httptools, pydantic[email], pydantic-settings, python-multipart, python-dotenv, websockets
- HTTP: httpx (the only one the SDK code itself imports), requests, aiohttp, urllib3
- Storage/queues: sqlalchemy, aiosqlite, redis, aioredis, celery, kombu
- Security/content: cryptography, PyJWT, bcrypt, bleach, itsdangerous, defusedxml, mistune, pygments, pillow
- Ops: psutil, structlog, slowapi, prometheus-client, opentelemetry-distro, opentelemetry-instrumentation-fastapi
- Integrations (exact pins):
mcp==2.2.0,supabase==2.31.0, plus boto3 - ML:
torch==2.14.1, numpy (<3), transformers, sentence-transformers, accelerate, onnxruntime, chromadb, networkx, rank-bm25, langchain-community, matplotlib
On Python 3.10, sqlalchemy, onnxruntime, networkx and matplotlib resolve to their newest
3.10-capable lines (the site's floors need 3.11+). Not included: xai-sdk (opt in with
pip install "roboto-sai-sdk[xai]"). The machine-readable list is
roboto_sai_sdk/contracts/dependency_contract.json. Need only the lightweight client? Pin
roboto-sai-sdk<0.7.
Quick Start
from roboto_sai_sdk import RobotoSAI
client = RobotoSAI() # uses SAI_ACCESS_TOKEN from env
result = client.send_message("Review this repository and propose the next refactor.")
print(result["model"]) # "roboto-sai"
print(result["subtitle"]) # "Core runtime"
print(result["text"]) # assistant reply
Stream mode:
from roboto_sai_sdk import RobotoSAI, extract_text_delta
client = RobotoSAI(model="roboto-sai")
for event in client.stream("List five things to test in a new SDK release."):
print(extract_text_delta(event), end="", flush=True)
Personal Memory
Retrieve the authenticated user's memories (Supabase-backed) with the same token:
from roboto_sai_sdk import RobotoSAI
client = RobotoSAI()
for mem in client.list_memories(limit=10):
print(mem["category"], "—", mem["content"])
hits = client.search_memories("what did I say about the launch?", limit=5)
Public Model Surface
The SDK exposes four canonical models:
| Model | Mode | Use |
|---|---|---|
roboto-sai |
single-agent | Core general intelligence |
roboto-sai-code-x |
single-agent | Code generation, debugging, architecture |
roboto-sai-cortex |
multi-agent | Deep orchestration with research capabilities |
roboto-sai-rovox |
single-agent (audio) | Voice/audio I/O — separate realtime path |
Use only canonical roboto-sai-* names. Legacy aliases (e.g. roboto-sai-lightning, -heavy, -flex) were removed in 0.2.0.
Inspect Runtime Profiles
from roboto_sai_sdk import (
DEFAULT_PUBLIC_MODEL,
PUBLIC_MODEL_NAMES,
get_runtime_profile,
)
print(DEFAULT_PUBLIC_MODEL) # "roboto-sai"
print(sorted(PUBLIC_MODEL_NAMES)) # all 4 names
print(get_runtime_profile("roboto-sai"))
Authentication
The Roboto SAI API authenticates with a Supabase JWT. The SDK resolves it in this order:
- Explicit
access_token=...argument SAI_ACCESS_TOKENenvironment variable
Get a token by logging in (e.g. roboto-sai auth login in the CLI). Set
SAI_API_BASE_URL to override the default base URL (https://api.roboto-sai.com).
Public API
The stable surface is roboto_sai_sdk.__all__ (17 names; client, memory, keys, and MCP are lazy-loaded on first access):
RobotoSAI, SendMessageResult, StreamEvent, extract_text_delta, Memory, DEFAULT_PUBLIC_MODEL, PUBLIC_MODEL_NAMES, RuntimeProfile, get_runtime_profile, normalize_public_model, get_mcp_config, get_public_runtime_contract, CONTRACT_VERSION, CONTRACT_LAST_UPDATED, SAI_ACCESS_TOKEN, resolve_access_token, hash_key
import roboto_sai_sdk
assert roboto_sai_sdk.__all__ == [
"RobotoSAI",
"SendMessageResult",
"StreamEvent",
"extract_text_delta",
"Memory",
"DEFAULT_PUBLIC_MODEL",
"PUBLIC_MODEL_NAMES",
"RuntimeProfile",
"get_runtime_profile",
"normalize_public_model",
"get_mcp_config",
"get_public_runtime_contract",
"CONTRACT_VERSION",
"CONTRACT_LAST_UPDATED",
"SAI_ACCESS_TOKEN",
"resolve_access_token",
"hash_key",
]
Voice/audio (roboto-sai-rovox) requires the realtime integration — send_message and stream raise NotImplementedError for that model. A future RobotoSAIVoice client will land in a separate release.
Repository
Source code, examples, and full release notes: https://github.com/Roboto-SAI-LLC/roboto-sai-sdk
License
Proprietary. See LICENSE in the repository.
Metadata
Release files for roboto-sai-sdk 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| roboto_sai_sdk-0.7.0.tar.gz | 32.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| roboto_sai_sdk-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 57.7 kB
Release files / roboto_sai_sdk-0.7.0.tar.gz
| Download URL | roboto_sai_sdk-0.7.0.tar.gz |
|---|---|
| Size | 32.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c9ff35a331a32aa485591f22c711b0683de74cfb8dce118fb563ba5480d84693
|
|
BLAKE2b-256 checksum How to use checksums |
6ae0a3f2bf80809876cb9a53e4b263e0b593c408642585d4d40e76cf2a0f02d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|
Release files / roboto_sai_sdk-0.7.0-py3-none-any.whl
| Download URL | roboto_sai_sdk-0.7.0-py3-none-any.whl |
|---|---|
| Size | 25.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
84450610c4731056c7119770ae8f8fc47f0158c73b93986dd4d2384fb6a016a7
|
|
BLAKE2b-256 checksum How to use checksums |
d5d813cfa1945a964e6fc355ef01209105ac2655ff6a4705f62ebcafb9be4f14
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.17
|