OpenAI
यह पेज मशीन द्वारा अनुवादित है. मूल अंग्रेज़ी आर्टिकल देखें.

OpenAI API में फ़ंक्शन कॉलिंग

फ़ंक्शन कॉलिंग क्या है और यह OpenAI API में कैसे काम करती है?

अपडेट किया गया: 5 days ago

11 मार्च, 2025 तक, हमने अपने नए Agents प्लेटफ़ॉर्म के बिल्डिंग ब्लॉक्स जारी कर दिए हैं। विवरण के लिए, हमारे Responses API, Web Search, File Search, और Computer Use सहित Tools, और Agents SDK with Tracing के लिए हमारे API docs देखें।

फ़ंक्शन कॉलिंग की मदद से आप OpenAI के मॉडलों को बाहरी टूल और सिस्टम से जोड़ सकते हैं. यह कई कामों में उपयोगी है, जैसे एआई सहायकों को नई क्षमताएं देना या आपके अनुप्रयोगों और एलएलएम के बीच गहन एकीकरण तैयार करना.

हमारी फ़ंक्शन कॉलिंग डेवलपर गाइड में और जानें.

जून 2024 में हमने स्ट्रक्चर्ड आउटपुट पेश किए. समर्थित मॉडलों और अनुरोध कॉन्फ़िगरेशन में, जब मॉडल कोई फ़ंक्शन कॉल जारी करता है, तो फ़ंक्शन की परिभाषा में strict: true सेट करने से यह सुनिश्चित होता है कि जनरेट किए गए आर्ग्युमेंट दिए गए स्कीमा का पालन करें, बशर्ते स्कीमा समर्थित JSON स्कीमा उपसमुच्चय का उपयोग करता हो और सख्त मोड की आवश्यकताओं को पूरा करता हो. असमर्थित या मानकों के अनुरूप न होने वाले स्कीमा के अनुरोधों को त्रुटि के साथ अस्वीकार कर दिया जाता है.

अक्टूबर 2024 में हमने 'कुछ भी जनरेट करें' सुविधा पेश की, जिससे डेवलपर किसी फ़ंक्शन का वर्णन करके उसे सीधे पेस्ट कर सकते हैं या अपना कोड पेस्ट करके एक मान्य फ़ंक्शन स्कीमा जनरेट कर सकते हैं. 'कुछ भी जनरेट करें' के बारे में इस सहायता केंद्र लेख में और जानें.

मैं फ़ंक्शन कॉलिंग का उपयोग कैसे कर सकता/सकती हूँ?

फ़ंक्शन कॉलिंग बड़ी संख्या में उपयोग मामलों के लिए उपयोगी है, जैसे:

  • सहायकों को डेटा लाने में सक्षम बनाना:

  • सहायकों को कार्रवाइयाँ करने में सक्षम बनाना:

  • सहायकों को गणना करने में सक्षम बनाना:

  • समृद्ध वर्कफ़्लो बनाना:

  • एक डेटा एक्सट्रैक्शन पाइपलाइन जो रॉ टेक्स्ट लाती है, फिर उसे स्ट्रक्चर्ड डेटा में बदलती है और डेटाबेस में सहेजती है.

फ़ंक्शन कॉलिंग रिस्पॉन्सेस API में समर्थित है, जो उन क्षमताओं को एकीकृत करता है जो पहले चैट कम्प्लीशन्स API और असिस्टेंट्स API में विभाजित थीं.

मैं JSON मोड का उपयोग कैसे कर सकता/सकती हूँ?

जब JSON मोड चालू होता है, तो मॉडल का आउटपुट मान्य JSON होना सुनिश्चित किया जाता है, कुछ एज केस छोड़कर जिन्हें आपको पहचानकर उचित रूप से संभालना चाहिए.

चैट कम्प्लीशन्स API के साथ JSON मोड का अनुरोध करने के लिए, समर्थित मॉडल पर response_format को { "type": "json_object" } पर सेट करें. रिस्पॉन्सेस API में, जहाँ लागू हो, text.format को { "type": "json_object" } पर सेट करें, उदाहरण के लिए text: { "format": { "type": "json_object" } }. किसी भी API में, JSON मोड केवल तभी काम करता है जब मॉडल/मैसेज/टूल की पूर्वापेक्षाएँ पूरी हों (उदाहरण के लिए, मॉडल json_object का समर्थन करता हो, बातचीत में JSON बनाने के निर्देश शामिल हों, और कोई भी टूल बाधाएँ संगत हों). प्रभावी इनपुट संदर्भ में कम-से-कम एक अनुरोध संदेश या इनपुट संदेश में बड़े-छोटे अक्षरों की परवाह किए बिना json होना चाहिए, जैसे JSON, json, या Json; अन्यथा, API त्रुटि लौटाता है. रिस्पॉन्सेस में, केवल शीर्ष-स्तरीय निर्देश फ़ील्ड इस वैलिडेशन को पूरा नहीं करता. जब संगत मॉडल/पाथ पर फ़ंक्शन कॉलिंग का उपयोग किया जाता है, तो फ़ंक्शन-कॉल आर्ग्युमेंट्स पर JSON बाधाएँ अपने आप लागू हो जाती हैं; असंगत मॉडल या टूल/रिस्पॉन्स-फ़ॉर्मैट संयोजन अस्वीकार किए जा सकते हैं या JSON-बाधित सैंपलिंग का उपयोग नहीं कर सकते.

महत्वपूर्ण नोट्स:

  • JSON मोड का उपयोग करते समय, आपको हमेशा बातचीत में किसी संदेश के माध्यम से मॉडल को JSON बनाने का निर्देश देना होगा, उदाहरण के लिए अपने सिस्टम संदेश के माध्यम से. यदि आप JSON जनरेट करने का स्पष्ट निर्देश शामिल नहीं करते हैं, तो मॉडल व्हाइटस्पेस की अंतहीन स्ट्रीम जनरेट कर सकता है और अनुरोध टोकन सीमा तक पहुँचने तक लगातार चलता रह सकता है. यह सुनिश्चित करने में मदद के लिए कि आप भूलें नहीं, JSON मोड अनुरोधों को तब तक अस्वीकार करता है जब तक संबंधित इनपुट संदेशों या निर्देशों में बड़े-छोटे अक्षरों की परवाह किए बिना किसी रूप में json शब्द न हो.

  • JSON मोड यह गारंटी नहीं देगा कि आउटपुट किसी विशिष्ट स्कीमा से मेल खाता है, केवल यह कि वह मान्य है और बिना त्रुटियों के पार्स होता है. आपको यह सुनिश्चित करने के लिए स्ट्रक्चर्ड आउटपुट का उपयोग करना चाहिए कि यह आपके स्कीमा से मेल खाता है, या यदि यह संभव नहीं है, तो आपको वैलिडेशन लाइब्रेरी और संभवतः रीट्राई का उपयोग करना चाहिए ताकि आउटपुट आपके इच्छित स्कीमा से मेल खाए.

  • आपके एप्लिकेशन को उन एज केस का पता लगाकर उन्हें संभालना होगा जिनके कारण मॉडल आउटपुट पूर्ण JSON ऑब्जेक्ट नहीं रह सकता (नीचे देखें).

क्या यह लेख मददगार था?