API ของ TypeSafe
เรียก POST /v1/systemone หรือติดตั้ง SDK อย่างเป็นทางการ
ประเมิน state เทียบกับแมปคำถามแบบมีชนิด แล้วรับคำตอบแบบมีโครงสร้างแยกตามคำถาม จุดปลายทางสำหรับประเมินคือ POST https://api.typesafe.ai/v1/systemone โดยใช้คีย์ API แบบ Bearer ไคลเอนต์ทางการคือ typesafe-sdk สำหรับ Python 3.10+ และ @typesafe-ai/sdk สำหรับ Node.js 20+ หลังเข้าสู่ระบบ คุณจะพบสนามทดลองและแดชบอร์ดคีย์ที่ console.typesafe.ai รหัสคำถามจะอยู่ในโค้ดของคุณและไม่ถูกส่งไปยังโมเดล
จุดปลายทาง HTTP สำหรับประเมิน
เนื้อหาคำขอมีฟิลด์ระดับบนสุดสามฟิลด์ ต้องระบุ state ซึ่งเป็นได้ทั้งสตริง ออบเจ็กต์ หรืออาร์เรย์ข้อความ ต้องระบุ model เช่นกัน โดยตัวอย่างในเอกสารใช้ jev-latest ส่วน questions คือแมปของออบเจ็กต์ Question แบบมีชนิด คุณกำหนดคีย์แต่ละตัวเอง และคำตอบที่ตรงกันจะส่งกลับใต้ id เดิม คีย์นี้จะไม่ถูกส่งไปยังโมเดลเบื้องหลังและไม่ใช้ในการอนุมาน
Noul แบบขั้นต่ำมีหน้าตาเช่น {"state": "ช่วยด้วย! การจ่ายเงินของฉันล้มเหลวมา 3 วันแล้ว", "model": "jev-latest", "questions": {"is_urgent": {"type": "noul", "instructions": "ข้อความนี้สื่อถึงความเร่งด่วนหรือไม่?"}}} Choice จะเพิ่มแมป criteria จากชื่อทางเลือกไปยังคำอธิบาย ส่วน Score จะเพิ่มอาร์เรย์ criteria ของระดับที่เรียงลำดับแล้ว ทั้งสามชนิดใช้ type และ instructions ร่วมกัน แต่มีรูปแบบ criteria เฉพาะของตัวเอง
รับคีย์ API จาก https://console.typesafe.ai/settings/keys. หากเรียก HTTP โดยตรง ให้จัดการ 429 ตาม retry-after ขีดจำกัดอัตราของ Jev 1.13 คือ 250,000 โทเค็นต่อวินาทีและ 1,200 คำขอต่อนาที ซึ่งอาจเปลี่ยนได้โดยไม่แจ้งล่วงหน้า SDK จะลองใหม่พร้อมเพิ่มช่วงหน่วงโดยอัตโนมัติ หากต้องการดูรายการโมเดล ให้ใช้ GET /v1/models พร้อมโทเค็น Bearer เดิม
TypeSafe Python ชุดพัฒนาซอฟต์แวร์
- package
- typesafe-sdk
- install
- pip install typesafe-sdk
- python
- >=3.10
- โมเดลเริ่มต้น
- jev-latest
ชุดเครื่องมือพัฒนาซอฟต์แวร์สำหรับ TypeSafe JavaScript
- package
- @typesafe-ai/sdk
- install
- npm install @typesafe-ai/sdk
- runtime
- Node.js 20+
- repo
- https://github.com/typesafe-ai/typesafe-sdk-js
SDK อย่างเป็นทางการ
Python: pip install typesafe-sdk นำเข้า TypeSafeClient จาก typesafe_sdk แล้วใช้ With TypeSafeClient() as client: client.system_one(state, questions) ตัวสร้างอย่าง Noul, Choice และ Score อยู่ในแพ็กเกจ จึงไม่ต้องเขียนฟิลด์ชนิดของ JSON เอง โมเดลเริ่มต้นคือ jev-latest และต้องใช้ Python 3.10 ขึ้นไป
JavaScript: npm install @typesafe-ai/sdk นำเข้า { TypeSafeClient } จาก "@typesafe-ai/sdk" ไคลเอนต์จะเชื่อมต่อปลายทางเดียวกัน รันไทม์คือ Node.js 20+ ที่เก็บโค้ดอยู่ที่ https://github.com/typesafe-ai/typesafe-sdk-js. SDK ทั้งสองมี models.list() สำหรับดูแค็ตตาล็อกชื่อแทน
สนามทดลองที่ https://console.typesafe.ai/playground เป็นคอนโซลที่ต้องเข้าสู่ระบบ ไม่ใช่วิดเจ็ตสาธารณะ วางข้อความเป็น state เพิ่ม Noul เช่น "ข้อความนี้แสดงความเร่งด่วนหรือไม่?" แล้วรวมคำถามอื่นไว้ในการเรียกครั้งเดียว นี่คือวิธีเร็วที่สุดในการลองสัมผัสการประเมินแบบขนานก่อนเชื่อมคีย์ระบบจริง
คำสั่ง curl แรก
ใช้ curl -X POST https://api.typesafe.ai/v1/systemone พร้อม Authorization: Bearer $TYPESAFE_API_KEY และ Content-Type: application/json เนื้อหาคำขอใช้ state เป็นข้อความแจ้ง Stripe-connect ล้มเหลว, model เป็น jev-latest และ questions.urgency เป็น type noul พร้อม instructions ว่า "ข้อความนี้แสดงความเร่งด่วนหรือไม่?" นี่คือตัวอย่างเริ่มต้นฉบับย่อ จากนั้นเพิ่ม Choice ชื่อ department พร้อม criteria สำหรับ billing / technical / sales และเพิ่ม Score ชื่อ frustration พร้อมระดับที่เรียงลำดับ โดยไม่ต้องส่งคำขอรอบสอง
เมื่อมีบางอย่างล้มเหลว ให้อ่าน jaggedness ก่อนเพิ่มคำอธิบายในคำสั่ง การอ่านตามตัวอักษรต้องระบุเงื่อนไขที่แน่นอนในคำสั่งและเกณฑ์ งานคณิตศาสตร์ควรนับด้วยโค้ด ส่วนงานสร้างเนื้อหาต้องใช้โมเดลอื่น API ยังส่งคืนเพย์โหลดที่มีชนิดข้อมูลได้ หากสั่งให้ Jev เขียนย่อหน้าผ่าน Choice ที่เชื่อมต่อกัน แต่จะช้าและได้ผลลัพธ์ไม่ดี ใช้ regex หรือโมเดลสร้างเนื้อหาเสนอทางเลือก แล้วให้ Jev เลือก
Workers AI ของ Cloudflare แสดง typesafe/jev เป็นชื่อในแคตตาล็อก นั่นเป็นรายการจากบุคคลที่สาม ไม่ใช่สิ่งทดแทน api.typesafe.ai ส่วน Steam ไม่มีแอป Jev ให้เก็บคีย์ไว้ในคอนโซลของ TypeSafe และถือว่า SDK ชุมชนใน Awesome Jev ไม่เป็นทางการ เว้นแต่จะติดตามองค์กร github.com/typesafe-ai
ข้อผิดพลาด การลองใหม่ และรหัส
429 Too Many Requests คือการตอบกลับตามเอกสารเมื่อใช้โทเค็นต่อวินาทีหรือคำขอต่อนาทีเกินขีดจำกัด ให้ทำตาม retry-after โดย SDK ทางการจะเพิ่มช่วงหน่วงให้อยู่แล้ว หากห่อ HTTP เอง อย่ากระหน่ำเรียกจุดปลายทางเมื่อพบ 429 เพราะคุณจะยังติดอยู่ในช่วงจำกัดเดิม
รหัสคำถามมีไว้สำหรับร่องรอยการทำงานของคุณและไม่เข้าสู่การอนุมาน คุณสร้าง item_0 ถึง item_n ในลูปได้และยังรับ Noul อย่างละหนึ่งรายการ คีย์เหล่านี้ต้องไม่ซ้ำกันภายในคำขอ การใช้คีย์ซ้ำจะเขียนทับคำถามในแมปโดยไม่มีการแจ้งเตือน
การยืนยันตัวตนใช้คีย์ API แบบ Bearer TypeSafe จากแดชบอร์ด api.typesafe.ai ไม่มีเซสชันคุกกี้ ให้หมุนเวียนคีย์ในคอนโซล ไม่ใช่ส่งอีเมลมาที่วิกินี้ กำแพงล็อกอินของสนามทดลองเป็นอีกส่วนหนึ่ง เพราะเป็นคอนโซลบนเบราว์เซอร์ ไม่ใช่ HTTP API ทางเลือก
คัดลอก curl เริ่มต้นฉบับย่อมาใช้หนึ่งครั้ง แล้วลบออกจากที่เก็บโค้ดเพื่อเปลี่ยนไปใช้ SDK ซึ่งจัดการการลองใหม่และตัวสร้างแบบมีชนิดให้ ส่วน HTTP ดิบเหมาะกับภาษาที่ยังไม่มีไคลเอนต์ทางการ ทั้งสองวิธียังคงส่งคีย์ Bearer และเนื้อหา JSON เดียวกันไปยัง POST /v1/systemone
GET /v1/models แสดงนามแฝงที่บัญชีของคุณส่งได้ แต่อาจไม่แสดง jev-1.13.0 แม้รหัสดังกล่าวยังใช้กับ POST /v1/systemone ได้ อย่าถือว่ารายการนี้เป็นรายการอนุญาตสำหรับรหัสระบุเวอร์ชัน ให้มองเป็นแคตตาล็อกนามแฝงและเก็บรหัสระบุเวอร์ชันไว้ในการกำหนดค่าของคุณเอง
ห้ามคอมมิต TYPESAFE_API_KEY เด็ดขาด หากรั่วไหลให้หมุนเวียนคีย์ในแดชบอร์ด contact@jevai.wiki ไม่ใช่กล่องรับเรื่องสำหรับความลับที่รั่วไหล โปรดใช้ช่องทางของ TypeSafe เอง
Python 3.10 และ Node.js 20 คือเวอร์ชันขั้นต่ำตามเอกสาร รันไทม์ที่เก่ากว่านี้อยู่นอกขอบเขตไคลเอนต์ทางการ
แหล่งที่มา