วิธีใช้ Jev: สร้าง Decision Layer แทนแชทบอท

วิธีใช้ Jev ในฐานะเลเยอร์การตัดสินใจ: การตัดสินโดยไม่คำนึงถึงผู้เขียน, การออกแบบคำถาม, สภาวะเริ่มต้นที่บริสุทธิ์, คำถามคู่ขนาน, เกณฑ์ความเชื่อมั่น และการทดสอบทั้งหมดใน Apidog

Ashley Innocent

Ashley Innocent

20 September 2026

วิธีใช้ Jev: สร้าง Decision Layer แทนแชทบอท

Apidog สำหรับองค์กร

การติดตั้งแบบ On-Premises

SSO & RBAC

รองรับมาตรฐาน SOC 2

สำรวจ Apidog Enterprise

คนส่วนใหญ่จะพบกับโมเดลใหม่ด้วยการเปิดกล่องแชทแล้วพิมพ์โต้ตอบ แต่ Jev กลับตรงกันข้าม มันคือโมเดล System One ของ TypeSafe AI และมันไม่ได้สร้างข้อความใดๆ เลย: คุณส่งสถานะของโปรแกรมพร้อมชุดคำถามที่มีประเภทข้อมูลที่กำหนดไว้ แล้วมันจะคืนค่าการตัดสินใจพร้อมความน่าจะเป็นที่แนบมา การเปลี่ยนบทบาทนี้คือเทคนิคทั้งหมด โมเดลภาษาของคุณยังคงเขียนต่อไป; Jev จะตัดสินใจว่าจะเกิดอะไรขึ้นต่อไป และโค้ดของคุณจะตัดสินใจว่าจะทำอย่างไรกับการตัดสินใจนั้น

คู่มือนี้ครอบคลุมสถาปัตยกรรมที่เกี่ยวข้องกับการเรียกใช้ ไม่ใช่การเรียกใช้ตัวมันเอง หากคุณต้องการข้อมูลเบื้องต้นก่อน ให้เริ่มต้นด้วย Jev คืออะไร จากนั้นอ่าน ประกาศเปิดตัว ของ TypeSafe เอง เพื่อทำความเข้าใจมุมมองของบริษัท

button

สิ่งที่ Jev โดดเด่นเป็นพิเศษ

ฟังก์ชันพื้นฐานสามอย่างครอบคลุมทุกสิ่งที่ Jev ทำ `noul` จะคืนค่าความน่าจะเป็นที่ข้อความหนึ่งเกี่ยวกับสถานะนั้นเป็นจริง `choice` จะเลือกหนึ่งตัวเลือกจากแผนผังเกณฑ์ (สูงสุด 255 ตัวเลือก) และคืนค่าตัวเลือกที่เลือก การกระจายความน่าจะเป็นทั้งหมด และค่าความเชื่อมั่น `score` จะจัดลำดับสถานะบนเกณฑ์ประเมินแบบมีลำดับตั้งแต่ 2 ถึง 10 ระดับ และคืนค่าระดับ คำอธิบาย ความน่าจะเป็น และความเชื่อมั่น ข้อมูลเบื้องหลังเกี่ยวกับบริษัทและตระกูลโมเดลสามารถดูได้ในบทความของเราเกี่ยวกับ TypeSafe AI

คุณสมบัติสี่ประการมีความสำคัญต่อสถาปัตยกรรม ทุกคำตอบมาในประเภทที่โปรแกรมของคุณเข้าใจอยู่แล้ว ทุกคำตอบมีความไม่แน่นอนของตัวเอง ดังนั้น "ไม่แน่ใจ" จึงกลายเป็นทางแยกแทนที่จะเป็นเรื่องน่าประหลาดใจ คำถามหลายข้อเกี่ยวกับสถานะหนึ่งๆ สามารถแก้ไขได้ในครั้งเดียว และด้วยราคา $0.042 ต่อหนึ่งล้านโทเค็นอินพุตโดยไม่มีค่าใช้จ่ายสำหรับโทเค็นเอาต์พุต คุณสามารถถามได้ทุกเหตุการณ์แทนที่จะเป็นเพียงตัวอย่าง

ใช้ Jev เป็นผู้ตัดสิน ไม่ใช่ผู้เขียน

สี่บทบาทที่แยกจากกันอย่างชัดเจน:

นี่คือเหตุผลว่าทำไมการแบ่งแยกนี้จึงได้ผล โมเดลภาษามีความยืดหยุ่นเพราะสามารถสร้างอะไรก็ได้ และอิสระนั้นเองที่ทำให้มันยากที่จะนำไปใช้ในเวิร์กโฟลว์ที่คุณต้องพึ่งพา กรอบแนวคิดของ TypeSafe คือ Jev "เลิกสร้างข้อความ" และได้รับสัญญาที่จำกัดเป็นการตอบแทน: ชุดคำตอบที่เป็นไปได้จะถูกกำหนดไว้ล่วงหน้าก่อนที่คำขอจะออกจากเซิร์ฟเวอร์ของคุณ ทุกผลลัพธ์จะเข้ากับรูปร่างที่ประกาศไว้ และความไม่แน่นอนคือตัวเลขที่คุณสามารถเปรียบเทียบกับค่าเกณฑ์ได้

ด้านต้นทุนก็มาจากการแลกเปลี่ยนเดียวกันนี้ TypeSafe รายงานเวลาตอบสนองแบบ end-to-end อยู่ที่ 70ms ถึง 500ms และอ้างว่าเร็วกว่า 193.6 เท่า และถูกกว่า 444.6 เท่าในเวิร์กโฟลว์ที่ทดสอบ โปรดพิจารณาว่านี่เป็นตัวเลขจากผู้ขาย ไม่ใช่ข้อมูลอ้างอิงที่เป็นอิสระ ประเด็นเชิงโครงสร้างยังคงอยู่ไม่ว่าจะด้วยวิธีใด: โมเดลที่มีราคาแพงจะทำงานก็ต่อเมื่อจำเป็นต้องเขียนบางสิ่งบางอย่างจริงๆ และการตัดสินซ้ำๆ รอบๆ โมเดลนั้นจะทำงานในที่ที่มีราคาถูก

การออกแบบคำถามที่ Jev สามารถตอบได้

ทุกคำขอจะประกอบด้วย `state` ที่ใช้ร่วมกันหนึ่งรายการและชุดคำถามอิสระหลายข้อ Jev จะอ่านสถานะเพียงครั้งเดียวแล้วตอบคำถามทั้งหมด การคัดแยกคำขอสนับสนุนจะดูเหมือนสิ่งนี้:

{
  "model": "jev-latest",
  "state": {
    "message": "I've been trying to connect Stripe for three days. I'm losing sales and I need this fixed today.",
    "plan": "Pro",
    "account_age_months": 14,
    "recent_technical_tickets": 3
  },
  "questions": {
    "department": {
      "type": "choice",
      "instruction": "Which team should own this ticket?",
      "criteria": {
        "billing": "Payments, charges, invoices, subscription changes",
        "technical": "Bugs, broken behavior, failing integrations",
        "sales": "Pricing, plans, questions asked before purchase"
      }
    },
    "frustration": {
      "type": "score",
      "instruction": "How frustrated is this customer?",
      "criteria": [
        "Calm and matter of fact",
        "Frustrated but civil",
        "Extremely frustrated or threatening to leave"
      ]
    },
    "urgent": {
      "type": "noul",
      "instruction": "The customer needs a resolution today."
    }
  }
}

สามนิสัยที่แยกคำถามที่ได้ผลออกจากคำถามที่คลุมเครือ

หยุดเขียนพรอมต์. บุคลิกภาพ, ตัวอย่างที่ทำสำเร็จแล้ว และบทนำที่ยาวๆ ใช้เพื่อชี้นำตัวสร้างข้อความ Jev ไม่ได้สร้างข้อความ มันต้องการสถานะ คำถามเชิงอะตอมหนึ่งข้อ และคำอธิบายที่แม่นยำว่าแต่ละคำตอบหมายถึงอะไร เกณฑ์ที่อธิบายได้ดีกว่าป้ายกำกับเปล่าๆ: “การชำระเงิน, ค่าใช้จ่าย, ใบแจ้งหนี้, การเปลี่ยนแปลงการสมัครสมาชิก” จะนำทางได้ดีกว่าคำว่า “การเรียกเก็บเงิน” เพียงอย่างเดียว อย่าขอให้มันอธิบายตัวเองด้วย เพราะการตอบสนองมีเพียงการตัดสินใจ ความน่าจะเป็น และความเชื่อมั่นเท่านั้น ไม่มีอะไรอื่น

หนึ่งคำถาม หนึ่งการตัดสิน. “ลูกค้าเป้าหมายนี้มีคุณค่า เร่งด่วน และมีแนวโน้มที่จะซื้อหรือไม่?” คือสามคำถามที่ถูกรวมไว้ในชุดเดียวกัน แยกคำถามเหล่านี้ออกและรวมผลลัพธ์ในโค้ด ซึ่งคุณสามารถเห็นน้ำหนักและเปลี่ยนแปลงได้

อย่าให้โมเดลคำนวณ. Jev ตัดสินความหมาย โปรแกรมของคุณเป็นผู้คำนวณ ใช้ตารางส่วนลด และตรวจสอบเงื่อนไขสัญญา การแบ่งแยกนี้คือสิ่งที่ทำให้ทุกอย่างตรวจสอบได้

TypeSafe ยังมี skill แบบ drop-in ที่สอน agent การเขียนโค้ดให้ปฏิบัติตามหลักการเหล่านี้ ซึ่งสามารถติดตั้งใน Claude Code ได้ด้วย `claude plugin marketplace add typesafe-ai/skills` หรือที่อื่นๆ ด้วย `npx skills add typesafe-ai/skills` หน้า agent skill มีรายละเอียด

รักษา state ให้สะอาด

state ที่เกี่ยวข้องสำคัญกว่า state ที่มีข้อมูลมากเกินไป โดยปกติจะครอบคลุมสามส่วน: วัตถุที่ถูกตัดสิน บริบทที่จำเป็นในการอ่านวัตถุนั้น และข้อเท็จจริงที่จะเปลี่ยนการตัดสินใจหากมีการเปลี่ยนแปลง สิ่งอื่นๆ ล้วนเป็นข้อมูลรบกวนที่คุณต้องจ่ายค่าส่ง

ลบรายการบันทึกที่ซ้ำกัน ประวัติที่เก่ากว่าปัญหาปัจจุบัน และประโยคใดๆ ที่ระบุข้อสรุปที่คุณหวังว่าโมเดลจะเข้าถึง ขีดจำกัดสูงสุดคือ 64k โทเค็นต่อคำขอ โดยมี 32k สำหรับ state บวกกับคำถามที่ยาวที่สุด แต่ความแม่นยำอาจเปลี่ยนแปลงได้ก่อนที่คุณจะถึงขีดจำกัดนั้น เมื่อการกำหนดเส้นทางเริ่มไม่ชัดเจน การลดขนาด state มักจะเป็นวิธีแก้ไขที่เร็วกว่าการเขียนเกณฑ์ใหม่

คำถามแบบขนานและเกตความเชื่อมั่น

เนื่องจาก Jev อ่าน state เพียงครั้งเดียว คำถามที่สิบสามจึงมีค่าใช้จ่ายน้อยกว่าการส่งไปกลับครั้งที่สองมาก ส่งการตัดสินใจอิสระทุกรายการที่อาจเปลี่ยนแปลงการดำเนินการ: เจตนา, ความเสี่ยง, ความเร่งด่วน, อารมณ์ความรู้สึก, ความเกี่ยวข้อง, ขั้นตอนต่อไปที่จำเป็น จากนั้นตัดคำถามใดๆ ที่คำตอบไม่เคยเปลี่ยนการทำงานของโค้ดคุณออก สัญญาณที่ไม่ได้ใช้งานคือค่าบำรุงรักษาที่ไม่มีประโยชน์

จับคู่ฟังก์ชันพื้นฐานกับรูปแบบการตัดสิน ระดับที่ค่อยเป็นค่อยไป เช่น ความรุนแรง คุณภาพ และความเหมาะสม ควรอยู่ใน `score` ไม่ใช่ในคำตอบบังคับแบบใช่/ไม่ใช่ ข้อความที่เป็นข้อเท็จจริงเพียงข้อเดียวควรอยู่ใน `noul` ชุดปลายทางที่แน่นอนควรอยู่ใน `choice`

เกตคือที่ที่สถาปัตยกรรมทำงานจริงๆ คำตอบที่มีประเภทข้อมูลที่กำหนดไว้อาจยังคงเป็นคำตอบที่ผิด ดังนั้นความเชื่อมั่นจึงเป็นตัวตัดสินว่าจะเกิดอะไรขึ้นต่อไป รูปแบบเริ่มต้นที่ใช้งานได้: ดำเนินการโดยอัตโนมัติเมื่อความเชื่อมั่นสูงกว่า 0.85, ส่งช่วง 0.55 ถึง 0.85 ให้โมเดลที่แข็งแกร่งกว่าหรือประมวลผลซ้ำ และจัดคิวสิ่งที่ต่ำกว่า 0.55 ให้กับมนุษย์ ตัวเลขเหล่านั้นเป็นเพียงตัวอย่าง รูปแบบ confidence routing ของ TypeSafe กำหนดค่าเกณฑ์แยกกันต่อการดำเนินการ โดยอิงตามต้นทุนของการผิดพลาด และ หน้าความเชื่อมั่น ของมันบอกให้คุณ "ทดสอบด้วยข้อมูลของคุณเอง และปรับเปลี่ยนตามผลลัพธ์ที่คุณสังเกตเห็น" เมื่อค่าเกณฑ์ของคุณถูกปรับแต่งแล้ว ให้ตรึงโมเดล: `jev-latest` จะติดตามเวอร์ชันเสถียรล่าสุด ในขณะที่ `jev-1.13.0` จะตรึงพฤติกรรมที่คุณวัดไว้

ทดสอบเลเยอร์การตัดสินใจใน Apidog

เลเยอร์การตัดสินใจจะน่าเชื่อถือก็ต่อเมื่อคุณสามารถพิสูจน์ได้ว่ามันทำงานอย่างไร นั่นหมายถึงคำขอที่บันทึกไว้และการยืนยัน ไม่ใช่เพียงแค่ประวัติการเรียกใช้ครั้งเดียวในเทอร์มินัล Apidog ให้คุณทั้งสองอย่าง และการยืนยันจะดูแตกต่างจากการทดสอบ API ทั่วไป เพราะคุณกำลังตรวจสอบตัวเลขและค่า enum แทนที่จะเป็นสตริง

จัดเก็บคีย์เป็นตัวแปรสภาพแวดล้อม. สร้างสภาพแวดล้อมชื่อ `TypeSafe` เพิ่ม `TYPESAFE_API_KEY` เป็นค่าโลคัลเพื่อให้ยังคงอยู่ในเครื่องของคุณ และอ้างอิงมันเป็น `{{TYPESAFE_API_KEY}}` ใน Bearer token คู่มือของเราเกี่ยวกับ สภาพแวดล้อมและตัวแปรลับ ครอบคลุมกฎขอบเขต

ส่งการเรียกใช้จริง. `POST https://api.typesafe.ai/v1/systemone` พร้อมกับบอดี้ state-plus-questions ด้านบน

ยืนยันผลการตัดสินใจ. เพิ่มการยืนยันหลังการประมวลผล เช่น `answers.department.choice` เท่ากับ `billing`, `answers.urgent.noul` มากกว่า `0.9` และ `answers.frustration.score` มากกว่า `1.5` ตอนนี้การเปลี่ยนแปลงพฤติกรรมจะทำให้การทดสอบล้มเหลว แทนที่จะนำตั๋วไปผิดทางอย่างเงียบๆ

จากนั้นสร้างสถานการณ์ที่สำคัญ. บันทึกชุดของสถานะที่มีป้ายกำกับเล็กๆ เป็นสถานการณ์การทดสอบ: คำถามที่สงบ, การขู่ยกเลิกด้วยความโกรธ, และข้อความที่จงใจกำกวมซึ่งเราเตอร์ที่ดีควรจะลังเล ยืนยันความเชื่อมั่นสูงในสองกรณีแรก และยืนยันว่าความเชื่อมั่น _ลดลง_ ต่ำกว่าเกตของคุณในกรณีที่สาม สถานการณ์เดียวนี้เปลี่ยนการปรับแต่งค่าเกณฑ์ให้กลายเป็นหลักฐานแทนการคาดเดา และมันจับความล้มเหลวที่ยากที่สุดที่จะสังเกตเห็นด้วยมือได้: มีคนเปลี่ยนคำอธิบายเกณฑ์, ทุกการตอบสนองยังคงถูกต้อง, และการกำหนดเส้นทางก็เปลี่ยนไปอย่างเงียบๆ รันมันใน CI แล้วการเขียนใหม่ก็จะทำให้บิลด์ล้มเหลว

จำลองโครงสร้างการตอบกลับ เพื่อให้การทำงานของส่วนหน้าไม่สิ้นเปลืองโทเค็น เนื่องจากอ็อบเจกต์ `answers` ถูกประกาศไว้ก่อนคำขอ การจำลองและการตอบกลับจริงจึงไม่สามารถแตกต่างกันได้ ดาวน์โหลด Apidog เพื่อตั้งค่านี้; แผนฟรีครอบคลุมทีมสี่คน

ห้าเวิร์กโฟลว์ที่เลเยอร์การตัดสินใจคุ้มค่าต่อการลงทุน

คำถามที่พบบ่อย

ฉันยังคงต้องการโมเดลภาษาอยู่หรือไม่? ใช่ Jev ไม่สามารถเขียนคำตอบ, สรุป, หรือโค้ดได้ มันจะตัดสินใจว่าระบบใดควรทำ และมันสามารถประเมินฉบับร่างหลังจากนั้นเทียบกับเกณฑ์ที่ชัดเจน เช่น การปฏิบัติตามนโยบาย หรือว่าคำตอบมีการให้คำมั่นสัญญาที่คุณไม่ได้ทำไว้หรือไม่

สิ่งนี้แตกต่างจาก JSON mode หรือ structured outputs อย่างไร? Structured outputs จะจำกัดรูปแบบของโมเดลข้อความ; โมเดลยังคงสร้างโทเค็นและยังคงสามารถยืนยันสิ่งที่ไม่เป็นจริงในรูปแบบที่ถูกต้องได้ Jev จะคืนค่าการกระจายความน่าจะเป็นเหนือชุดคำตอบที่คุณกำหนด ดังนั้นความไม่แน่นอนจึงเป็นฟิลด์หลัก คำอธิบายของเราเกี่ยวกับ structured outputs ของ OpenAI ครอบคลุมอีกด้านของการเปรียบเทียบนั้น

ฉันจะเข้าถึงได้อย่างไร? Jev อยู่ในช่วงเข้าถึงล่วงหน้าพร้อมรายชื่อรอ ดังนั้นจึงยังไม่ใช่บริการแบบ self-service TypeSafe จะนำนักพัฒนาออกจากรายชื่อรอเป็นชุดๆ และคุณจะลงชื่อเข้าใช้ที่ console.typesafe.ai เมื่อคุณได้รับสิทธิ์ นอกจากนี้ยังสามารถใช้งานได้ผ่าน Vercel AI Gateway ในชื่อ `typesafe-ai/jev` โดยใช้ `experimental_evaluate` ใน AI SDK 7 ซึ่งเป็น SDK-only และไม่ได้เปิดเผยบนเอนด์พอยต์ที่เข้ากันได้กับ OpenAI คู่มือของเราเกี่ยวกับ การรับ Jev API key มีรายละเอียดคำขอและ SDK

ฉันสามารถรันสิ่งที่คล้ายกันนี้บนเครื่องของฉันได้หรือไม่? มีหลายโครงการที่สร้างบางส่วนของแนวคิดนี้ขึ้นมาใหม่ด้วย constrained decoding เหนือน้ำหนักแบบเปิด เราได้เปรียบเทียบโครงการเหล่านี้ใน OpenJev และทางเลือก Jev แบบโอเพนซอร์ส รวมถึงความแม่นยำของแต่ละโครงการต่อความเชื่อมั่นที่ปรับเทียบแล้ว

สิ่งที่คุณจะได้รับจากสิ่งนี้

Jev ไม่ใช่โมเดลที่จะมาแทนที่โมเดลอื่นๆ ของคุณ มันคือเลเยอร์ที่ตัดสินใจว่าเมื่อไหร่ ที่ไหน และควรจะรันโมเดลเหล่านั้นหรือไม่ สร้างมันด้วยวิธีนี้: state ที่สะอาดหนึ่งเดียว, คำถามเชิงอะตอมที่มีเกณฑ์ชัดเจน, การประเมินแบบขนาน, และเกตความเชื่อมั่นที่อยู่หน้ารายการการกระทำทุกอย่าง จากนั้นพิสูจน์ว่าเกตทำงานได้ด้วยสถานการณ์ที่บันทึกไว้ใน Apidog ก่อนที่จะกำหนดเส้นทางตั๋วจริงแม้แต่ใบเดียว

button

ฝึกการออกแบบ API แบบ Design-first ใน Apidog

ค้นพบวิธีที่ง่ายขึ้นในการสร้างและใช้ API