Python SDK (clore-ai)
द clore-ai पैकेज आधिकारिक पायथन SDK है Clore.ai GPU मार्केटप्लेस के लिए। यह पूरे REST API को एक साफ़, प्रकार-सुरक्षित इंटरफ़ेस में लपेटता है जिसमें अंतर्निर्मित दर-सीमा, स्वचालित पुन:प्रयास, और संरचित त्रुटि हैंडलिंग शामिल हैं — ताकि आप GPU किराए पर लेने पर ध्यान दे सकें, HTTP पाइपलाइनिंग पर नहीं।
इंस्टॉलेशन
pip install clore-aiआवश्यकताएँ: Python 3.9+
पैकेज दोनों इंस्टॉल करता है: पायथन SDK और clore CLI.
प्रमाणीकरण
अपनी API कुंजी प्राप्त करें Clore.ai डैशबोर्ड → API अनुभाग।
विकल्प 1: एन्वायरनमेंट वेरिएबल (अनुशंसित)
export CLORE_API_KEY=your_api_key_hereSDK पढ़ता है CLORE_API_KEY स्वचालित रूप से — किसी कोड परिवर्तन की आवश्यकता नहीं।
विकल्प 2: CLI कॉन्फिग फ़ाइल
clore config set api_key YOUR_API_KEYयह कुंजी में संग्रहीत करता है ~/.clore/config.json.
विकल्प 3: कोड में सीधे पास करें
⚠️ महत्वपूर्ण: Clore.ai API प्रमाणीकरण के लिए उपयोग करता है
authहेडर, नहींAuthorization: Bearer। SDK इसे स्वचालित रूप से संभालता है।
त्वरित आरंभ
सिंक क्लाइंट (CloreAI)
CloreAI)कन्स्ट्रक्टर
क्लाइंट स्वचालित क्लीनअप के लिए कॉन्टेक्स्ट मैनेजर का समर्थन करता है:
wallets()
wallets()अपनी वॉलेट शेष और जमा पते प्राप्त करें।
परिणाम: List[Wallet]
name
str
मुद्रा का नाम (उदा. "bitcoin", "CLORE-Blockchain", "USD-Blockchain")
balance
float | None
वर्तमान शेष
deposit
str | None
जमा पता
withdrawal_fee
float | None
निकासी शुल्क
marketplace()
marketplace()क्लाइंट-साइड विकल्पी फिल्टर के साथ GPU मार्केटप्लेस खोजें।
पैरामीटर:
gpu
str | None
None
GPU मॉडल द्वारा फ़िल्टर करें (केस-इनसेंसिटिव सबस्ट्रिंग मैच)
min_gpu_count
int | None
None
न्यूनतम GPU की संख्या
min_ram_gb
float | None
None
GB में न्यूनतम RAM
max_price_usd
float | None
None
USD में प्रति घंटे अधिकतम कीमत
available_only
bool
True
केवल वे सर्वर लौटाएँ जो किराए पर उपलब्ध हैं
परिणाम: List[MarketplaceServer]
प्रत्येक MarketplaceServer अत्यधिक सामान्य फ़ील्ड्स के लिए सुविधाजनक गुण प्रदान करता है, साथ ही पूरा नेस्टेड डेटा तक पहुँच:
id
int
विशिष्ट सर्वर ID
gpu_model
str | None
प्राथमिक GPU विवरण (उदा. "1x NVIDIA GeForce RTX 4090")
gpu_count
int
GPU की संख्या (से gpu_array)
ram_gb
float | None
RAM GB में
price_usd
float | None
ऑन-डिमांड कीमत USD में
spot_price_usd
float | None
स्पॉट कीमत USD में
available
bool
क्या सर्वर उपलब्ध है (किराए पर नहीं गया)
location
str | None
नेटवर्क स्पेस से देश कोड
उन्नत उपयोग मामलों के लिए, आप पूरा नेस्टेड स्ट्रक्चर एक्सेस कर सकते हैं:
specs
ServerSpecs | None
पूर्ण हार्डवेयर विशिष्टताएँ (specs.gpu, specs.ram, specs.cpu, specs.disk, specs.net, आदि)
price
ServerPrice | None
पूर्ण मूल्य ऑब्जेक्ट (price.usd.on_demand_usd, price.usd.spot, price.on_demand, आदि)
rented
bool | None
क्या सर्वर वर्तमान में किराए पर है
reliability
float | None
सर्वर विश्वसनीयता स्कोर
rating
ServerRating | None
सर्वर रेटिंग (rating.avg, rating.cnt)
नोट: द
marketplace()एंडपॉइंट सार्वजनिक है — यह API कुंजी के बिना काम करता है।
my_servers()
my_servers()उन सर्वरों की सूची बनाएं जो आप Clore.ai मार्केटप्लेस को प्रदान कर रहे हैं।
परिणाम: List[MyServer]
id
int
सर्वर ID
name
str | None
सर्वर नाम
gpu_model
str | None
प्राथमिक GPU विवरण
ram_gb
float | None
RAM GB में
status
str
मानव-पठनीय स्थिति: "Online", "Offline", "Disconnected", या "Not Working"
connected
bool | None
क्या सर्वर कनेक्टेड है
online
bool | None
क्या सर्वर ऑनलाइन है
visibility
str | None
"public" या "private"
server_config(server_name)
server_config(server_name)उस विशिष्ट सर्वर का कॉन्फ़िगरेशन प्राप्त करें जिसे आप होस्ट करते हैं।
पैरामीटर:
server_name
str
सर्वर का नाम
परिणाम: ServerConfig
name
str | None
सर्वर नाम
gpu_model
str | None
प्राथमिक GPU विवरण
mrl
int | None
घंटों में न्यूनतम किराये की अवधि
on_demand_price
float | None
पहली उपलब्ध ऑन-डिमांड USD कीमत
spot_price
float | None
पहली उपलब्ध स्पॉट USD कीमत
specs
ServerSpecs | None
पूर्ण हार्डवेयर विनिर्देश
connected
bool | None
क्या सर्वर कनेक्टेड है
visibility
str | None
"public" या "private"
my_orders(include_completed)
my_orders(include_completed)अप अपने वर्तमान ऑर्डर प्राप्त करें, वैकल्पिक रूप से पूर्ण/समाप्त ऑर्डर शामिल करके।
पैरामीटर:
include_completed
bool
False
पूर्ण/समाप्त ऑर्डर शामिल करें
परिणाम: List[Order]
id
int
विशिष्ट ऑर्डर ID
server_id
int | None
सर्वर ID
type
str
"on-demand" या "spot"
status
str | None
ऑर्डर स्थिति
image
str | None
Docker इमेज
currency
str | None
भुगतान मुद्रा
price
float | None
ऑर्डर की दैनिक कीमत
pub_cluster
str | None
एक्सेस के लिए सार्वजनिक होस्टनाम/IP
tcp_ports
dict | None
TCP पोर्ट मैपिंग
spot_marketplace(server_id)
spot_marketplace(server_id)किसी विशिष्ट सर्वर के लिए स्पॉट मार्केट ऑफ़र देखें।
पैरामीटर:
server_id
int
जांच के लिए सर्वर ID
परिणाम: SpotMarket
offers
List[SpotOffer] | None
स्पॉट ऑफ़र्स की सूची (order_id, price, server_id)
server
SpotServerInfo | None
सर्वर जानकारी (न्यूनतम मूल्य निर्धारण, दृश्यता, ऑनलाइन स्थिति)
currency_rates_in_usd
Dict[str, float] | None
USD में मुद्रा विनिमय दरें
create_order(...)
create_order(...)नया ऑन-डिमांड या स्पॉट ऑर्डर बनाएं। इसी तरह आप GPU किराए पर लेते हैं।
ऑन-डिमांड ऑर्डर
स्पॉट ऑर्डर
पैरामीटर:
server_id
int
हाँ
किराए पर लेने के लिए सर्वर ID
image
str
हाँ
Docker इमेज (उदा. "cloreai/ubuntu22.04-cuda12")
type
str
हाँ
"on-demand" या "spot"
currency
str
हाँ
भुगतान मुद्रा (उदा. "bitcoin")
ssh_password
str
नहीं
SSH पासवर्ड (अल्फ़ान्यूमेरिक, अधिकतम 32 अक्षर)
ssh_key
str
नहीं
SSH सार्वजनिक कुंजी (अधिकतम 3072 अक्षर)
ports
dict
नहीं
पोर्ट मैपिंग, उदाहरण के लिए {"22": "tcp", "8888": "http"}
env
dict
नहीं
पर्यावरण वेरिएबल
jupyter_token
str
नहीं
Jupyter नोटबुक टोकन (अधिकतम 32 अक्षर)
command
str
नहीं
कंटेनर शुरू होने के बाद चलाने के लिए शेल कमांड
spot_price
float
केवल स्पॉट
स्पॉट ऑर्डर्स के लिए प्रति दिन कीमत
required_price
float
नहीं
एक विशिष्ट कीमत लॉक करें (केवल ऑन-डिमांड)
autossh_entrypoint
str
नहीं
Clore.ai SSH एंट्रीपॉइंट का उपयोग करें
परिणाम: Order
रेट लिमिट:
create_orderकॉल्स के बीच एक विशेष 5-सेकंड कूलडाउन है। SDK इसे स्वचालित रूप से लागू करता है।
cancel_order(order_id, issue)
cancel_order(order_id, issue)एक सक्रिय ऑर्डर या स्पॉट ऑफ़र रद्द करें। वैकल्पिक रूप से सर्वर के साथ एक मुद्दा रिपोर्ट करें।
पैरामीटर:
order_id
int
हाँ
रद्द करने के लिए ऑर्डर ID
issue
str
नहीं
रद्द करने का कारण / मुद्दा रिपोर्ट (अधिकतम 2048 अक्षर)
परिणाम: Dict[str, Any]
set_server_settings(...)
set_server_settings(...)मार्केटप्लेस पर आप जो सर्वर होस्ट करते हैं उसके लिए सेटिंग्स अपडेट करें।
पैरामीटर:
name
str
हाँ
सर्वर नाम
availability
bool
नहीं
क्या सर्वर किराए पर दिया जा सकता है
mrl
int
नहीं
घंटों में न्यूनतम किराये की अवधि
on_demand
float
नहीं
प्रति दिन ऑन-डिमांड कीमत
spot
float
नहीं
प्रति दिन न्यूनतम स्पॉट कीमत
परिणाम: Dict[str, Any]
set_spot_price(order_id, price)
set_spot_price(order_id, price)अपने स्पॉट मार्केट ऑफ़र पर कीमत अपडेट करें।
पैरामीटर:
order_id
int
स्पॉट ऑर्डर/ऑफ़र ID
price
float
नई प्रति दिन कीमत
परिणाम: Dict[str, Any]
नोट: आप केवल हर 600 सेकंड में एक बार स्पॉट कीमतें घटा सकते हैं, और सीमित कदम आकार द्वारा। यदि आप इन सीमाओं को पार करते हैं तो API लौटाता है
code: 6विवरण के साथ।
असिंक क्लाइंट (AsyncCloreAI)
AsyncCloreAI)द AsyncCloreAI क्लाइंट वही विधियाँ प्रदान करता है जो CloreAIके हैं, लेकिन सभी कोरूटीन लौटाते हैं। जब आपको समांतर API कॉल की आवश्यकता हो या आप किसी असिंक्रोनस अनुप्रयोग के भीतर काम कर रहे हों तो इसे उपयोग करें।
मूल उपयोग
समांतर संचालन
एक साथ कई API कॉल चलाएं asyncio.gather:
उपलब्ध विधियाँ
AsyncCloreAI सभी वही विधियाँ समर्थित हैं जो CloreAI:
await wallets()
वॉलेट शेष प्राप्त करें
await marketplace(...)
मार्केटप्लेस खोजें
await my_servers()
आपके होस्ट किए गए सर्वरों की सूची
await server_config(name)
सर्वर कॉन्फ़िगरेशन प्राप्त करें
await my_orders(...)
आपके ऑर्डर की सूची
await spot_marketplace(server_id)
स्पॉट मार्केट ऑफ़र प्राप्त करें
await create_order(...)
नया ऑर्डर बनाएं
await cancel_order(...)
एक ऑर्डर रद्द करें
await set_server_settings(...)
सर्वर सेटिंग्स अपडेट करें
await set_spot_price(...)
स्पॉट कीमत अपडेट करें
त्रुटि हैंडलिंग
SDK प्रत्येक API त्रुटि कोड के लिए संरचित अपवाद कक्षाएं प्रदान करता है।
त्रुटि कोड
0
—
सफलता
1
DBError
डेटाबेस त्रुटि
2
InvalidInputError
अमान्य इनपुट डेटा
3
AuthError
अमान्य API टोकन
4
InvalidEndpointError
अमान्य एंडपॉइंट
5
RateLimitError
रेट लिमिट पार हुई
6
FieldError
विशिष्ट फ़ील्ड में त्रुटि (देखें त्रुटि प्रतिक्रिया में फ़ील्ड)
सभी अपवाद क्लासेस वारिस होते हैं CloreAPIError और इनमें शामिल हैं:
e.code— संख्यात्मक त्रुटि कोडe.response— पूर्ण API प्रतिक्रिया dict (जब उपलब्ध हो)
रेट लिमिटिंग
SDK में एक अंतर्निर्मित रेट लिमिटर शामिल है जो स्वचालित रूप से Clore.ai की सीमाओं को लागू करता है:
अधिकांश एंडपॉइंट
1 अनुरोध/सेकंड
create_order
1 अनुरोध/5 सेकंड
जब API रेट-लिमिट त्रुटि (कोड 5) लौटाता है, SDK लागू करता है घातीय बैकऑफ और पुन: प्रयास करता है तक max_retries बार (डिफ़ॉल्ट: 3). आपको जोड़ने की आवश्यकता नहीं है time.sleep() कॉल्स के बीच।
यह कैसे काम करता है
प्रत्येक अनुरोध से पहले, रेट लिमिटर न्यूनतम अंतराल के समाप्त होने तक प्रतीक्षा करता है।
create_orderकॉल्स एक अतिरिक्त 5-सेकंड कूलडाउन लागू करते हैं।रेट-लिमिट त्रुटियों पर, SDK घातीय रूप से पीछे हटता है: 1s → 2s → 4s → ...
के बाद
max_retriesअसफल प्रयासों, एकRateLimitErrorउठाया जाता है।
पुन: प्रयास व्यवहार अनुकूलित करें
कॉन्फ़िगरेशन
कॉन्फ़िग फ़ाइल
CLI कॉन्फ़िगरेशन को संग्रहीत करता है ~/.clore/config.json:
रिज़ॉल्यूशन क्रम
SDK इस क्रम में API कुंजी हल करता है:
api_keyकंस्ट्रक्टर को पास किया गया आर्गुमेंटCLORE_API_KEYपर्यावरण चरapi_keyमें फ़ील्ड~/.clore/config.json
पर्यावरण वेरिएबल
CLORE_API_KEY
प्रमाणीकरण के लिए API कुंजी
अगले कदम
CLI संदर्भ — अपने टर्मिनल से Clore.ai का उपयोग करें
REST API — कस्टम एकीकरण के लिए रॉ API दस्तावेज़
ऑन-डिमांड बनाम स्पॉट — मूल्य निर्धारण मॉडल को समझें
उपलब्ध Docker इमेजेज़ — GPU वर्कलोड्स के लिए पूर्व-निर्मित इमेजेज़
Last updated
Was this helpful?