PyPI version Python License: MIT
Official Python SDK for Rax AI Platform - Simple, powerful, and integrated.
pip install rax-ai
from rax_ai import RaxAI rax = RaxAI(api_key="your-api-key") response = rax.chat( model="rax-4.0", messages=[ {"role": "user", "content": "Hello!"} ] ) print(response["choices"][0]["message"]["content"])
- โ Simple API - Clean, intuitive methods
- โ Python 3.7+ - Compatible with most Python versions
- โ Auto Retry - Smart error handling with exponential backoff
- โ Type Hints - Full typing support
- โ Models API - List and manage available models
- โ Usage Tracking - Monitor your API consumption
- โ Streaming - Real-time response streaming (coming soon)
from rax_ai import RaxAI rax = RaxAI( api_key="your-key", base_url="https://ai.raxcore.dev/api", # default timeout=30 # seconds, default )
response = rax.chat( model="rax-4.0", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Explain quantum computing"} ], max_tokens=150, temperature=0.7, top_p=0.9 ) print(response["choices"][0]["message"]["content"])
for chunk in rax.chat_stream( model="rax-4.0", messages=[{"role": "user", "content": "Tell me a story..."}] ): print(chunk, end="", flush=True)
# Get available models models = rax.get_models() print("Available models:", [m["id"] for m in models["data"]]) # Validate API key is_valid = rax.validate_key() print("Key valid:", is_valid)
# Get current usage usage = rax.get_usage() print("Total requests:", usage["total_requests"]) print("Total tokens:", usage["total_tokens"]) # Get usage for date range monthly_usage = rax.get_usage( start_date="2024-01-01", end_date="2024-01-31" ) print("Monthly breakdown:", monthly_usage["daily_breakdown"])
from rax_ai import RaxAI, RaxAIError try: response = rax.chat( model="rax-4.0", messages=[{"role": "user", "content": "Hello!"}] ) except RaxAIError as e: print(f"API Error: {e.message}") print(f"Status: {e.status_code}") print(f"Type: {e.error_type}") print(f"Details: {e.to_dict()}")
# .env
RAX_AI_API_KEY=your-key-hereimport os from rax_ai import RaxAI rax = RaxAI(api_key=os.getenv("RAX_AI_API_KEY"))
from fastapi import FastAPI from rax_ai import RaxAI app = FastAPI() rax = RaxAI(api_key=os.getenv("RAX_AI_API_KEY")) @app.post("/chat") async def chat_endpoint(message: str): response = rax.chat( model="rax-4.0", messages=[{"role": "user", "content": message}] ) return response
from flask import Flask, request, jsonify from rax_ai import RaxAI app = Flask(__name__) rax = RaxAI(api_key=os.getenv("RAX_AI_API_KEY")) @app.route("/chat", methods=["POST"]) def chat(): message = request.json["message"] response = rax.chat( model="rax-4.0", messages=[{"role": "user", "content": message}] ) return jsonify(response)
# views.py from django.http import JsonResponse from rax_ai import RaxAI import json rax = RaxAI(api_key=settings.RAX_AI_API_KEY) def chat_view(request): data = json.loads(request.body) response = rax.chat( model="rax-4.0", messages=[{"role": "user", "content": data["message"]}] ) return JsonResponse(response)
# Get current config config = rax.get_config() print("Base URL:", config["base_url"]) print("Timeout:", config["timeout"])
- 3 automatic retries for network errors
- Exponential backoff (1s, 2s, 4s delays)
- Smart error classification (no retry for 4xx errors)
- Timeout handling with configurable timeouts
- โ Python 3.7+
- โ Python 3.8+
- โ Python 3.9+
- โ Python 3.10+
- โ Python 3.11+
- โ Python 3.12+
- Visit ai.raxcore.dev
- Sign up or log in
- Navigate to API Keys
- Create a new key
- Start building!
Full type hints included for better IDE support:
from rax_ai.types import ChatMessage, ChatRequest, ChatResponse messages: List[ChatMessage] = [ {"role": "user", "content": "Hello!"} ] response: ChatResponse = rax.chat( model="rax-4.0", messages=messages )
- ๐ Documentation
- ๐ฎ Playground
- ๐ Dashboard
- ๐ Issues
Built for the Rax AI Platform at ai.raxcore.dev