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

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

# Jev — model keputusan

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

Model keputusan Jev daripada TypeSafe menjawab soalan berjenis tentang teks atau JSON: memilih pilihan, menilai pada skala atau memberikan jawapan “ya/tidak” dengan kebarangkalian. Ia bukan sembang atau penjanaan teks.

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

Jev — model keputusan

```bash
curl https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "jev-latest",
    "state": "Tolong! Pembayaran keluar saya gagal sejak 3 hari lalu.",
    "questions": {
      "is_urgent": {
        "type": "noul",
        "instructions": "Adakah ini menunjukkan kesegeraan?"
      }
    }
  }' 
```

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

body = {
    "model": "jev-latest",
    "state": "Tolong! Pembayaran keluar saya gagal sejak 3 hari lalu.",
    "questions": {
        "is_urgent": {"type": "noul", "instructions": "Adakah ini menunjukkan kesegeraan?"},
    },
}
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: "Tolong! Pembayaran keluar saya gagal sejak 3 hari lalu.",
    questions: {
      is_urgent: { type: "noul", instructions: "Adakah ini menunjukkan kesegeraan?" },
    },
  }),
});
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 ialah model keputusan kelas System One daripada TypeSafe. Ia tidak menulis teks atau berbual: anda menghantar **keadaan** (`state`) — teks atau JSON — dan sekumpulan **soalan**, lalu menerima nilai berjenis dengan kebarangkalian. Berdasarkannya, kod terus memilih cabang, mengisih dan menghalakan, tanpa perlu menghuraikan teks bebas.

Semua soalan dalam satu permintaan dinilai secara serentak dan bebas antara satu sama lain, terhadap nilai yang sama bagi `state`. Menurut TypeSafe, menambah soalan hampir tidak mengubah masa respons dan soalan tidak mengganggu satu sama lain.

| Perkara | Ringkasan |
| --- | --- |
| Model | `jev-latest` — alias versi stabil Jev yang terkini; [kad dalam katalog](https://ailoot.ai/models/ms/#m=jev-latest) |
| Kaedah | `POST /v1/systemone`. Ia bukan sembang: format OpenAI, Anthropic dan Gemini tidak sesuai untuk Jev. Respons diterima sepenuhnya sebagai satu JSON |
| Input yang diterima | Hanya teks: rentetan, objek JSON atau tatasusunan teks. Tukarkan imej, audio dan video kepada teks terlebih dahulu |
| Konteks | 64K token setiap permintaan — state dan semua soalan bersama-sama; state bersama soalan paling panjang — sehingga 32K |
| Bahasa | Menurut TypeSafe, model paling tepat dalam bahasa Inggeris; bahasa lain diterima tetapi ketepatannya lebih rendah — uji dengan data anda sendiri |
| Harga | Input $0.084 bagi setiap 1 juta token, output percuma |

## [](https://ailoot.ai/docs/ms/api/systemone/#request)Permintaan

### Pengesahan

| Parameter | Jenis | Wajib | Penerangan |
| --- | --- | --- | --- |
| `Authorization` | header | wajib | Kunci Ailoot dalam bentuk `Bearer sk-…`. |

### Badan permintaan

| Parameter | Jenis | Wajib | Penerangan |
| --- | --- | --- | --- |
| `model` | string | wajib | `jev-latest`. |
| `state` | string \| object \| array | wajib | Perkara yang dinilai: rentetan teks atau JSON — pertanyaan pelanggan, rekod pangkalan data, perbualan atau keadaan semasa aplikasi anda. Objek dengan nama medan yang jelas biasanya lebih mudah digunakan daripada satu rentetan. |
| `questions` | object | wajib | Soalan. Anda memilih kuncinya, dan jawapan diterima di bawah kunci yang sama; kunci tidak mempengaruhi jawapan — soalan sebenar dinyatakan dalam `instructions`. |
| `questions.*.type` | string | wajib | `noul`, `choice` atau `score` — lihat di bawah. |
| `questions.*.instructions` | string \| object \| array | wajib | Soalan itu sendiri. Soalan panjang dengan data boleh dihantar sebagai objek: soalan dalam satu medan dan data dalam medan lain; rujuk medan mengikut nama dalam tanda aksen grave. |
| `questions.*.criteria` | object \| array |  | Pilihan jawapan berbeza mengikut jenis: penerangan “ya” dan “tidak” untuk noul (pilihan), kamus pilihan untuk choice, senarai tahap tersusun untuk score. |

## [](https://ailoot.ai/docs/ms/api/systemone/#question-types)Jenis soalan

| Jenis | Perkara yang ditanya | Nilai yang dikembalikan |
| --- | --- | --- |
| `noul` | Adakah pernyataan itu benar: ya atau tidak | `noul` — kebarangkalian “ya” dari 0 hingga 1 |
| `choice` | Pilihan yang sesuai daripada pilihan yang diberikan | `choice`, `probabilities`, `confidence` |
| `score` | Kedudukan state pada skala tahap anda | `score`, `legend`, `probabilities`, `confidence` |

Jenis boleh digabungkan dalam satu permintaan.

### noul — ya atau tidak

Medan `criteria` adalah pilihan: anda boleh menerangkan maksud “ya” (`true`) dan “tidak” (`false`). Jawapan `noul` — nombor dari 0 (tidak) hingga 1 (ya).

```json
"is_urgent": {
  "type": "noul",
  "instructions": "Adakah ini menunjukkan kesegeraan?",
  "criteria": {
    "true": "Jelas memerlukan tindakan segera",
    "false": "Tiada kesegeraan dinyatakan"
  }
}
```

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

### choice — pemilihan pilihan

`criteria` — kamus “pilihan → penerangan”; jika penerangan tidak diperlukan, nyatakan `null`. Sehingga 255 pilihan. Dalam respons `choice` — pilihan yang paling berkemungkinan, `probabilities` — kebarangkalian setiap pilihan (jumlahnya 1), `confidence` — tahap keyakinan dari 0 hingga 1.

```json
"department": {
  "type": "choice",
  "instructions": "Pasukan manakah yang patut mengendalikan perkara ini?",
  "criteria": {
    "billing": "Pembayaran, penginvoisan, bayaran balik",
    "technical": "Pepijat, gangguan perkhidmatan, integrasi",
    "sales": "Harga, naik taraf, pelanggan baharu"
  }
}
```

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

### score — penilaian pada skala

`criteria` — tahap daripada yang terendah kepada yang tertinggi, tidak melebihi 10 (TypeSafe mengesyorkan sekurang-kurangnya dua). Dalam respons `score` — nilai berwajaran berdasarkan kebarangkalian tahap (boleh berada di antara tahap), `legend` — nombor tahap dan penerangannya, `probabilities` dan `confidence`. Menurut TypeSafe, `score` sesuai untuk dibandingkan dengan ambang, tetapi bukan untuk mendapatkan nombor tepat di antara tahap.

```json
"frustration": {
  "type": "score",
  "instructions": "Sejauh manakah pelanggan berasa kecewa?",
  "criteria": ["Tenang", "Kecewa", "Sangat marah"]
}
```

```json
"frustration": {
  "type": "score",
  "score": 1.05,
  "legend": { "0": "Tenang", "1": "Kecewa", "2": "Sangat marah" },
  "probabilities": { "0": 0.0, "1": 0.95, "2": 0.05 },
  "confidence": 0.92
}
```

## [](https://ailoot.ai/docs/ms/api/systemone/#response)Respons

| Parameter | Jenis | Wajib | Penerangan |
| --- | --- | --- | --- |
| `model` | string |  | Versi model yang memberikan respons. Alias jev-latest beralih kepada versi baharu dari semasa ke semasa: jika anda telah menetapkan ambang `confidence` untuk versi tertentu, pantau medan ini. |
| `answers` | object |  | Satu jawapan bagi setiap soalan, di bawah kunci yang sama. Setiap jawapan mempunyai `type`, manakala choice dan score turut mempunyai `confidence`. |
| `usage` | object |  | `input_tokens` dan `output_tokens`. Hanya token input dicaj. |

`confidence` boleh digunakan sebagai ambang: jika jawapan meyakinkan, bertindak secara automatik; jika tidak, hantarkannya untuk semakan manusia atau model besar. Jawapan menunjukkan pilihan yang perlu dibuat, manakala `confidence` menunjukkan sama ada tindakan wajar diambil.

## [](https://ailoot.ai/docs/ms/api/systemone/#many-questions)Beberapa soalan dalam satu permintaan

Ajukan semua soalan tentang satu state dalam satu permintaan: soalan dinilai secara serentak dan state dihantar sekali sahaja. Menurut TypeSafe, dalam contoh mereka dengan 13 soalan, satu permintaan gabungan adalah 12,2 kali lebih murah dan 10 kali lebih pantas berbanding 13 permintaan berasingan yang dihantar berturutan, dengan jawapan yang sama.

Lebih baik pecahkan pertimbangan rumit kepada soalan mudah dan gabungkan jawapan dalam kod: contohnya, gantikan “nilai permohonan” dengan penilaian berasingan tentang pasaran, kebolehlaksanaan dan perbezaan daripada pesaing. Dengan itu, pemberat diubah dalam kod, bukan dalam teks soalan.

```json
{
  "model": "jev-latest",
  "state": "Tolong! Pembayaran keluar saya gagal sejak 3 hari lalu.",
  "questions": {
    "department": {
      "type": "choice",
      "instructions": "Pasukan manakah yang patut mengendalikan perkara ini?",
      "criteria": {
        "billing": "Pembayaran, penginvoisan, bayaran balik",
        "technical": "Pepijat, gangguan perkhidmatan, integrasi",
        "sales": "Harga, naik taraf, pelanggan baharu"
      }
    },
    "frustration": {
      "type": "score",
      "instructions": "Sejauh manakah pelanggan berasa kecewa?",
      "criteria": ["Tenang", "Kecewa", "Sangat marah"]
    },
    "is_urgent": {
      "type": "noul",
      "instructions": "Adakah ini menunjukkan kesegeraan?"
    }
  }
}
```

## [](https://ailoot.ai/docs/ms/api/systemone/#use-cases)Kegunaan yang sesuai

- **Penghalaan.** Hantar pertanyaan ke jabatan yang betul, dan permintaan ke pengendali yang betul: kod mudah, model besar atau manusia.
- **Pengisihan dan keutamaan.** Tahap kesegeraan, sentimen, risiko — dinilai pada skala, dengan ambang dalam kod.
- **Moderasi dan semakan.** Adakah mesej melanggar peraturan, adakah sumber menyokong petikan, adakah dokumen mengandungi jawapan kepada soalan — sebelum teks diteruskan.
- **Pemarkahan dan pemeringkatan.** Nilai dokumen, calon atau petikan yang ditemui mengikut rubrik anda dan tentukan dalam kod perkara yang diteruskan.
- **Pengganti kepada arahan rapuh “kembalikan JSON”.** Panggilan yang memang direka untuk mengembalikan nilai berjenis, bukannya teks yang perlu dihuraikan.

## [](https://ailoot.ai/docs/ms/api/systemone/#not-for)Kegunaan yang tidak sesuai

- **Sembang, respons kepada pengguna, penjanaan teks atau kod.** Jev tidak menulis teks — untuk itu, gunakan [model teks](https://ailoot.ai/models/ms/?kind=text).
- **Model untuk Claude Code, Cursor dan ejen lain.** Anda tidak boleh menggantikan model ejen dengan jev-latest: ejen memerlukan model yang menulis teks dan memanggil alat. Jev boleh dipanggil daripada kod yang ditulis oleh ejen untuk anda.
- **Aritmetik, pengiraan dan perbandingan tarikh.** Menurut TypeSafe, perkara ini lebih andal dilakukan dalam kod, manakala model hanya ditanya tentang makna — contohnya, mengekstrak bahagian tarikh melalui choice.
- **Imej, audio dan video.** Model hanya menerima teks — tukarkan data tersebut kepada teks terlebih dahulu.

Model berfungsi paling baik apabila setiap soalan meminta satu pertimbangan yang khusus dan terhad. Nyatakan syarat dengan jelas: menurut TypeSafe, model memahami soalan secara harfiah, dan state yang besar dengan data berlebihan mengurangkan ketepatan — tapisnya dalam kod.

## [](https://ailoot.ai/docs/ms/api/systemone/#price)Harga

Hanya token input dicaj — medan `usage.input_tokens` dalam respons: **$0.084 bagi setiap 1 juta**. Token output adalah percuma.

Permintaan dalam contoh pada halaman ini (296 token input) berharga kurang daripada $0.0001.

Sebelum permintaan, Ailoot merizabkan amaun daripada baki dan, selepas respons, mengenakan caj sekali berdasarkan penggunaan sebenar — [cara ia berfungsi](https://ailoot.ai/docs/ms/billing/reserve/).

## [](https://ailoot.ai/docs/ms/api/systemone/#limits)Had

| Perkara | Had |
| --- | --- |
| Keseluruhan permintaan: state dan semua soalan | 64K token |
| state bersama soalan yang paling panjang | 32K token |
| Pilihan dalam satu choice | sehingga 255 |
| Tahap dalam satu score | dari 2 hingga 10 |
| Input | hanya teks: rentetan, objek JSON atau tatasusunan teks |

Had model adalah menurut TypeSafe. Sekatan kunci dan baki anda berkuat kuasa seperti bagi mana-mana model Ailoot: [Ralat dan had](https://ailoot.ai/docs/ms/errors/).

## [](https://ailoot.ai/docs/ms/api/systemone/#errors)Ralat

Ralat diterima dalam format umum Ailoot API: kod, teks yang jelas dan Request ID. Ralat yang paling lazim bagi kaedah ini:

| Kod | Keadaan | Tindakan |
| --- | --- | --- |
| **400** `invalid_request` | Badan permintaan gagal pengesahan: state, model atau questions tiada, type tidak dikenali, choice mempunyai lebih daripada 255 pilihan atau score mempunyai lebih daripada 10 tahap | Betulkan permintaan berdasarkan mesej ralat: tanpa pembetulan, ia akan gagal lagi |
| **400** `context_length_exceeded` | state dan soalan bersama-sama melebihi had model | Tapis state dalam kod, kekalkan perkara yang diperlukan oleh soalan |
| **401** `invalid_api_key` | Kunci tiada atau tidak sah | Hantar kunci dalam pengepala Authorization |
| **402** `insufficient_balance` | Baki tersedia tidak mencukupi untuk rizab | Tambah nilai baki |
| **404** `model_not_found`, `unsupported_endpoint` | ID tidak betul atau model dipanggil melalui kaedah yang salah, contohnya melalui /v1/chat/completions | Panggil jev-latest hanya melalui POST /v1/systemone |
| **429** `rate_limit_exceeded` | Terlalu banyak permintaan | Tunggu selama bilangan saat yang dinyatakan dalam pengepala Retry-After, kemudian cuba semula |
| **503** `model_overloaded`, `model_unavailable` | Model terlebih beban buat sementara waktu atau tidak tersedia | Jika X-Should-Retry: true — cuba semula selepas bilangan saat dalam Retry-After; jika false — semak Request ID dalam sejarah terlebih dahulu |
| **504** `model_timeout` | Model tidak memberikan respons dalam tempoh yang ditetapkan | Jangan hantar semula permintaan sebelum menyemak Request ID dalam sejarah |

Senarai penuh kod terdapat pada halaman [Ralat dan had](https://ailoot.ai/docs/ms/errors/).

Masih ada soalan? Hantar Request ID dan penerangannya — kami akan membantu menyiasatnya.[Hubungi sokongan](mailto:support@ailoot.ai)

## Ailoot · Syarikat dan portfolio projeknya





Ailoot berteraskan pengalaman operasi yang mantap, pangkalan pelanggan yang besar, perkhidmatan yang stabil dan pemantauan KPI berterusan.





Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.





Ailoot menggunakan pengalaman operasi ini untuk akses API kepada ciri AI dalam produk pelanggan, ejen, aplikasi dan automasi.
