Source: https://ailoot.ai/docs/th/api/systemone/
Canonical: https://ailoot.ai/docs/th/api/systemone/
Language: th

[API](https://ailoot.ai/docs/th/) 

# Jev — โมเดลสำหรับการตัดสินใจ

[Markdown](https://ailoot.ai/docs/th/api/systemone/index.md)

Jev โมเดลสำหรับการตัดสินใจจาก TypeSafe ตอบคำถามเกี่ยวกับข้อความหรือ JSON ด้วยผลลัพธ์ที่ระบุชนิด: เลือกตัวเลือก ให้คะแนนตามสเกล หรือ “ใช่/ไม่ใช่” พร้อมค่าความน่าจะเป็น ไม่ใช่แชตหรือการสร้างข้อความ

POST`https://api.ailoot.ai/v1/systemone`

Jev — โมเดลสำหรับการตัดสินใจ

```bash
curl https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "ช่วยด้วย! การจ่ายเงินให้ฉันไม่สำเร็จมา 3 วันแล้ว",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "ข้อความนี้สื่อถึงความเร่งด่วนหรือไม่?"
      }
    }
  }' 
```

```python
import json, os, urllib.request

body = {
    "model": "jev-latest",
    "state": "ช่วยด้วย! การจ่ายเงินให้ฉันไม่สำเร็จมา 3 วันแล้ว",
    "questions": {
        "is_urgent": {"type": "noul", "instructions": "ข้อความนี้สื่อถึงความเร่งด่วนหรือไม่?"},
    },
}
req = urllib.request.Request(
    "https://api.ailoot.ai/v1/systemone",
    data=json.dumps(body).encode(),
    headers={"Authorization": "Bearer " + os.environ["AILOOT_API_KEY"],
             "Content-Type": "application/json"},
)
with urllib.request.urlopen(req, timeout=60) as resp:
    result = json.load(resp)
print(result["answers"]["is_urgent"]["noul"])  # 0.95
```

```js
const resp = await fetch("https://api.ailoot.ai/v1/systemone", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.AILOOT_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "jev-latest",
    state: "ช่วยด้วย! การจ่ายเงินให้ฉันไม่สำเร็จมา 3 วันแล้ว",
    questions: {
      is_urgent: { type: "noul", instructions: "ข้อความนี้สื่อถึงความเร่งด่วนหรือไม่?" },
    },
  }),
});
const result = await resp.json();
if (!resp.ok) throw new Error(`${resp.status} ${JSON.stringify(result)}`);
console.log(result.answers.is_urgent.noul); // 0.95
```

200 OK

```json
{
  "model": "jev-1.13.0",
  "answers": {
    "is_urgent": {
      "type": "noul",
      "noul": 0.95
    }
  },
  "usage": { "input_tokens": 296, "output_tokens": 20 }
}
```

Jev เป็นโมเดลสำหรับการตัดสินใจระดับ System One จาก TypeSafe โมเดลไม่เขียนข้อความหรือสนทนา: คุณส่ง **สถานะ** (`state`) — ข้อความหรือ JSON — พร้อมชุด **คำถาม**, แล้วรับค่าที่ระบุชนิดพร้อมความน่าจะเป็น โค้ดจึงใช้ผลลัพธ์แยกเงื่อนไข จัดเรียง และกำหนดเส้นทางได้ทันที โดยไม่ต้องแยกวิเคราะห์ข้อความอิสระ

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

| หัวข้อ | สรุป |
| --- | --- |
| โมเดล | `jev-latest` — นามแฝงของ Jev เวอร์ชันเสถียรล่าสุด; [รายละเอียดในแค็ตตาล็อก](https://ailoot.ai/models/th/#m=jev-latest) |
| เมธอด | `POST /v1/systemone`. ไม่ใช่แชต: รูปแบบ OpenAI, Anthropic และ Gemini ใช้กับ Jev ไม่ได้ คำตอบจะส่งมาครบใน JSON เดียว |
| อินพุตที่รับ | เฉพาะข้อความ: สตริง ออบเจ็กต์ JSON หรืออาร์เรย์ของข้อความ ให้แปลงภาพ เสียง และวิดีโอเป็นข้อความก่อน |
| บริบท | 64K โทเค็นต่อคำขอ — รวม state และคำถามทั้งหมด; state รวมกับคำถามที่ยาวที่สุด — สูงสุด 32K |
| ภาษา | ตามข้อมูลของ TypeSafe โมเดลให้ความแม่นยำสูงสุดกับภาษาอังกฤษ โดยรับภาษาอื่นได้แต่ความแม่นยำต่ำกว่า จึงควรทดสอบด้วยข้อมูลของคุณเอง |
| ราคา | อินพุต $0.084 ต่อ 1 ล้านโทเค็น ไม่คิดค่าบริการขาออก |

## [](https://ailoot.ai/docs/th/api/systemone/#request)คำขอ

### การยืนยันสิทธิ์

| พารามิเตอร์ | ชนิด | จำเป็น | คำอธิบาย |
| --- | --- | --- | --- |
| `Authorization` | header | จำเป็น | คีย์ Ailoot ในรูปแบบ `Bearer sk-…`. |

### เนื้อหาคำขอ

| พารามิเตอร์ | ชนิด | จำเป็น | คำอธิบาย |
| --- | --- | --- | --- |
| `model` | string | จำเป็น | `jev-latest`. |
| `state` | string \| object \| array | จำเป็น | สิ่งที่ต้องการประเมิน: สตริงข้อความหรือ JSON — คำร้องของลูกค้า ระเบียนจากฐานข้อมูล บทสนทนา หรือสถานะปัจจุบันของแอปพลิเคชัน ออบเจ็กต์ที่ใช้ชื่อฟิลด์ชัดเจนมักสะดวกกว่าสตริงเดียว |
| `questions` | object | จำเป็น | คำถาม คุณกำหนดคีย์เองและจะได้รับคำตอบภายใต้คีย์เดิม คีย์ไม่มีผลต่อคำตอบ — ตัวคำถามระบุใน `instructions`. |
| `questions.*.type` | string | จำเป็น | `noul`, `choice` หรือ `score` — ดูด้านล่าง |
| `questions.*.instructions` | string \| object \| array | จำเป็น | ตัวคำถาม หากคำถามยาวและมีข้อมูล สามารถส่งเป็นออบเจ็กต์ได้: ใส่คำถามในฟิลด์หนึ่งและข้อมูลในฟิลด์อื่น โดยอ้างถึงชื่อฟิลด์ด้วยเครื่องหมาย backtick |
| `questions.*.criteria` | object \| array |  | ตัวเลือกคำตอบ ซึ่งต่างกันตามแต่ละชนิด: คำอธิบาย “ใช่” และ “ไม่ใช่” สำหรับ noul (ไม่จำเป็น), พจนานุกรมตัวเลือกสำหรับ choice และรายการระดับที่เรียงลำดับสำหรับ score |

## [](https://ailoot.ai/docs/th/api/systemone/#question-types)ชนิดคำถาม

| ชนิด | ถามอะไร | ส่งกลับอะไร |
| --- | --- | --- |
| `noul` | ข้อความที่ระบุเป็นจริงหรือไม่: ใช่หรือไม่ใช่ | `noul` — ความน่าจะเป็นของ “ใช่” ตั้งแต่ 0 ถึง 1 |
| `choice` | ตัวเลือกใดในชุดที่ระบุเหมาะสม | `choice`, `probabilities`, `confidence` |
| `score` | state อยู่ตรงไหนในสเกลระดับของคุณ | `score`, `legend`, `probabilities`, `confidence` |

ใช้คำถามหลายชนิดร่วมกันในคำขอเดียวได้

### noul — ใช่หรือไม่ใช่

ฟิลด์ `criteria` ไม่จำเป็น: สามารถใช้อธิบายว่า “ใช่” (`true`) และ “ไม่ใช่” (`false`) หมายถึงอะไร คำตอบ `noul` — ตัวเลขตั้งแต่ 0 (ไม่ใช่) ถึง 1 (ใช่)

```json
"is_urgent": {
  "type": "noul",
  "instructions": "ข้อความนี้สื่อถึงความเร่งด่วนหรือไม่?",
  "criteria": {
    "true": "ระบุชัดเจนว่าต้องดำเนินการให้ทันเวลา",
    "false": "ไม่ได้แสดงความเร่งด่วน"
  }
}
```

```json
"is_urgent": {
  "type": "noul",
  "noul": 0.95
}
```

### choice — เลือกตัวเลือก

`criteria` — พจนานุกรม “ตัวเลือก → คำอธิบาย”; หากไม่ต้องการคำอธิบาย ให้ระบุ `null`. สูงสุด 255 ตัวเลือก ในคำตอบ `choice` — ตัวเลือกที่มีความน่าจะเป็นสูงสุด, `probabilities` — ความน่าจะเป็นของแต่ละตัวเลือก (รวมกันเป็น 1), `confidence` — ความมั่นใจตั้งแต่ 0 ถึง 1

```json
"department": {
  "type": "choice",
  "instructions": "ทีมใดควรดูแลเรื่องนี้?",
  "criteria": {
    "billing": "การชำระเงิน การออกใบแจ้งหนี้ การคืนเงิน",
    "technical": "บั๊ก ระบบขัดข้อง การเชื่อมต่อระบบ",
    "sales": "ราคา การอัปเกรด ลูกค้าใหม่"
  }
}
```

```json
"department": {
  "type": "choice",
  "choice": "billing",
  "probabilities": { "billing": 0.88, "technical": 0.12, "sales": 0.0 },
  "confidence": 0.81
}
```

### score — ให้คะแนนตามสเกล

`criteria` — ระดับเรียงจากต่ำไปสูง ไม่เกิน 10 ระดับ (TypeSafe แนะนำอย่างน้อยสองระดับ) ในคำตอบ `score` — ค่าที่ถ่วงน้ำหนักตามความน่าจะเป็นของแต่ละระดับ (อาจอยู่ระหว่างระดับ), `legend` — หมายเลขระดับและคำอธิบายระดับนั้น, `probabilities` และ `confidence`. ตามข้อมูลของ TypeSafe, `score` เหมาะสำหรับเทียบกับเกณฑ์ แต่ไม่เหมาะใช้เป็นตัวเลขที่แม่นยำระหว่างระดับ

```json
"frustration": {
  "type": "score",
  "instructions": "ลูกค้ารู้สึกหงุดหงิดมากแค่ไหน?",
  "criteria": ["สงบ", "หงุดหงิด", "โกรธมาก"]
}
```

```json
"frustration": {
  "type": "score",
  "score": 1.05,
  "legend": { "0": "สงบ", "1": "หงุดหงิด", "2": "โกรธมาก" },
  "probabilities": { "0": 0.0, "1": 0.95, "2": 0.05 },
  "confidence": 0.92
}
```

## [](https://ailoot.ai/docs/th/api/systemone/#response)คำตอบ

| พารามิเตอร์ | ชนิด | จำเป็น | คำอธิบาย |
| --- | --- | --- | --- |
| `model` | string |  | เวอร์ชันของโมเดลที่ตอบ นามแฝง jev-latest จะเปลี่ยนไปใช้เวอร์ชันใหม่เมื่อเวลาผ่านไป หากคุณตั้งเกณฑ์ `confidence` สำหรับเวอร์ชันใดไว้ ให้ตรวจ⁠สอบฟิลด์นี้ |
| `answers` | object |  | คำตอบหนึ่งรายการต่อคำถาม ภายใต้คีย์เดิม แต่ละคำตอบมี `type`, สำหรับ choice และ score ยังมี `confidence`. |
| `usage` | object |  | `input_tokens` และ `output_tokens`. คิดค่าบริการเฉพาะโทเคนขาเข้าเท่านั้น |

`confidence` เหมาะสำหรับใช้เป็นเกณฑ์ตัดสิน: หากคำตอบมีความมั่นใจสูง ให้ดำเนินการโดยอัตโนมัติ หากไม่มั่นใจ ให้ส่งให้คนหรือโมเดลขนาดใหญ่ตรวจ⁠สอบ คำตอบบอกว่าควรเลือกอะไร ส่วน `confidence` — บอกว่าควรดำเนินการหรือไม่

## [](https://ailoot.ai/docs/th/api/systemone/#many-questions)หลายคำถามในคำขอเดียว

ส่งคำถามทั้งหมดเกี่ยวกับ state เดียวกันในคำขอเดียว: ระบบประเมินคำถามพร้อมกัน และส่ง state เพียงครั้งเดียว ตามข้อมูลของ TypeSafe ในตัวอย่างที่มี 13 คำถาม การส่งรวมเป็นคำขอเดียวถูกกว่า 12,2 เท่าและเร็วกว่า 10 เท่าเมื่อเทียบกับการส่ง 13 คำขอแยกกันตามลำดับ โดยได้คำตอบเหมือนกัน

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

```json
{
  "model": "jev-latest",
  "state": "ช่วยด้วย! การจ่ายเงินให้ฉันไม่สำเร็จมา 3 วันแล้ว",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "ทีมใดควรดูแลเรื่องนี้?",
      "criteria": {
        "billing": "การชำระเงิน การออกใบแจ้งหนี้ การคืนเงิน",
        "technical": "บั๊ก ระบบขัดข้อง การเชื่อมต่อระบบ",
        "sales": "ราคา การอัปเกรด ลูกค้าใหม่"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "ลูกค้ารู้สึกหงุดหงิดมากแค่ไหน?",
      "criteria": ["สงบ", "หงุดหงิด", "โกรธมาก"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "ข้อความนี้สื่อถึงความเร่งด่วนหรือไม่?"
    }
  }
}
```

## [](https://ailoot.ai/docs/th/api/systemone/#use-cases)กรณีที่เหมาะสม

- **การกำหนดเส้นทาง** ส่งเรื่องไปยังแผนกที่เหมาะสม และส่งคำขอไปยังตัวประมวลผลที่เหมาะสม ไม่ว่าจะเป็นโค้ดง่าย ๆ โมเดลขนาดใหญ่ หรือคน
- **การจัดหมวดหมู่และลำดับความสำคัญ** ประเมินความเร่งด่วน อารมณ์ของข้อความ และความเสี่ยงตามมาตราส่วน โดยกำหนดเกณฑ์ตัดสินในโค้ด
- **การกลั่นกรองเนื้อหาและการตรวจ⁠สอบ** ตรวจ⁠สอบว่าข้อความละเมิดกฎหรือไม่ แหล่งข้อมูลรองรับข้อความอ้างอิงหรือไม่ หรือเอกสารมีคำตอบสำหรับคำถามหรือไม่ ก่อนส่งข้อความไปยังขั้นตอนถัดไป
- **การให้คะแนนและจัดอันดับ** ประเมินเอกสาร ผู้สมัคร หรือข้อความที่ค้นพบตามเกณฑ์ของคุณ แล้วตัดสินใจในโค้ดว่าจะส่งอะไรไปยังขั้นตอนถัดไป
- **ใช้แทนคำสั่ง “ส่งกลับเป็น JSON” ที่เปราะบาง** การเรียกที่รับประกันว่าจะส่งกลับค่าแบบมีชนิดข้อมูลตั้งแต่ต้น แทนข้อความที่ต้องนำมาแยกวิเคราะห์เอง

## [](https://ailoot.ai/docs/th/api/systemone/#not-for)กรณีที่ไม่เหมาะสม

- **แชต การตอบผู้ใช้ และการสร้างข้อความหรือโค้ด** Jev ไม่ได้สร้างข้อความ หากต้องการสร้างข้อความ ให้ใช้ [โมเดลข้อความ](https://ailoot.ai/models/th/?kind=text).
- **ใช้เป็นโมเดลสำหรับ Claude Code, Cursor และเอเจนต์อื่น ๆ** ไม่สามารถใช้ jev-latest แทนโมเดลของเอเจนต์ได้ เพราะเอเจนต์ต้องการโมเดลที่สร้างข้อความและเรียกใช้เครื่องมือได้ แต่สามารถเรียก Jev จากโค้ดที่เอเจนต์เขียนให้คุณได้
- **เลขคณิต การนับ และการเปรียบเทียบวันที่** ตามข้อมูลของ TypeSafe งานเหล่านี้ทำในโค้ดได้อย่างเชื่อถือได้มากกว่า และควรถามโมเดลเฉพาะส่วนที่ต้องตีความ เช่น ใช้ choice ดึงส่วนต่าง ๆ ของวันที่
- **รูปภาพ เสียง และวิดีโอ** โมเดลรับเฉพาะข้อความ จึงต้องแปลงข้อมูลเหล่านี้เป็นข้อความไว้ก่อน

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

## [](https://ailoot.ai/docs/th/api/systemone/#price)ราคา

คิดค่าบริการเฉพาะโทเคนขาเข้า — ฟิลด์ `usage.input_tokens` ในคำตอบ: **$0.084 ต่อ 1 ล้าน**. โทเคนขาออกไม่มีค่าใช้จ่าย

คำขอในตัวอย่างบนหน้านี้ (296 โทเคนขาเข้า) มีค่าใช้จ่ายน้อยกว่า $0.0001

ก่อนส่งคำขอ Ailoot จะกันเงินจากยอดคงเหลือไว้ และหลังได้รับคำตอบจะหักเงินเพียงครั้งเดียวตามการใช้งานจริง — [วิธีการทำงาน](https://ailoot.ai/docs/th/billing/reserve/).

## [](https://ailoot.ai/docs/th/api/systemone/#limits)ขีดจำกัด

| หัวข้อ | ขีดจำกัด |
| --- | --- |
| คำขอทั้งหมด: state และคำถามทั้งหมด | 64K โทเคน |
| state รวมกับคำถามที่ยาวที่สุด | 32K โทเคน |
| จำนวนตัวเลือกใน choice เดียว | ไม่เกิน 255 |
| จำนวนระดับใน score เดียว | ตั้งแต่ 2 ถึง 10 |
| อินพุต | ข้อความเท่านั้น: สตริง ออบเจ็กต์ JSON หรืออาร์เรย์ของข้อความ |

ขีดจำกัดของโมเดลอ้างอิงข้อมูลจาก TypeSafe ข้อจำกัดของคีย์และยอดคงเหลือของคุณมีผลเช่นเดียวกับโมเดลอื่น ๆ ใน Ailoot: [ข้อผิดพลาดและขีดจำกัด](https://ailoot.ai/docs/th/errors/).

## [](https://ailoot.ai/docs/th/api/systemone/#errors)ข้อผิดพลาด

ข้อผิดพลาดส่งกลับในรูปแบบมาตรฐานของ Ailoot API: รหัส ข้อความที่เข้าใจได้ และ Request ID ข้อผิดพลาดที่พบบ่อยสำหรับเมธอดนี้ ได้แก่:

| รหัส | เมื่อใด | สิ่งที่ต้องทำ |
| --- | --- | --- |
| **400** `invalid_request` | เนื้อหาคำขอไม่ผ่านการตรวจ⁠สอบ: ไม่มี state, model หรือ questions, มี type ที่ไม่รู้จัก, choice มีตัวเลือกมากกว่า 255 หรือ score มีมากกว่า 10 ระดับ | แก้ไขคำขอตามข้อความข้อผิดพลาด หากไม่แก้ไข คำขอจะไม่ผ่านการตรวจ⁠สอบอีก |
| **400** `context_length_exceeded` | state และคำถามรวมกันยาวเกินขีดจำกัดของโมเดล | กรอง state ในโค้ดให้เหลือเฉพาะข้อมูลที่จำเป็นสำหรับคำถาม |
| **401** `invalid_api_key` | ไม่มีคีย์หรือคีย์ไม่ถูกต้อง | ส่งคีย์ในเฮดเดอร์ Authorization |
| **402** `insufficient_balance` | ยอดคงเหลือที่ใช้ได้ไม่เพียงพอสำหรับกันเงิน | เติมเงินเข้ายอดคงเหลือ |
| **404** `model_not_found`, `unsupported_endpoint` | ID ไม่ถูกต้อง หรือเรียกโมเดลด้วยเมธอดที่ไม่ตรง เช่น ผ่าน /v1/chat/completions | เรียก jev-latest ผ่าน POST /v1/systemone เท่านั้น |
| **429** `rate_limit_exceeded` | มีคำขอมากเกินไป | รอตามจำนวนวินาทีที่ระบุในเฮดเดอร์ Retry-After แล้วลองใหม่ |
| **503** `model_overloaded`, `model_unavailable` | โมเดลมีภาระงานสูงเกินไปหรือไม่พร้อมใช้งานชั่วคราว | หาก X-Should-Retry: true ให้ลองใหม่หลังจากผ่านไปตามจำนวนวินาทีใน Retry-After หากเป็น false ให้ตรวจ⁠สอบ Request ID ในประวัติก่อน |
| **504** `model_timeout` | โมเดลไม่ตอบกลับภายในเวลาที่กำหนด | อย่าส่งคำขอซ้ำจนกว่าจะตรวจ⁠สอบ Request ID ในประวัติแล้ว |

ดูรายการรหัสทั้งหมดได้ที่หน้า [ข้อผิดพลาดและขีดจำกัด](https://ailoot.ai/docs/th/errors/).

ยังมีคำถามอยู่ใช่ไหม ส่ง Request ID และรายละเอียดมาให้เรา เราจะช่วยตรวจ⁠สอบ[ติดต่อฝ่ายสนับสนุน](mailto:support@ailoot.ai)

## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท





Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง





บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.





Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
