- Change file mode from 644 to 755 for all project files - Add chain_id parameter to get_balance RPC endpoint with default "ait-devnet" - Rename Miner.extra_meta_data to extra_metadata for consistency
3.7 KiB
Executable File
3.7 KiB
Executable File
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