पाठ 19 / 27
Tool Use और Structured Output
मॉडल को functions बुलाने दें और मशीन-पठनीय परिणाम लौटाने दें।
मॉडल माँगता है, आपका कोड करता है
Tool use (function calling) में आप functions वर्णित करते हैं (नाम, उद्देश्य, arguments का JSON schema)। मॉडल किसी को बुलाने का अनुरोध लौटा सकता है, आपका कोड उसे चलाता है और परिणाम लौटाता है, और मॉडल उस जानकारी के साथ आगे बढ़ता है। LLMs इसी तरह search करते, databases query करते या ईमेल भेजते हैं; ऐसे चरणों की शृंखलाएँ agents बनाती हैं। भरोसेमंद parsing के लिए structured output (schema से मेल खाता JSON) माँगें और कोड में validate करें। Tool arguments को अविश्वसनीय इनपुट मानें: अनुमतियाँ जाँचें, हर tool की क्षमता सीमित करें, और जोखिम भरी कार्रवाइयों के लिए मानव पुष्टि माँगें।
Tool परिभाषा और validation
Schema मॉडल को बताता है कि कौन-से arguments स्वीकार्य हैं; कार्रवाई से पहले आपका कोड फिर भी validate करे। उदाहरण; यहाँ चलाया नहीं गया।
tool = {
"name": "get_order_status",
"description": "Look up the status of an order by id",
"input_schema": {
"type": "object",
"properties": {"order_id": {"type": "string", "pattern": "^[0-9]{6}$"}},
"required": ["order_id"],
},
}
def run_tool(args):
oid = args.get("order_id", "")
if not (len(oid) == 6 and oid.isdigit()):
return {"error": "invalid order_id"}
return {"order_id": oid, "status": "shipped"} # real code: query your systemहर tool call log करें
Arguments, परिणाम और किसने ट्रिगर किया दर्ज करें। Logs से debugging और सुरक्षा समीक्षा संभव होती है; पहले व्यक्तिगत डेटा हटाएँ।
त्वरित जाँच: Tool call वास्तव में कौन चलाता है?
- सिर्फ़ user का browser
- मॉडल ख़ुद
- Tokenizer
- आपका application कोड
Answer
आपका application कोड — मॉडल सिर्फ़ call प्रस्तावित करता है; चलाना है या नहीं और कैसे, यह आपका कोड तय करता है।