फ़ंक्शन कॉलिंग क्या है?
स्क्रेपलेस MCP सर्वर वेब और ब्राउज़र क्षमताओं को उजागर करता है जिन्हें एक एजेंट होस्ट फ़ंक्शन-कॉलिंग इंटरफेस के माध्यम से एक मॉडल को प्रस्तुत कर सकता है।
TL;DR
- फ़ंक्शन कॉलिंग संरचित मॉडल आउटपुट है। मॉडल एक नामित टूल का अनुरोध करता है जिसमें तर्क होते हैं; एप्लिकेशन कोड इसकी पुष्टि और निष्पादन करता है।
- मॉडल फ़ंक्शन नहीं चलाता है। क्रेडेंशियल्स, नेटवर्क एक्सेस, साइड इफेक्ट्स, और परिणाम हैंडलिंग होस्ट एप्लिकेशन में बनी रहती है।
- स्कीमाएं विश्वसनीयता को आकार देती हैं। स्पष्ट नाम, विवरण, आवश्यक फ़ील्ड, एनम, और बाउंडेड मान अस्पष्ट कॉल को कम करते हैं।
- सत्यापन अभी भी आवश्यक है। स्कीमा-सत्यापित तर्क अवैध, असुरक्षित, पुरानी या वर्तमान स्थिति के लिए गलत हो सकते हैं।
- टूल के परिणाम संवाद को जारी रखते हैं। एप्लिकेशन फ़ंक्शन परिणाम लौटाता है ताकि मॉडल उत्तर दे सके या एक और अनुमत कदम चुन सके।
यह विषय क्यों महत्वपूर्ण है
फ़ंक्शन कॉलिंग एक पैटर्न है जो एक एप्लिकेशन को टूल्स का वर्णन करने और एक भाषा मॉडल को उपयोग करने के लिए संरचित अनुरोध प्राप्त करने की अनुमति देता है। OpenAI फ़ंक्शन कॉलिंग दस्तावेज़ समझाता है कि टूल परिभाषाएँ स्कीमाओं का उपयोग करती हैं और एप्लिकेशन चयनित फ़ंक्शन को निष्पादित करता है। मॉडल एक प्रस्ताव उत्पन्न करता है; इसे एक सर्वर, डेटाबेस, ब्राउज़र या क्रेडेंशियल तक सीधे पहुंच नहीं मिलती।
यह विभाजन भाषा मॉडलों को सॉफ़्टवेयर के अंदर उपयोगी बनाता है। प्राकृतिक-भाषा इरादा एक टाइप की गई ऑपरेशन से मैप कर सकता है, जबकि मौजूदा एप्लिकेशन कोड प्राधिकरण और व्यावसायिक नियमों को बनाए रखता है। फ़ंक्शन कॉलिंग पढ़ने-केवल खोज, गणनाएँ, रिकॉर्ड लुकअप, ब्राउज़र संचालन या लेनदेन को सक्षम कर सकता है। जोखिम और सत्यापन आवश्यकताएँ साइड इफेक्ट पर निर्भर करती हैं, न कि JSON कितनी साफ दिखता है।
फ़ंक्शन-कॉलिंग जीवन चक्र
होस्ट मॉडल को एक यूज़र अनुरोध और उपलब्ध टूल परिभाषाओं का सेट भेजता है। प्रत्येक परिभाषा में एक नाम, विवरण और इनपुट स्कीमा होता है। मॉडल सीधे उत्तर दे सकता है या संरचित तर्कों के साथ एक टूल कॉल लौटा सकता है। होस्ट उस कॉल को पार्स करता है, इसकी जांच करता है, संगत कोड निष्पादित करता है, और सही कॉल पहचान के तहत परिणाम वापस भेजता है।
मॉडल तब अंतिम उत्तर उत्पन्न करने या एक और टूल का अनुरोध करने के लिए परिणाम का उपयोग कर सकता है। मल्टी-स्टेप टूल उपयोग एक एजेंटिक लूप बनाता है, लेकिन फ़ंक्शन कॉलिंग स्वयं केवल मॉडल और होस्ट के बीच का इंटरफेस है। योजना, मेमोरी, प्राधिकरण, अनुसूचि, और त्रुटि नीति अलग एप्लिकेशन चिंताएँ हैं।
एक अच्छी तरह से डिज़ाइन किया गया टूल एक अर्थपूर्ण क्षमता का प्रतिनिधित्व करता है। एक अस्पष्ट टूल जैसे `do_anything` अनुमतियों को छिपाता है और मॉडल को बहुत सारे तर्क संयोजनों देता है। एक संकीर्ण खोज फ़ंक्शन, ग्राहक लुकअप, या ब्राउज़र नेविगेशन ऑपरेशन को वर्णित करना, सत्यापित करना, अवलोकन करना और स्वतंत्र रूप से प्रदान करना आसान है।
एक अच्छा टूल परिभाषा क्या बनाता है
- स्पष्ट नाम। एक क्रिया और वस्तु का उपयोग करें जो क्षमता को आसपास के टूल से अलग करती है।
- निर्णय-केंद्रित विवरण। समझाएं कि टूल कब उपयोग किया जाना चाहिए, यह क्या लौटाता है, और महत्वपूर्ण बहिष्कृत बातें।
- संकीर्ण स्कीमा। आवश्यक फ़ील्ड की आवश्यकता और जानबूझकर एनम, प्रारूप, सीमा, और नेस्टेड ऑब्जेक्ट्स का उपयोग करें।
- टाइप किया गया परिणाम। स्थिर फ़ील्ड, स्रोत साक्ष्य, क्रिया स्थिति, और मशीन-पठनीय त्रुटियाँ वापस करें।
- स्पष्ट साइड इफेक्ट। पढ़ने, लिखने, भेजने, हटाने, सबमिट करने और खरीदने के व्यवहार को होस्ट और मॉडल के लिए स्पष्ट बनाएं।
फ़ंक्शन कॉलिंग, API, और MCP
ये अवधारणाएँ विभिन्न परतों पर कार्य करती हैं और अक्सर एक साथ काम करती हैं बजाय प्रतिस्पर्धा करने के।
| अवधारणा | भूमिका | मुख्य सीमा |
|---|---|---|
| फ़ंक्शन कॉलिंग | मॉडल एक टाइप ऑपरेशन का अनुरोध करता है | होस्ट चुनता है कि इसे निष्पादित करना है या नहीं |
| API | सॉफ़्टवेयर सेवा एक ऑपरेशन को उजागर करती है | पुष्टि और व्यावसायिक नियम सेवा पर रहते हैं |
| MCP | सर्वर उपकरणों और डेटा को संगत होस्टों को विज्ञापित करता है | होस्ट निर्णय करता है कि कौन सी खोजी गई क्षमताएँ मॉडल तक पहुँचें |
| एजेंट | समन्वयित लक्ष्य, अवस्था, उपकरण, और मूल्यांकन | स्वायत्तता नीति और रोक नियमों द्वारा सीमित है |
| कंप्यूटर का उपयोग | एक ग्राफिकल इंटरफेस को संचालित करता है | क्रियाएँ वर्तमान दृश्य या भाषायी अवस्था की आवश्यकता होती हैं |
एक सुरक्षित फ़ंक्शन-कालिंग लूप को लागू करें
प्रत्येक उपकरण कॉल को मॉडल द्वारा प्रस्तावित अप्रतिबंधित इनपुट के रूप में मानें। किसी अन्य क्लाइंट से अपेक्षित समान अधिकार और प्रमाणीकरण लागू करें।
- सूची क्षमताएँ। संसाधन, दुष्प्रभाव, और अनुमति द्वारा संचालन को विभाजित करें ताकि प्रत्येक उपकरण का एक समझने योग्य अनुबंध हो।
- वास्तविक कार्यों से योजनाएँ बनाएं। आवश्यक इनपुट और आउटपुट फ़ील्ड को मिलाएं बजाय इसके कि मॉडल के अनुकूल मानकों का आविष्कार करें जो कोड सम्मान नहीं कर सकता।
- संदर्भ और अधिकार को मान्य करें। निर्माण के लिए निष्पादन से पहले पहचान, संसाधन स्वामित्व, वर्तमान स्थिति, अनुमत मूल्य, बजट, और अनुमोदन की जाँच करें।
- सटीक परिणाम लौटाएँ। स्थिर पहचानकर्ता, साक्ष्य, और संरचित त्रुटि श्रेणियाँ शामिल करें बिना रहस्यों या आंतरिक स्टैक ट्रेस को उजागर किए।
- पूर्ण विनिमय का लॉग रखें। उपकरण परिभाषा संस्करण, अनुरोधित तर्क, प्रमाणीकरण परिणाम, निष्पादन परिणाम, और मॉडल-दृश्य उत्तर को रिकॉर्ड करें।
उपकरण उपयोग का मूल्यांकन करें
एक उपकरण-कालिंग मूल्यांकन को चयन, तर्क गठन, निष्पादन, और अंतिम-उत्तर उपयोग में भेद करना चाहिए।
- चयन सटीकता। क्या मॉडल ने सही उपकरण का चयन किया या उपकरण का उपयोग सही तरीके से टाला?
- तर्क वैधता। क्या कॉल ने योजना और कार्य-विशिष्ट भाषायी प्रतिबंधों को संतोषजनक बनाया?
- प्राधिकरण व्यवहार। क्या होस्ट ने अस्वीकार्य संसाधनों को अवरुद्ध किया और सही सीमा पर अनुमोदनों की आवश्यकता की?
- परिणाम का उपयोग। क्या मॉडल ने लौटाए गए फ़ील्ड और साक्ष्य को बिना असमर्थित दावों को जोड़े समझा?
- लूप नियंत्रण। क्या बहु-चरण उपयोगCompletion, नॉन-प्रगति, या बजट समाप्ति पर रुका?
फ़ंक्शन-कालिंग जोखिम
संरचित आउटपुट पार्सिंग में सुधार करता है लेकिन मॉडल के निर्णयों को स्वायत्त नहीं बनाता। NIST एआई जोखिम प्रबंधन ढांचा एक शासन ढांचा प्रदान करता है, जबकि HTTP सेमान्टिक्स विनिर्देशन अनुप्रयोगों को याद दिलाता है कि नेटवर्क प्रतिक्रियाओं की सटीक सेमान्टिक्स होती हैं जिन्हें होस्ट को व्याख्या करना चाहिए। सुरक्षा अभी भी एक अनुप्रयोग की जिम्मेदारी है।
- अत्यधिक उपकरण। विशाल क्षमताएँ न्यूनतम-विशेषता प्राधिकरण और सार्थक मूल्यांकन को कठिन बनाती हैं।
- भाषायी अमान्यता। तर्क JSON स्कीमा को पास कर सकते हैं लेकिन गलत खाते, पुरानी रिकॉर्ड, या प्रतिबंधित लक्ष्य का संदर्भ दे सकते हैं।
- उपकरण परिणामों के माध्यम से इंजेक्शन। बाहरी सामग्री में निर्देश हो सकते हैं। इसे डेटा के रूप में लौटाएँ और प्रणाली नीति की प्राथमिकता को बनाए रखें।
- गुप्त रिसाव। उपकरण परिभाषाएँ और परिणामों को क्रेडेंशियल्स, व्यक्तिगत रूटिंग या अनावश्यक व्यक्तिगत डेटा को उजागर नहीं करना चाहिए।
- डुप्लिकेट दुष्प्रभाव। होस्ट को ऑपरेशन आइडेंटिटीज और वर्तमान-राज्य जांचों का उपयोग करना चाहिए ताकि बार-बार मॉडल कॉल अप्रत्याशित लिखावट न करे।
फंक्शन-कालिंग उपयोग के मामले
वर्तमान जानकारी
मॉडल को खोज या पुनर्प्राप्ति के लिए अनुरोध करने दें और स्रोत-अधारित परिणाम प्राप्त करें।
व्यावसायिक खोज
उपयोगकर्ता प्रश्न को अनुमोदित सेवा के खिलाफ एक मान्य प्रश्न में अनुवादित करें।
वेब संचालन
ब्राउज़र क्रियाओं को सत्र और डोमेन नीति के साथ संकीर्ण क्षमताओं के रूप में उजागर करें।
कार्यप्रवाह सहायता
एक संरचित लिखित संचालन तैयार करें और प्रतिबद्धता से पहले आवेदन या मानव स्वीकृति की आवश्यकता करें।
पायलट से उत्पादन तक
कार्यात्मक कॉलिंग के लिए एक उपयोगी पायलट इतना छोटा होना चाहिए कि रिकॉर्ड रिकॉर्ड द्वारा निरीक्षण किया जा सके। शुरू करें इन्वेंट्री क्षमताएँ: संसाधन, साइड इफेक्ट और अनुमति द्वारा संचालन को विभाजित करें ताकि प्रत्येक उपकरण के पास एक समझने योग्य अनुबंध हो। फिर लागू करें वास्तविक कार्यों से डिज़ाइन स्कीमा: आवश्यक वास्तविक इनपुट और आउटपुट क्षेत्रों से मेल खाएं, इसके बजाय मॉडल-मैत्रीपूर्ण पैरामीटर को आविष्कार करने के लिए जो कोड का सम्मान नहीं कर सकता। पहले मूल्यांकन सेट को जानबूझकर मिश्रित रखें, जिनमें सामान्य मामलों, अस्पष्ट मामलों, गायब साक्ष्यों, और एक क्रिया शामिल है जिसे प्रणाली को अस्वीकार करना या सौंपना चाहिए। यह प्रकट करता है कि क्या कार्यप्रवाह अपनी सीमा को समझता है इससे पहले कि उच्च मात्रा डिज़ाइन गलतियों को समग्र मैट्रिक्स के भीतर छिपा दे।
उत्पादन की तैयारी में प्रत्येक माप और कलाकृति के लिए एक मालिक की आवश्यकता होती है। ट्रैक करें चयन सटीकता यह जानने के लिए कि क्या मॉडल ने सही उपकरण चुना या सही ढंग से उपकरण के उपयोग से बचा? ट्रैक करें आर्गुमेंट वैधता यह निर्धारित करने के लिए कि क्या कॉल ने स्कीमा और कार्य-विशिष्ट अर्थगत सीमाओं को संतुष्ट किया? जोड़ें अधिकृत व्यवहार ताकि टीम यह देख सके कि क्या होस्ट ने अवैध संसाधनों को अवरुद्ध किया और सही सीमा पर स्वीकृतियों की आवश्यकता थी? ये उपाय अंतर्निहित रिकॉर्ड से लिंक होने चाहिए बजाय इसके कि केवल डैशबोर्ड कुलों के रूप में मौजूद हों। एक समीक्षक को एक परिवर्तित मेट्रिक से सटीक प्रश्न, स्रोत, अवलोकन या कार्रवाई की ओर जाना होगा जिसने इसका उत्पादन किया।
संचालन नियंत्रण को उन विफलता मोड को लक्षित करना चाहिए जो सबसे अधिक संभावना है कि वे व्यवसाय के निर्णय को बदल दें। पहला समीक्षा नियम अत्यधिक उपकरण: बड़े क्षमताएं कम-प्रिविलेज अधिकरण और अर्थपूर्ण मूल्यांकन को मुश्किल बनाती हैं। निकास समीक्षा को कवर करना चाहिए डुप्लिकेट साइड इफेक्ट: होस्ट को ऑपरेशन आइडेंटिटीज और वर्तमान-राज्य जांचों का उपयोग करना चाहिए ताकि बार-बार मॉडल कॉल अप्रत्याशित लिखावट न करे। एक प्रतिक्रिया मालिक को असाइन करें, परिभाषित करें कि कौन सा साक्ष्य समस्या का समाधान करता है, और रिकॉर्ड करें कि क्या परिणाम डेटा, संकेत, उपकरण, अनुमतियाँ, या स्रोत नीति को बदलता है। उस रिकॉर्ड से वही दोष फिर से खोजने से रोका जाता है जो एक अज्ञात गुणवत्ता उतार-चढ़ाव के रूप में हो।
केवल तभी विस्तार करें जब पायलट पूर्वानुमानित तरीके से व्यवहार करता है। एक टीम वर्तमान जानकारी के साथ शुरू कर सकती है, जहाँ काम यह है कि मॉडल को खोज या पुनर्प्राप्ति के लिए अनुरोध करने दें और स्रोत-अधारित परिणाम प्राप्त करें। एक दूसरे चरण में व्यावसायिक खोज जोड़ी जा सकती है, जहाँ कार्य प्रवाह को उपयोगकर्ता प्रश्न को अनुमोदित सेवा के खिलाफ एक मान्य प्रश्न में अनुवादित करना चाहिए। मूल परीक्षण सेट को चलाते रहें जैसे-जैसे दायरा बढ़ता है। नए स्रोत, बाजार, उपकरण और अनुमतियों को एक समय में एक सीमा में पेश किया जाना चाहिए ताकि पुनर्वसन को एक विशिष्ट परिवर्तन के लिए सौंपा जा सके बजाय इसके कि एक साथ प्लेटफ़ॉर्म पुनर्लेखन के।
निष्कर्ष
फंक्शन कॉलिंग भाषा मॉडलों को सॉफ़्टवेयर क्षमताओं के लिए अनुरोध करने का एक टाइप किया हुआ तरीका देता है। इसकी विश्वसनीयता चारों ओर के होस्ट से आती है: सटीक स्कीमा, अर्थगत मान्यता, कम प्रिविलेज, निर्धारण के अधिकरण, स्थिर परिणाम, और पूर्ण ट्रेस। मॉडल का चयन होता है; आवेदन जिम्मेदार रहता है।
पढ़ने के लिए केवल उपकरणों और छोटे क्षमता सेट के साथ शुरू करें। साइड इफेक्ट जोड़ने से पहले वास्तविक कार्यों पर चयन और तर्कों का मूल्यांकन करें। उस अनुक्रम को प्राकृतिक-भाषा लचीलेपन को नियंत्रित सॉफ़्टवेयर व्यवहार में बदल देता है।
क्या आप वेब उपकरणों को एक एजेंट होस्ट पर उजागर करने के लिए तैयार हैं?
स्ट्रक्चर्ड टूल इंटरफेस के माध्यम से सीमित वेब क्षमताओं को उपलब्ध कराने के लिए स्क्रापलेस MCP सर्वर और एजेंट ब्राउज़र का उपयोग करें।
आज ही साइन अप करें और प्राप्त करें $5 मुफ्त क्रेडिट — कोई क्रेडिट कार्ड आवश्यक नहीं.
अपना $5 क्रेडिट प्राप्त करें →अक्सर पूछे जाने वाले प्रश्न
क्या फंक्शन कॉलिंग LLM के भीतर कोड निष्पादित करता है?
नहीं। मॉडल एक संरचित टूल अनुरोध उत्पन्न करता है। होस्ट एप्लिकेशन इसे मान्य करता है, अपने स्वयं के कोड या सेवा कॉल का कार्यान्वयन करता है, और मॉडल को परिणाम लौटाता है।
क्या फंक्शन कॉलिंग और API एक समान हैं?
नहीं। एक API एक सॉफ़्टवेयर ऑपरेशन को उजागर करता है। फंक्शन कॉलिंग एक संचालन के अनुरोध के लिए मॉडल-केंद्रित पैटर्न है। एप्लिकेशन कोड अक्सर एक फंक्शन कॉल को एक या अधिक APIs में मैप करता है।
क्या MCP फंक्शन कॉलिंग के समान है?
नहीं। MCP यह मानक करता है कि होस्ट क्षमता सर्वर से कैसे जुड़े और उपकरण या संसाधनों को कैसे खोजें। एक होस्ट हॉटलों में चयनित MCP उपकरणों को अपने फंक्शन-कालिंग इंटरफेस के माध्यम से एक मॉडल को पेश कर सकता है।
क्या JSON स्कीमा टूल कॉल को सुरक्षित बनाता है?
नहीं। स्कीमा मान्यता संरचना और कुछ मूल्य सीमाओं की जांच करती है। होस्ट को अभी भी पहचान, स्वामित्व, अधिकरण, व्यावसायिक नियम, वर्तमान स्थिति और साइड-इफेक्ट अनुमोदन की पुष्टि करनी चाहिए।
एक मॉडल को कितनी फ़ंक्शन मिलनी चाहिए?
कार्य के लिए सबसे छोटी प्रासंगिक सेट का उपयोग करें। बहुत सारे ओवरलैपिंग उपकरण चयन द्विघात को बढ़ाते हैं और अनुमतियों के बारे में सोचना कठिन बना देते हैं। टूल रूटिंग एक बड़े कैटलॉग को संकीर्ण कर सकती है इससे पहले कि मॉडल का चयन।