11 मार्च, 2025 तक, हमने अपने नए Agents प्लेटफ़ॉर्म के बिल्डिंग ब्लॉक्स जारी कर दिए हैं। विवरण के लिए, हमारे Responses API, Web Search, File Search, और Computer Use सहित Tools, और Agents SDK with Tracing के लिए हमारे API docs देखें।
फ़ंक्शन कॉलिंग आपको OpenAI मॉडल्स को बाहरी टूल्स और सिस्टम्स से जोड़ने की सुविधा देती है। यह कई कामों के लिए उपयोगी है, जैसे AI असिस्टेंट्स को क्षमताएँ देना या आपके ऐप्लिकेशनों और LLMs के बीच गहरे इंटीग्रेशन बनाना।
हमारी फ़ंक्शन कॉलिंग डेवलपर गाइड में और जानें।
जून 2024 में, हमने स्ट्रक्चर्ड आउटपुट लॉन्च किया। जब आप अपनी फ़ंक्शन डेफिनिशन में `strict: true` सेट करके इसे चालू करते हैं, तो स्ट्रक्चर्ड आउटपुट यह सुनिश्चित करता है कि किसी फ़ंक्शन कॉल के लिए मॉडल द्वारा जनरेट किए गए आर्ग्युमेंट्स आपकी फ़ंक्शन डेफिनिशन में दिए गए JSON Schema से बिल्कुल मेल खाएँ।
अक्टूबर 2024 में, हमने 'Generate Anything' फीचर लॉन्च किया, जो डेवलपर्स को किसी फ़ंक्शन का वर्णन करने, उसे सीधे पेस्ट करने या अपना कोड पेस्ट करके एक वैध फ़ंक्शन स्कीमा जनरेट करने की सुविधा देता है। 'Generate Anything' के बारे में यहाँ हेल्प सेंटर लेख में और जानें।
मैं फ़ंक्शन कॉलिंग का उपयोग कैसे कर सकता हूँ?
फ़ंक्शन कॉलिंग बहुत बड़ी संख्या में उपयोग के मामलों के लिए उपयोगी है, जैसे:
असिस्टेंट्स को डेटा फ़ेच करने में सक्षम बनाना:
जब कोई उपयोगकर्ता पूछता है, “मेरे हाल के ऑर्डर क्या हैं?”, तो उपयोगकर्ता को जवाब देने से पहले एक AI असिस्टेंट को आंतरिक सिस्टम से नवीनतम ग्राहक डेटा फ़ेच करना होता है।
असिस्टेंट्स को कार्रवाइयाँ करने में सक्षम बनाना:
एक AI असिस्टेंट को उपयोगकर्ता की प्राथमिकताओं और कैलेंडर उपलब्धता के आधार पर मीटिंग्स शेड्यूल करनी होती हैं।
असिस्टेंट्स को गणना करने में सक्षम बनाना:
एक गणित ट्यूटर असिस्टेंट को गणितीय गणना करनी होती है।
समृद्ध वर्कफ़्लो बनाना:
एक डेटा एक्सट्रैक्शन पाइपलाइन जो कच्चा टेक्स्ट फ़ेच करती है, फिर उसे स्ट्रक्चर्ड डेटा में बदलती है और डेटाबेस में सहेजती है।
फ़ंक्शन कॉलिंग को Responses API में सपोर्ट किया जाता है, जो उन क्षमताओं को एकीकृत करता है जो पहले Chat Completions API और Assistants API में अलग-अलग थीं।
मैं JSON mode का उपयोग कैसे कर सकता हूँ?
जब JSON mode चालू होता है, तो कुछ edge cases को छोड़कर, जिन्हें आपको पहचानकर सही तरीके से संभालना चाहिए, मॉडल का आउटपुट वैध JSON होना सुनिश्चित किया जाता है।
Responses API या Chat Completions API के साथ JSON mode माँगने के लिए, आप समर्थित मॉडल्स पर response_format को { "type": "json_object" } पर सेट कर सकते हैं, लेकिन यह तभी काम करता है जब मॉडल/मैसेज/टूल की पूर्वशर्तें पूरी हों (उदाहरण के लिए, मॉडल json_object को सपोर्ट करता हो, बातचीत में JSON बनाने का निर्देश शामिल हो, और किसी भी टूल प्रतिबंध संगत हों)। response_format: {"type": "json_object"} के साथ JSON mode के लिए, कम से कम एक request message में किसी न किसी रूप में json होना चाहिए, जैसे JSON, json, या Json; अन्यथा API एक error लौटाता है। जब संगत मॉडल्स/पाथ्स पर फ़ंक्शन कॉलिंग का उपयोग किया जाता है, तो फ़ंक्शन-कॉल आर्ग्युमेंट्स पर JSON constraints अपने-आप लागू हो जाते हैं; असंगत मॉडल्स या टूल/response-format संयोजन अस्वीकार किए जा सकते हैं या JSON constrained sampling का उपयोग नहीं कर सकते।
महत्वपूर्ण नोट्स:
JSON mode का उपयोग करते समय, आपको हमेशा बातचीत में किसी संदेश के माध्यम से मॉडल को JSON बनाने का निर्देश देना चाहिए, उदाहरण के लिए अपने system message के जरिए। यदि आप JSON जनरेट करने का स्पष्ट निर्देश शामिल नहीं करते हैं, तो मॉडल लगातार whitespace की अनंत धारा जनरेट कर सकता है और request तब तक चलती रह सकती है जब तक वह token limit तक न पहुँच जाए। यह सुनिश्चित करने में मदद के लिए कि आप भूलें नहीं, JSON mode उन requests को अस्वीकार कर देता है जब तक संबंधित input messages या instructions में किसी न किसी रूप में, case-insensitively,
jsonशब्द शामिल न हो।JSON mode यह गारंटी नहीं देता कि आउटपुट किसी विशेष स्कीमा से मेल खाएगा, केवल इतना कि वह वैध होगा और बिना errors के parse हो जाएगा। आपको यह सुनिश्चित करने के लिए स्ट्रक्चर्ड आउटपुट का उपयोग करना चाहिए कि यह आपके स्कीमा से मेल खाए, या यदि यह संभव न हो, तो आपको एक validation library और संभवतः retries का उपयोग करना चाहिए ताकि आउटपुट आपके इच्छित स्कीमा से मेल खाए।
आपके ऐप्लिकेशन को उन edge cases का पता लगाना और संभालना चाहिए जिनके कारण मॉडल का आउटपुट पूर्ण JSON object नहीं हो सकता (नीचे देखें)।
