पाठ 11 / 31

ऐसे Tools डिज़ाइन करना जिन्हें मॉडल उपयोग कर सके

मॉडल पाठक के लिए नाम, विवरण और परिणाम लिखें।

विवरण ही user interface है

मॉडल सिर्फ़ नाम, विवरण और schema से tools चुनता है, इसलिए यही आपका UI है। अच्छा अभ्यास: प्रति tool एक स्पष्ट काम, क्रिया-संज्ञा नाम (get_order_status), ऐसा विवरण जो बताए कब उपयोग करें और क्या लौटता है, सीमित arguments (enums, patterns, min/max) और संक्षिप्त परिणाम (मेगाबाइट नहीं)। हर API endpoint के पतले wrappers की जगह कार्य-उन्मुख tools चुनें: "किसी ग्राहक का नवीनतम अवैतनिक invoice खोजो" उन पाँच निम्न-स्तरीय calls से बेहतर है जिन्हें मॉडल को जोड़ना पड़ता। जब client डेटा प्रोसेस करेगा तब संरचित डेटा लौटाएँ, और tools की कुल संख्या छोटी रखें, क्योंकि हर tool परिभाषा हर अनुरोध पर context में जुड़ती है।

कई tools की लागत, चलाकर

मैंने यह सादे Python 3 (सिर्फ़ standard library) से चलाया। तीन tools प्रति अनुरोध लगभग 210 tokens विवरण में लेते हैं। साठ समान tools हर अनुरोध पर 4,500 tokens लेते हैं, जो 10,000 अनुरोधों में 4.5 करोड़ tokens है, किसी असली काम से पहले। प्रति-tool token गणना उदाहरणात्मक है।

# Every tool description is sent to the model on every request: it costs tokens.
tools = {"get_order_status": 60, "propose_refund": 80, "search_docs": 70}
print("3 tools:", sum(tools.values()), "tokens of descriptions per request")

many = {f"tool_{i}": 75 for i in range(60)}
per_request = sum(many.values())
print("60 tools:", per_request, "tokens per request;", per_request * 10_000, "tokens per 10,000 requests")

Output:

3 tools: 210 tokens of descriptions per request
60 tools: 4500 tokens per request; 45000000 tokens per 10,000 requests

बताएँ कब tool उपयोग न करें

"Refunds के लिए उपयोग न करें; propose_refund उपयोग करें" जैसा एक वाक्य समान tools के बीच कई ग़लत calls रोकता है।

त्वरित जाँच: Tools की संख्या छोटी क्यों रखें?

  • JSON छोटी संख्या माँगता है
  • Tools जल्दी expire होते हैं
  • Protocol सिर्फ़ पाँच की अनुमति देता है
  • हर tool परिभाषा context tokens खाती है और ग़लत चुनाव करा सकती है
Answer

हर tool परिभाषा context tokens खाती है और ग़लत चुनाव करा सकती है — विवरण हर अनुरोध पर भेजे जाते हैं, इसलिए tokens खाते हैं और भ्रम बढ़ाते हैं।