PHASEO_API_KEY पढ़ता है।
इंस्टॉलेशन में हर भाषा की इंस्टॉल कमांड और ज़रूरतें हैं। C++ SDK अभी रिलीज़ नहीं हुआ है।
आप क्या भेजते हैं और क्या वापस मिलता है
हर SDK में अनुरोध बॉडी API के JSON फ़ील्ड नाम इस्तेमाल करती है। उपयोग में हर एंडपॉइंट का एक उदाहरण है।
कुंजी न होने पर क्लाइंट बनाते समय ही विफलता होती है। Python
ValueError देता है, Go का NewFromEnv() त्रुटि लौटाता है, C# और PHP Missing API key. Pass apiKey or set PHASEO_API_KEY. throw करते हैं, Ruby ArgumentError: Missing API key. Pass api_key or set PHASEO_API_KEY. देता है, और Rust का Phaseo::from_env() एक PhaseoError लौटाता है।
हर एंडपॉइंट का मेथड खोजें
डैश का मतलब है कि SDK में उस ऑपरेशन का कोई रैपर नहीं है। आख़िरी पंक्ति का मेथड इस्तेमाल करें, या HTTP API सीधे कॉल करें। “सिर्फ़ JSON” का मतलब है कि मेथड multipart फ़ाइल अपलोड नहीं भेज सकता: इसके बजाय URL या base64 डेटा URL दें, या एंडपॉइंट पेज में दिखाए अनुसार अपलोड अपनी भाषा के HTTP क्लाइंट से भेजें। ज़्यादातर SDK में हरgenerate… मेथड का एक create… उपनाम भी होता है (उदाहरण के लिए Go और C# में CreateChatCompletion, Ruby में create_response)।
C#, PHP, Ruby और Java में अपलोड मेथड है, लेकिन वह JSON भेजता है और फ़ाइल अपलोड नहीं कर सकता; फ़ाइलें और STT हर भाषा में multipart अनुरोध दिखाते हैं। Rust को छोड़कर हर SDK में कुंजियों और वर्कस्पेस के लिए
get, update और delete मेथड और मौजूदा कुंजी का लुकअप (getCurrentApiKey, get_current_api_key, GetCurrentApiKey) भी है। TypeScript और Python म्यूज़िक, OCR, parse, decisions और extractions भी कवर करते हैं।
हर पैकेज में क्या शामिल है, जाँचें
प्रकाशित पैकेज SDK सोर्स की कुछ सुविधाओं से पहले के हैं:क्लाइंट कॉन्फ़िगर करें
- TypeScript
- Python
- Go
- C#
- PHP
- Ruby
- Java
- Rust
म्यूज़िक, वीडियो या बैच का इंतज़ार करें
wait हेल्पर TypeScript और Python में हैं। बाकी SDK create कॉल से जॉब लौटाते हैं; उसे get मेथड से poll करें या उसका जॉब WebSocket URL खोलें।videos.generateAndWait / videos.generate_and_wait और बैच के लिए batches.createAndWait / batches.create_and_wait इस्तेमाल करें। हर हेल्पर एक बार submit करता है। अगर पहली प्रतिक्रिया पहले से पूरी है, तो वह बिना poll किए उसे लौटा देता है; नहीं तो वह उसी जॉब को पूरा होने तक poll करता है और पूरी प्रतिक्रिया लौटाता है। विफल, रद्द या expire हुए जॉब JobFailedError देते हैं, जिसके response में विवरण होता है। एक पूरे हुए बैच में भी अलग-अलग विफल अनुरोध हो सकते हैं।
हर resource पर wait(id, options) एक मौजूदा जॉब को फिर से शुरू करता है और कोई भी अंतिम प्रतिक्रिया लौटाता है, विफलताओं समेत। Python में म्यूज़िक में create(request) और retrieve(id) भी हैं।
JobTimeoutError और JobCancelledError जॉब ID और आख़िरी प्रतिक्रिया रखते हैं (TypeScript में jobId/lastResponse, Python में job_id/last_response), ताकि आप .wait(error.jobId) या .wait(error.job_id) से फिर से शुरू कर सकें। इंतज़ार रोकने से रिमोट जॉब रद्द नहीं होता। TypeScript में यह चल रहे poll को रद्द करता है; सिंक्रोनस Python क्लाइंट अनुरोधों और callback के बीच रद्दीकरण और समय-सीमा जाँचता है, इसलिए वह पहले से चल रही HTTP कॉल को बीच में नहीं रोक सकता। HTTP विफलताएँ जैसी हैं वैसी ही दी जाती हैं, और submission कभी retry नहीं होते। ये हेल्पर आपकी प्रोसेस से poll करते हैं; ये गेटवे में बैकग्राउंड execution नहीं जोड़ते।
प्रोसेस के पार हैंडल रखें
music.start, videos.start और batches.start एक हैंडल लौटाते हैं जिसमें result(), events() और cancel() होते हैं, साथ में toJSON() (TypeScript) या to_dict() (Python)। यह जो kind और ID लौटाता है उन्हें सहेजें और बाद में resume(id) से हैंडल फिर से बनाएँ। result() अंतिम विफलताओं पर throw करता है। सिर्फ़ वीडियो और बैच जॉब cancel() सपोर्ट करते हैं। AsyncPhaseo पर मेथड को await करें और इवेंट पर async for से iterate करें।
अनुरोध नियंत्रण और त्रुटियाँ
TypeScript, Python और Java में retry डिफ़ॉल्ट रूप से0 होते हैं, और सिर्फ़ GET और HEAD अनुरोधों पर लागू होते हैं। भुगतान वाले submission, write और स्ट्रीमिंग अनुरोध कभी retry नहीं होते।
- TypeScript
- Python
- Java
- Rust
withOptions(...) एक नया क्लाइंट लौटाता है, जिसमें ये नियंत्रण हर resource, स्ट्रीम और मीडिया कॉल पर लागू होते हैं; मूल क्लाइंट नहीं बदलता। Retry Retry-After का पालन करते हैं। timeoutMs में प्रतिक्रिया बॉडी पढ़ना भी शामिल है।responseMetadata(result) गेटवे अनुरोध ID और डैशबोर्ड ट्रेस URL लौटाता है। HTTP त्रुटियाँ PhaseoHttpError होती हैं, जिनमें HTTP status, API त्रुटि code, requestId, traceUrl, retry की देरी, बॉडी और headers होते हैं।बिना रैपर के एंडपॉइंट कॉल करें
हर SDK में Phaseo OpenAPI spec से जनरेट किया गया क्लाइंट भी आता है:
जनरेट किए गए ऑपरेशन रैपर मेथड से ज़्यादा निचले स्तर के हैं; जहाँ रैपर मौजूद है, उसे प्राथमिकता दें।
आउटपुट पार्स करें और स्ट्रीम इकट्ठा करें
ये हेल्पर TypeScript और Python में हैं।responses.parse(request, schema) एक पूरी JSON प्रतिक्रिया को वैलिडेट करता है। TypeScript में schema एक Zod-संगत पार्सर है; Python में एक Pydantic मॉडल। अनुरोध में भी संरचित-आउटपुट फ़ॉर्मेट सेट करें; पार्सर सिर्फ़ वैलिडेट करता है।
collectStream(client.streamResponses(request)) (TypeScript), या collect_stream और collect_async_stream (Python), स्ट्रीम किया गया टेक्स्ट और usage इकट्ठा करते हैं।
कॉल करने से पहले मॉडल जाँचें
checkModelCapabilities / check_model_capabilities (TypeScript और Python) एक active प्रदाता ऑफ़र पर घोषित क्षमताएँ और scalar बाधाएँ (inputTypes, outputTypes, endpoints, parameters, parameterValues, या Python में snake_case नाम) जाँचता है। यह कभी मॉडल नहीं बदलता या पैरामीटर नहीं हटाता, और यह गारंटी नहीं दे सकता कि कोई लाइव प्रदाता अनुरोध स्वीकार करेगा। ग़ायब मेटाडेटा को अलग-अलग तरह से संभाला जाता है: TypeScript इसे unknown के रूप में रिपोर्ट करता है, और Python जाँच को विफल कर देता है।
मॉडल पिकर और पैरामीटर एडिटर के लिए लाइव एंडपॉइंट मेटाडेटा इस्तेमाल करें:
supported, partial, unsupported या unknown के रूप में लौटता है, साथ में मेल खाने वाले प्रदाता रूट और बाधा से जुड़ी समस्याएँ, जिन्हें आप इनलाइन हाइलाइट कर सकते हैं। ये जाँचें स्पष्ट कॉल हैं; ये जनरेशन अनुरोधों में कोई लुकअप नहीं जोड़तीं। मॉडल हर SDK का मेथड बताता है।
नेटवर्क के बिना टेस्ट करें
- TypeScript
- Python
@phaseo/sdk/testing से createMockTransport और jobFixtures इम्पोर्ट करें और mock का fetchImpl क्लाइंट को दें। Fixture सख़्त और क्रमबद्ध होते हैं: कोई अनपेक्षित कॉल लोकल रूप से विफल होती है और कभी नेटवर्क तक नहीं पहुँचती। हर अपेक्षित अनुरोध हुआ या नहीं, यह जाँचने के लिए mock.assertDone() कॉल करें।रूम से कोड एक्सपोर्ट करें
Phaseo रूम में अनुरोध भेजने के बाद, कोड प्राप्त करें उसके मॉडल और सेटिंग को TypeScript या Python के रूप में एक्सपोर्ट करता है, और अनुरोध ID उपलब्ध होने पर अनुरोध देखें उसका डैशबोर्ड ट्रेस खोलता है। एक्सपोर्ट किया गया कोड अपने सर्वर परPHASEO_API_KEY सेट करके चलाएँ।