टूल/फ़ंक्शन स्कीमा
फ़ंक्शन कॉलिंग के लिए स्कीमा।
टूल/फ़ंक्शन स्कीमा, CoddyKit पर AI प्रॉम्प्ट इंजीनियरिंग का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह AI प्रॉम्प्ट इंजीनियरिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। AI प्रॉम्प्ट इंजीनियरिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
उपकरण स्कीमा और उद्देश्य का संयोजन हैं
फ़ंक्शन कॉलिंग मॉडल को आपके कोड से कोई कार्रवाई करवाने का अनुरोध करने देती है। हर उपकरण को एक नाम, एक विवरण (इसे कब उपयोग करना है) और इसके मापदंडों के लिए एक JSON स्कीमा के साथ घोषित किया जाता है।
मॉडल कभी कोड नहीं चलाता; वह एक संरचित कॉल-अनुरोध भेजता है, जिसे आपका निष्पादन-तंत्र dispatch करता है। स्कीमा ही तर्कों को संरचना के अनुसार पढ़ने योग्य बनाता है।
उपकरण की परिभाषा का ढाँचा
उपकरण की परिभाषा, स्कीमा में लिपटी क्षमता-घोषणा होती है।
{
'type': 'function',
'function': {
'name': 'get_weather',
'description': 'Get current weather for a city. Use when the user asks about weather.',
'parameters': {
'type': 'object',
'properties': {
'city': {'type': 'string'},
'units': {'type': 'string', 'enum': ['celsius', 'fahrenheit']}
},
'required': ['city', 'units'],
'additionalProperties': False
}
}
}चयन का आधार विवरण होता है
जब बहुत-से उपकरण उपलब्ध हों, तो मॉडल मुख्य रूप से विवरण के आधार पर चुनता है। विवरणों को निर्णय-नियमों की तरह लिखें:
- बताएँ कि इसे कब उपयोग करना है और कब नहीं।
- समान उपकरणों से इसका अंतर स्पष्ट करें।
- आवश्यक पूर्वशर्तों का उल्लेख करें।
खराब स्कीमा से तर्क-संबंधी त्रुटियाँ होने की तुलना में खराब विवरणों से गलत उपकरण का चयन अधिक बार होता है।
कॉल-निष्पादन-वापसी चक्र
फ़ंक्शन कॉलिंग बहु-चरणीय होती है। मॉडल एक कॉल भेजता है, आप उसे निष्पादित करते हैं, आप परिणाम append करते हैं और मॉडल आगे बढ़ता है।
resp = client.chat.completions.create(model='gpt-4o', messages=msgs, tools=tools)
call = resp.choices[0].message.tool_calls[0]
args = json.loads(call.function.arguments)
result = dispatch(call.function.name, args)
msgs.append(resp.choices[0].message)
msgs.append({'role': 'tool', 'tool_call_id': call.id,
'content': json.dumps(result)})
# call the model again to continue with the tool resultसमानांतर उपकरण कॉल
आधुनिक मॉडल तब एक ही चरण में कई उपकरण कॉल का अनुरोध कर सकते हैं, जब कार्रवाइयाँ स्वतंत्र हों। आपके निष्पादन-तंत्र को सभी tool_calls पर क्रम से जाना चाहिए, उन्हें (आदर्श रूप से समवर्ती रूप से) निष्पादित करना चाहिए और हर tool_call_id के लिए एक उपकरण संदेश लौटाना चाहिए।
कभी यह न मानें कि केवल एक कॉल होगी; हमेशा चक्र चलाएँ।
for call in resp.choices[0].message.tool_calls:
args = json.loads(call.function.arguments)
result = dispatch(call.function.name, args)
msgs.append({'role': 'tool', 'tool_call_id': call.id,
'content': json.dumps(result)})उपकरण के उपयोग को बाध्य और सीमित करना
tool_choice से चयन नियंत्रित करें:
auto— मॉडल निर्णय लेता है।required— किसी उपकरण को कॉल करना अनिवार्य है।{name: ...}— किसी विशिष्ट उपकरण को बाध्य करें।none— इस चरण के लिए उपकरणों को निष्क्रिय करें।
किसी विशिष्ट उपकरण को बाध्य करने से फ़ंक्शन कॉलिंग शुद्ध संरचित निष्कर्षण में बदल जाती है।
client.chat.completions.create(
model='gpt-4o', messages=msgs, tools=tools,
tool_choice={'type': 'function', 'function': {'name': 'get_weather'}}
)निष्पादन से पहले तर्क validate करें
कठोर स्कीमा होने पर भी उपकरण के तर्कों को अविश्वसनीय प्रवेशी डेटा मानें। वास्तविक तंत्रों (डेटाबेस, भुगतान, फ़ाइल हटाने) को छूने से पहले स्कीमा के विरुद्ध उन्हें फिर से validate करें और व्यावसायिक नियम लागू करें।
def dispatch(name, args):
schema = TOOLS[name]['function']['parameters']
jsonschema.validate(args, schema) # defense in depth
if name == 'refund' and args['amount'] > MAX_AUTO_REFUND:
return {'error': 'requires human approval'}
return HANDLERS[name](**args)उपकरण त्रुटियाँ प्रोटोकॉल का हिस्सा हैं
जब कोई उपकरण विफल हो, तो अपवाद उत्पन्न करने के बजाय उपकरण के परिणाम के रूप में एक संरचित त्रुटि लौटाएँ। इसके बाद मॉडल क्षमा माँग सकता है, सुधारे हुए तर्कों के साथ पुनः प्रयास कर सकता है या कोई दूसरा उपकरण चुन सकता है।
त्रुटियों को कार्रवाई योग्य बनाएँ: कोई कारण और, जहाँ सुरक्षित हो, सुधार के लिए संकेत शामिल करें।
{'status': 'error',
'code': 'CITY_NOT_FOUND',
'message': 'No city named Xyz. Ask the user to clarify the city.'}उपकरणों का उपलब्ध क्षेत्र छोटा रखें
दर्जनों उपकरण चयन की सटीकता घटाते हैं और टोकन लागत बढ़ाते हैं (हर चरण में हर स्कीमा संदर्भ में रहता है)। उपाय:
- संबंधित कार्रवाइयों को
actionकी निश्चित विकल्प-सूची वाले एक उपकरण के पीछे समूहित करें। - वर्तमान स्थिति से संबंधित उपकरणों को ही गतिशील रूप से उपलब्ध कराएँ।
- समान उपकरणों के बीच भ्रम घटाने के लिए नाम-स्थान निर्धारण का उपयोग करें।
दुष्प्रभावों के लिए स्कीमा को सुदृढ़ करना
विनाशकारी कार्रवाइयों के लिए सुरक्षा को स्वयं स्कीमा में शामिल करें: स्पष्ट पुष्टि फ़ील्ड अनिवार्य करें, सीमाओं को निर्धारित करें और खुले टेक्स्ट वाले पहचानकर्ताओं के बजाय एनम या सत्यापित पैटर्न का उपयोग करें।
{
'name': 'delete_records',
'parameters': {
'type': 'object',
'properties': {
'table': {'type': 'string', 'enum': ['logs', 'temp_cache']},
'confirm': {'type': 'boolean'},
'max_rows': {'type': 'integer', 'minimum': 1, 'maximum': 1000}
},
'required': ['table', 'confirm', 'max_rows'],
'additionalProperties': False
}
}टूल परिभाषाओं का परीक्षण
टूल के चयन को एक मापने योग्य व्यवहार मानें। अपेक्षित टूल और तर्कों से जुड़े प्रॉम्प्ट का एक मूल्यांकन-समुच्चय बनाएँ, फिर सुनिश्चित करें कि मॉडल सही चयन करता है। विवरण को नए शब्दों में लिखने या नए टूल जोड़ने पर प्रतिगमन को ट्रैक करें।
cases = [
{'prompt': 'Whats it like in Paris?', 'expect_tool': 'get_weather'},
{'prompt': 'Convert 10 USD to EUR', 'expect_tool': 'fx_convert'}
]
for c in cases:
assert run(c['prompt']).tool_name == c['expect_tool']त्वरित जाँच
मॉडल सहायक के एक चरण में दो स्वतंत्र टूल-कॉल जारी करता है। आपके रनटाइम को क्या करना चाहिए?
पुनरावलोकन
व्यवहार में टूल/फ़ंक्शन स्कीमा:
- विवरण चयन को दिशा देते हैं; स्कीमा ऐसे तर्क तय करते हैं जिन्हें पार्स किया जा सके।
- सभी टूल-कॉल पर क्रम से काम करें; समानांतर निष्पादन का समर्थन करें।
- टूल-चयन से व्यवहार नियंत्रित करें; शुद्ध निष्कर्षण के लिए टूल को बाध्य करें।
- तर्कों को फिर से सत्यापित करें; संरचित त्रुटियाँ लौटाएँ।
- टूल की उपलब्ध सतह छोटी रखें और विनाशकारी कार्रवाइयों को अधिक सुरक्षित बनाएँ।
अगला विषय: जब आउटपुट फिर भी गलत हो जाए, तब सुधार और सत्यापन की प्रक्रियाएँ।
एआई शिक्षक के साथ AI प्रॉम्प्ट इंजीनियरिंग सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 53
- पाठ
- 199
अक्सर पूछे जाने वाले प्रश्न
क्या “टूल/फ़ंक्शन स्कीमा” पाठ निःशुल्क है?
हाँ — AI प्रॉम्प्ट इंजीनियरिंग अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “टूल/फ़ंक्शन स्कीमा” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। AI प्रॉम्प्ट इंजीनियरिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“टूल/फ़ंक्शन स्कीमा” में मैं क्या सीखूँगा?
फ़ंक्शन कॉलिंग के लिए स्कीमा। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ AI प्रॉम्प्ट इंजीनियरिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या AI प्रॉम्प्ट इंजीनियरिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर AI प्रॉम्प्ट इंजीनियरिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“टूल/फ़ंक्शन स्कीमा” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस AI प्रॉम्प्ट इंजीनियरिंग पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर AI प्रॉम्प्ट इंजीनियरिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- संरचित आउटपुट क्यों
- प्रॉम्प्ट में JSON Schema
- टूल/फ़ंक्शन स्कीमा
- सुधार और सत्यापन लूप