- Remove executable permissions from configuration files (.editorconfig, .env.example, .gitignore) - Remove executable permissions from documentation files (README.md, LICENSE, SECURITY.md) - Remove executable permissions from web assets (HTML, CSS, JS files) - Remove executable permissions from data files (JSON, SQL, YAML, requirements.txt) - Remove executable permissions from source code files across all apps - Add executable permissions to Python
3.7 KiB
3.7 KiB
AITBC SDK
Python client SDK for interacting with AITBC coordinator services, blockchain nodes, and marketplace components.
Installation
pip install aitbc-sdk
Requirements
- Python: 3.11 or later
- Dependencies: httpx, pydantic, aitbc-crypto
Compatibility & Stability
Python Version Support
- Minimum Version: Python 3.11+
- Recommended: Python 3.11 or 3.12
- Guarantee: All APIs maintain backward compatibility within Python 3.11+
- Security: Cryptographic operations maintain security properties across versions
API Stability
- Major Version: 0.x (pre-1.0, APIs may change with notice)
- Deprecation Policy: Deprecated features marked with warnings for 2+ releases
- Breaking Changes: Announced in release notes with migration guides
- Semantic Versioning: Follows semver.org specifications
Quick Start
import asyncio
from aitbc_sdk import AITBCClient
async def main():
# Initialize client
client = AITBCClient(base_url="https://aitbc.bubuit.net")
# Submit a job
job = await client.submit_job({
"service_type": "llm_inference",
"model": "llama3.2",
"prompt": "Hello, world!"
})
# Check job status
status = await client.get_job_status(job.id)
print(f"Job status: {status.status}")
# Get results when complete
if status.status == "completed":
result = await client.get_job_result(job.id)
print(f"Result: {result.output}")
if __name__ == "__main__":
asyncio.run(main())
Features
- Job Management: Submit, monitor, and retrieve computation jobs
- Receipt Verification: Cryptographically verify job completion receipts
- Marketplace Integration: Browse and participate in GPU marketplace
- Blockchain Integration: Interact with AITBC blockchain for settlement
- Zero-Knowledge Support: Private computation with ZK proof verification
API Reference
Client Initialization
from aitbc_sdk import AITBCClient
client = AITBCClient(
base_url="https://aitbc.bubuit.net",
api_key="your-api-key",
timeout=30
)
Job Operations
# Submit a job
job = await client.submit_job({
"service_type": "llm_inference",
"model": "llama3.2",
"parameters": {
"prompt": "Explain quantum computing",
"max_tokens": 500
}
})
# Get job status
status = await client.get_job_status(job.id)
# Get job result
result = await client.get_job_result(job.id)
# Cancel a job
await client.cancel_job(job.id)
Receipt Operations
# Get job receipts
receipts = await client.get_job_receipts(job.id)
# Verify receipt authenticity
is_valid = await client.verify_receipt(receipt)
Marketplace Operations
# List available services
services = await client.list_services()
# Get service details
service = await client.get_service(service_id)
# Place bid for computation
bid = await client.place_bid({
"service_id": service_id,
"max_price": 0.1,
"requirements": {
"gpu_memory": "8GB",
"compute_capability": "7.5"
}
})
Configuration
The SDK can be configured via environment variables:
export AITBC_BASE_URL="https://aitbc.bubuit.net"
export AITBC_API_KEY="your-api-key"
export AITBC_TIMEOUT=30
Development
Install in development mode:
git clone https://github.com/oib/AITBC.git
cd AITBC/packages/py/aitbc-sdk
pip install -e ".[dev]"
Run tests:
pytest
License
MIT License - see LICENSE file for details.
Support
- Documentation: https://aitbc.bubuit.net/docs/
- Issues: https://github.com/oib/AITBC/issues
- Discussions: https://github.com/oib/AITBC/discussions