TypeSafe Jev चरण-दर-चरण ट्यूटोरियल. TypeSafe Jev के लिए व्यावहारिक गाइड, जो टाइप्ड सॉफ़्टवेयर निर्णयों का System One AI मॉडल है।
01
कार्य को फ़्रेम करें
तय करें कि क्या जेव फिट बैठता है
जेव कोई चैट मॉडल नहीं है. यह मौजूदा स्थिति को एक बंद विकल्प, स्कोर या नॉल निर्णय में बदल देता है और एक संभाव्यता वितरण लौटाता है।
एक अच्छा फिट
सीमित निर्णयों के लिए Jev का उपयोग करें
एक अनुरोध को एक नामित कतार में रूट करें।
किसी आदेशित जोखिम या गुणवत्ता पैमाने पर रिकॉर्ड रखें।
अनुमान लगाएं कि क्या स्पष्ट रूप से बताई गई एक शर्त सत्य है।
ठीक फिट नहीं है
इसके बजाय एक जेनरेटिव मॉडल का उपयोग करें
ओपन-एंडेड टेक्स्ट लिखें, सारांशित करें, अनुवाद करें या फिर से लिखें।
स्वाभाविक बहु-मोड़ वार्तालाप करें।
जब वैध आउटपुट को पहले से नामित नहीं किया जा सके तो एक उत्तर बनाएं।
आधिकारिक मानसिक मॉडल
STATE
मूल्यांकन करने के लिए एक राज्य
एक स्ट्रिंग, ऑब्जेक्ट, या सरणी पास करें जिसमें पाठ और संबंधित तथ्य हों जो निर्णय के लिए आवश्यक हों। अधिकांश वास्तविक अनुरोधों के लिए नामित ऑब्जेक्ट फ़ील्ड का उपयोग करें।
QUESTIONS
प्रति प्रश्न एक त्वरित निर्णय
प्रत्येक प्रश्न में एक केंद्रित बात पूछनी चाहिए जिसे एक जानकार व्यक्ति आपूर्ति की गई स्थिति से तुरंत निर्णय ले सके।
PARALLEL
समानांतर में स्वतंत्र प्रश्न
एक अनुरोध में प्रश्न एक ही स्थिति में दिखते हैं, स्वतंत्र रूप से चलते हैं, और एक उत्तर को दूसरे में लीक नहीं करते हैं।
CODE
कोड में उत्तर लिखें
वज़न, सीमा, शाखा, और टाइप किए गए उत्तरों को वर्कफ़्लो तर्क को एक प्रॉम्प्ट में छिपाने के बजाय सामान्य कोड में संयोजित करें।
अपघटन परीक्षण: यदि निर्णय में कई स्वतंत्र कारकों पर विचार किया जाता है या विस्तृत तर्क की आवश्यकता होती है, तो इसे परमाणु प्रश्नों में विभाजित करें और उत्तरों को कोड में संयोजित करें।
इस अध्याय के बाद:आप सामग्री-निर्माण कार्यों को संरचित-निर्णय कार्यों से अलग कर सकते हैं।
स्पष्ट हाँ/नहीं निर्णय के लिए उपयोग करें। 0.5 के करीब का मतलब अनिश्चितता है, संपत्ति की मध्यम राशि नहीं। नूल के पास कोई अलग आत्मविश्वास क्षेत्र नहीं है।
{
"type": "noul",
"noul": 0.95
}
स्कोर सटीकता नहीं है. 0-2 रूब्रिक पर 1.5 का स्कोर एक अपेक्षित स्तर है, न कि "75% सही।" स्कोर या चॉइस आत्मविश्वास को सटीकता के वादे के रूप में न मानें।
इस अध्याय के बाद:आप रूटिंग, मॉडरेशन और जोखिम स्कोरिंग के लिए सही उत्तर आकार का चयन कर सकते हैं।
विकल्प के नाम स्थिर रखें, परस्पर अनन्य सीमाओं को परिभाषित करें, एक अवशिष्ट पथ शामिल करें और प्रत्येक प्रश्न को एक निर्णय दें।
मजबूत मानदंड लिखना
असंयुक्त विकल्प. यदि दो चॉइस कुंजियाँ दोनों सत्य हो सकती हैं, तो ऑपरेटर मॉडल से लड़ेंगे।
किनारों का वर्णन करें. बताएं कि buy_intent में क्या शामिल है (स्टॉक, शिप-टू) बनाम कीमत_प्रश्न।
अवशेष को अंतिम रखें. भागने के रास्ते के रूप में अन्य/मानव का उपयोग करें, न कि आलसी लोगों को पकड़ने के लिए।
ऑर्डर स्कोर बढ़ रहा है। मानदंड सारणी निम्नतम → उच्चतम हैं।
प्रति प्रश्न एक निर्णय. "रूट" को "अत्यावश्यकता" से अलग-अलग कुंजियों में विभाजित करें।
एक प्रश्न की शारीरिक रचना
question_id
आपके कोड के लिए एक प्रतिक्रिया लुकअप कुंजी। इसे मॉडल पर नहीं भेजा गया है, इसलिए निर्देशों में अभी भी पूरा प्रश्न शामिल होना चाहिए।
type
विकल्प, स्कोर, या संख्या। वह आकार चुनें जिस पर आपका कोड सीधे कार्य कर सके।
instructions
संपूर्ण, विशिष्ट निर्णय. यह एक स्ट्रिंग, ऑब्जेक्ट या सरणी हो सकता है और नामित राज्य पथों को संदर्भित कर सकता है।
criteria
विकल्प विकल्प, आदेशित स्कोर स्तर, या नोल के लिए वैकल्पिक सही/गलत स्पष्टीकरण।
उदाहरण · एक निर्णय, विसंयुक्त सीमाएँ
route: {
type: 'choice',
instructions: 'Route this ticket to one queue.',
criteria: {
tech: 'Bugs, outages, API failures, or integrations',
sales: 'Pricing, plans, demos, or new-purchase intent',
billing: 'Charges, invoices, receipts, or subscriptions',
human: 'Ambiguous, sensitive, legal, or multi-issue'
}
}
संरचना स्थिति और संदर्भ सटीक फ़ील्ड
नामित राज्य फ़ील्ड में साक्ष्य रखें और डॉट-एंड-इंडेक्स पथ के साथ उन पर निर्देश इंगित करें। इससे इस बारे में अस्पष्टता कम हो जाती है कि किस पाठ, रिकॉर्ड या नीति को उत्तर को नियंत्रित करना चाहिए।
const state = {
ticket: {
message: 'I was charged twice. Please refund the duplicate.',
orderId: 'A-104'
},
order: { charges: [49, 49] },
refundPolicy: 'Duplicate charges are eligible for a refund.'
};
const questions = {
refund_requested: {
type: 'noul',
instructions: 'Does `ticket.message` request a refund?'
},
policy_supports_refund: {
type: 'noul',
instructions: 'Does `refundPolicy` support the request given `order.charges`?'
}
};
डिफ़ॉल्ट रूप से बैच: एक ही अनुरोध में समान स्थिति का उपयोग करने वाले सभी प्रश्न पूछें—यहां तक कि काल्पनिक प्रश्न भी। दूसरा अनुरोध तभी करें जब उसकी स्थिति या विकल्प वास्तव में पिछले उत्तर पर निर्भर हों।
इस अध्याय के बाद:आप एक स्थिर, परीक्षण योग्य प्रश्न परिभाषा लिख सकते हैं जिसका उपयोग कोड कर सकता है।
अपने सर्वर से आधिकारिक सिस्टम वन एंडपॉइंट या एसडीके को कॉल करें, टाइप की गई प्रतिक्रिया का निरीक्षण करें, और सत्यापन, दर-सीमा और ओवरलोड त्रुटियों को संभालें। गेटवे एक वैकल्पिक पहुंच पथ बना हुआ है।
आधिकारिक HTTP समापन बिंदु से प्रारंभ करें
सर्वर पर TYPESAFE_API_KEY रखें। POST /v1/systemone. पर राज्य, मॉडल और नामित प्रश्नों का एक नक्शा भेजें
curl -X POST https://api.typesafe.ai/v1/systemone \
-H "Authorization: Bearer $TYPESAFE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"state": "Stripe has failed for 3 days. I am losing sales.",
"model": "jev-latest",
"questions": {
"department": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions"
}
},
"is_urgent": {
"type": "noul",
"instructions": "Does this message convey urgency?"
}
}
}'
टाइप किए गए उत्तरों और पुनः प्रयास के लिए आधिकारिक एसडीके का उपयोग करें
पायथन एसडीके पर्यावरण से TYPESAFE_API_KEY को पढ़ता है, jev-latest पर डिफ़ॉल्ट करता है, टाइप किए गए प्रश्न/उत्तर वर्गों को उजागर करता है, और अपनी डिफ़ॉल्ट पुनः प्रयास नीति लागू करता है।
pip install typesafe-sdk
from typesafe_sdk import Choice, Noul, TypeSafeClient
with TypeSafeClient() as client:
response = client.system_one(
state={"message": "Stripe has failed for 3 days.", "impact": "Losing sales"},
questions={
"department": Choice(
instructions="Which team should handle this?",
criteria={
"billing": "Payment or subscription issues",
"technical": "Bugs or integration problems",
"sales": "Pricing or account questions",
},
),
"is_urgent": Noul(
instructions="Does `message` and `impact` convey urgency?"
),
},
)
department = response.answers["department"]
print(department.choice, department.confidence)
print(response.answers["is_urgent"].noul)
अमान्य अनुरोध आकार. आपत्तिजनक क्षेत्र के लिए प्रतिक्रिया का निरीक्षण करें।
429
दर सीमा पार हो गई. पुनः प्रयास करने से पहले पीछे हट जाएँ।
529
सेवा अस्थायी रूप से अतिभारित है. पुनः प्रयास करने से पहले पीछे हट जाएँ।
429 और 529 के लिए, तत्काल पुनः प्रयास करने के बजाय घातीय बैकऑफ़ का उपयोग करें। आधिकारिक एसडीके अपनी डिफ़ॉल्ट पुनः प्रयास नीति के तहत स्वचालित रूप से ऐसा करते हैं।
वैकल्पिक: वर्सेल एआई गेटवे
यह साइट एआई एसडीके मूल्यांकन के लिए एक्सेस लेयर के रूप में गेटवे का भी दस्तावेजीकरण करती है। यह एक वैकल्पिक एकीकरण पथ है, जेव या टाइपसेफ का हिस्सा नहीं है।
import { experimental_evaluate as evaluate } from 'ai';
import { gateway } from '@ai-sdk/gateway';
const result = await evaluate({
model: gateway('typesafe-ai/jev'),
state,
questions,
});
इस अध्याय के बाद:आप क्रेडेंशियल्स को सर्वर-साइड रख सकते हैं और संभावनाओं के साथ टाइप किए गए उत्तर प्राप्त कर सकते हैं।
शीर्ष संभाव्यता को सीधे अंतिम क्रिया में न बदलें। व्यावसायिक जोखिम के आधार पर सुझाव, पुष्टि और मानवीय समीक्षा के लिए बैंड सेट करें।
PROBABILITY
प्रत्येक विकल्प या स्तर के लिए साक्ष्य
विकल्प और स्कोर पूर्ण वितरण लौटाते हैं। जब उपविजेता विकल्प, अस्पष्टता, या कस्टम अनिश्चितता उपाय मायने रखते हैं तो इसका उपयोग करें।
CONFIDENCE
वितरण आकार का सारांश
आत्मविश्वास इस बात को संकुचित करता है कि वितरण कितना संकेंद्रित या सपाट है, 0-1 में। यह चयनित विकल्प संभावना के समान नहीं है।
Noul: Noul पहले से ही P(सत्य) लौटाता है, इसलिए इसका कोई अलग भरोसा नहीं है। 0.5 के निकट मान अनिश्चित हैं; जोखिम के अनुसार हाँ और ना दोनों पक्षों की सीमा।
टाइपसेफ़ विकल्प वितरण से आत्मविश्वास को उजागर करता है। एक व्यावहारिक नीति है:
01
उच्च आत्मविश्वास
अपने यूआई में विकल्प (टैग, मार्ग या निर्णय) का स्वत: सुझाव दें।
02
मध्यम आत्मविश्वास
सुझाव दिखाएं, लेकिन जारी रखने से पहले ऑपरेटर से इसकी पुष्टि कराना आवश्यक है।
03
कम आत्मविश्वास
बिना किसी डिफ़ॉल्ट कार्रवाई के मानव कतार में भेजें।
अपनी स्ट्रीम या इनबॉक्स से लेबल किए गए उदाहरणों पर कटऑफ को कैलिब्रेट करें। सीमाएँ उपयोग-मामले-विशिष्ट हैं। सुझावों को कभी भी पैसों के लिए न जोड़ें या साइड इफ़ेक्ट वापस न करें।
वैश्विक स्तर पर मॉडल नहीं, बल्कि कार्रवाई की सीमा तय करें
action = response.answers["action"]
if action.confidence < 0.5:
route_to_human(state) # uncertain: do not guess
elif action.choice == "check_balance":
show_balance(account_id) # reversible, low stakes
elif action.choice == "approve_transfer":
if action.confidence > 0.9:
confirm_then_execute(account_id)
else:
ask_user_to_confirm(account_id) # higher stakes, higher bar
स्वचालन से पहले अंशांकन करें
वास्तविक वर्कफ़्लो से प्रतिनिधि, लेबल वाले उदाहरण एकत्र करें।
उत्तर, वितरण, आत्मविश्वास, विलंबता और मानवीय निर्णय रिकॉर्ड करें।
प्रतिवर्ती, महँगी और अपरिवर्तनीय कार्रवाइयों के लिए अलग-अलग सीमाएँ चुनें।
स्थिति, निर्देश, मानदंड या मॉडल उपनाम बदलने के बाद बहाव की निगरानी करें और पुनर्मूल्यांकन करें।
राज्य युक्तियाँ
किसी स्ट्रिंग, ऑब्जेक्ट या सरणी को स्थिति के रूप में पास करें। जब केवल एक संदेश मायने रखता हो तो संपूर्ण चैट लॉग को डंप करने के बजाय संरचित रिकॉर्ड (टिप्पणी पाठ + मेटाडेटा) को प्राथमिकता दें।
इस अध्याय के बाद:आप कम-आत्मविश्वास वाला फ़ॉलबैक डिज़ाइन कर सकते हैं और लेबल किए गए डेटा के साथ थ्रेशोल्ड को कैलिब्रेट कर सकते हैं।
एपीआई को कॉल करने से पहले राज्य आकार, आवश्यक फ़ील्ड और प्रश्न परिभाषाओं को मान्य करें।
मॉडल संस्करण, प्रश्न संस्करण, संभावनाएं, आत्मविश्वास और अंतिम कार्रवाई संग्रहीत करें।
एक स्पष्ट अन्य/मानवीय मार्ग प्रदान करें और कभी भी अनिश्चितता पर डिफ़ॉल्ट का आविष्कार न करें।
बाउंडेड एक्सपोनेंशियल बैकऑफ़ के साथ 429 और 529 का पुनः प्रयास करें; सत्यापन त्रुटियों का पुनः प्रयास न करें.
स्वचालन सक्षम करने से पहले लेबल किए गए किनारे के मामलों के विरुद्ध परीक्षण करें और थ्रेशोल्ड को पुन: कैलिब्रेट करें।
Case index
Six Jev patterns to explore next
These are research paths, not claims that this site built the projects. Each card opens the corresponding category in the open-source radar so you can inspect real implementations and source evidence.