Source: https://ailoot.ai/models/ms/farui-plus/
Canonical: https://ailoot.ai/models/ms/farui-plus/
Language: ms

# farui-plus

[Markdown](https://ailoot.ai/models/ms/farui-plus/index.md) · [JSON](https://ailoot.ai/models/ms/farui-plus/facts.json)

## [farui-plus](https://ailoot.ai/models/ms/farui-plus/)

Tongyi FaRui Plus daripada Alibaba ialah model teks yang dikhususkan untuk soalan undang-undang, analisis kes, penggubalan dokumen undang-undang dan semakan kontrak. Sediakan fakta dan klausa yang berkaitan dalam bentuk teks, kemudian gunakan soalan atau dialog yang berfokus untuk mendapatkan analisis bertulis atau draf.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `farui-plus`](https://ailoot.ai/models/ms/farui-plus/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `farui-plus`](https://ailoot.ai/models/ms/farui-plus/#method-1)

Tentang model

Huraian ini merangkumi keupayaan model. Input, output dan pilihan yang tersedia di Ailoot disenaraikan di bawah untuk kaedah yang dipilih.

#### Model teks untuk bidang undang-undang

Tongyi FaRui Plus, yang dikenal pasti oleh pengeluar sebagai farui-plus, dibina berasaskan Qwen dan dikhususkan dengan data serta pengetahuan undang-undang. Pengeluar menerangkan pembangunannya menggunakan penalaan halus model, pembelajaran pengukuhan, penambahan berasaskan dapatan semula dan teknologi ejen undang-undang. Skop tugasnya merangkumi soalan undang-undang, pengenalpastian peruntukan undang-undang yang terpakai, analisis kes, penjanaan dokumen undang-undang dan semakan klausa kontrak.

Input dan output yang didokumenkan ialah teks. Sediakan petikan, fakta atau klausa yang hendak dianalisis dalam bentuk teks yang boleh dibaca, dan nyatakan hasil yang dikehendaki. Artifak yang berguna boleh berupa draf bahagian dokumen, senarai isu, penjelasan tentang peruntukan yang diberikan atau perbandingan antara ungkapan dalam kontrak.

#### Sediakan satu permintaan atau dialog berterusan

Contoh pengeluar menyokong arahan tunggal atau perbualan berasaskan messages. Mesej mengandungi peranan dan kandungan; arahan sistem pilihan diletakkan terlebih dahulu, diikuti giliran pengguna dan pembantu. Panduan mengesyorkan messages untuk dialog berterusan, dengan jawapan terdahulu yang berkaitan dikekalkan apabila soalan susulan mengubah sesuatu fakta atau keperluan.

Untuk soalan tentang kes, berikan peranan pihak-pihak, kronologi, isu yang dipertikaikan dan bukti yang berkaitan dengan soalan. Nyatakan bidang kuasa dan tarikh yang penting untuk tugas itu, serta sertakan teks undang-undang untuk diperiksa apabila jawapan mesti bersandarkan peruntukan tertentu. Bezakan fakta yang ditegaskan daripada dakwaan yang dipertikaikan atau andaian.

Untuk soalan susulan, kenal pasti dengan tepat perkara yang berubah. Contohnya, berikan tarikh yang dibetulkan atau klausa tambahan dan tanya bahagian draf terdahulu yang perlu disemak. Dengan mengekalkan jawapan terdahulu yang sebenar, perubahan yang diminta menjadi jelas dan khusus, bukannya mengundang analisis baharu terhadap kes yang tidak lengkap.

#### Minta analisis atau draf dokumen

Untuk soalan undang-undang, takrifkan isu dan bentuk jawapan. Minta kesimpulan, peruntukan sokongan dan fakta yang akan mengubah analisis. Apabila sumber tidak menetapkan sesuatu butiran penting, minta hasilnya mengenal pasti maklumat yang masih tiada itu.

Untuk penggubalan, nyatakan jenis dokumen, khalayak sasaran, bahagian yang diperlukan dan fakta yang diberikan. Arahan yang berguna ialah: “Gubal bahagian yang diminta menggunakan kronologi dan fakta ini, kekalkan peranan pihak-pihak seperti yang ditakrifkan, dan kenal pasti maklumat yang masih diperlukan untuk melengkapkan dokumen.” Semak nama, tarikh, jumlah dan peruntukan yang dipetik berdasarkan bahan asal.

Untuk semakan kontrak, berikan klausa yang tepat dan perkara yang membimbangkan untuk diperiksa. Minta perbandingan ungkapan, isu yang ditimbulkannya dan cadangan pindaan yang mengekalkan maksud komersial yang dikehendaki. Simpan klausa asal bersebelahan dengan teks yang dicadangkan supaya perubahan dapat diperiksa.

#### Bekerja dalam had respons yang didokumenkan

Gambaran keseluruhan model yang diterbitkan menyenaraikan input maksimum 12,000 token dan output maksimum 2,000 token. Pilih petikan yang berkaitan dan panjang jawapan yang sesuai dengan tugas, dengan menyediakan ruang untuk respons yang diminta dalam konfigurasi perbualan yang berkenaan. Semakan kontrak yang panjang boleh dibahagikan kepada isu atau bahagian yang dilabelkan dengan jelas sambil mengekalkan apa-apa klausa yang diperlukan untuk memahami hubungan antaranya.

Tetapan panjang respons pengeluar boleh mengurangkan peruntukan output untuk penjelasan ringkas atau bahagian draf tertentu. Nilai lalai yang didokumenkan ialah 2,000 token. Periksa sama ada jawapan yang dipulangkan lengkap sebelum menganggapnya sebagai dokumen yang siap.

#### Pilih tetapan penjanaan dan penyampaian

Rujukan pengeluar mendokumenkan top\_p dalam selang terbuka antara 0 dan 1, dengan 0.8 sebagai nilai lalai. Tetapan top\_k mengehadkan set calon; membiarkannya tanpa nilai, atau menetapkannya melebihi 100, menyahaktifkan strategi tersebut. Kekalkan tugas dan bahan sumber yang sama apabila membandingkan kesan tetapan penjanaan yang disokong.

Aliran kerja lalai tidak menggunakan penstriman. Penstriman menyampaikan teks semasa penjanaan masih berlangsung. Cebisan penstriman lalai yang didokumenkan mengandungi kandungan terkumpul; mengaktifkan output tambahan secara berperingkat pula memulangkan bahagian baharu sahaja. Cantumkan format yang dipilih dengan betul supaya teks terkumpul yang berulang tidak ditambahkan dua kali, dan simpan jawapan lengkap untuk semakan.

Respons boleh menggunakan pembungkus teks atau mesej. Pembungkus ialah struktur penyampaian yang mengelilingi teks undang-undang yang dijana; jadual keupayaan model tidak menyenaraikan output berstruktur yang dikuatkuasakan oleh skema, panggilan fungsi atau carian web natif. Sediakan bukti dan peruntukan yang diperlukan untuk tugas itu, bukannya mengandaikan carian luaran telah berlaku.

#### Pastikan analisis boleh diperiksa

Simpan teks sumber, fakta yang diberikan, bentuk dokumen yang diminta dan respons akhir bersama-sama. Periksa ungkapan sebenar dalam rujukan serta bidang kuasa atau tarikh yang menjadi asas sesuatu tafsiran. Perbandingan klausa atau penjelasan kes paling berguna apabila andaian dan petikan sokongannya masih boleh dikenal pasti.

Gunakan Farui Plus untuk aliran kerja teks undang-undangnya yang dinyatakan. Artifak akhir perlu menghubungkan soalan undang-undang atau draf yang diminta dengan bahan yang benar-benar diberikan.

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `farui-plus`

[`farui-plus`](https://ailoot.ai/models/ms/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=chat)

Lain-lain /`farui-plus`

### Pengenalan

Tongyi FaRui Plus daripada Alibaba ialah model teks yang dikhususkan untuk soalan undang-undang, analisis kes, penggubalan dokumen undang-undang dan semakan kontrak. Sediakan fakta dan klausa yang berkaitan dalam bentuk teks, kemudian gunakan soalan atau dialog yang berfokus untuk mendapatkan analisis bertulis atau draf.

Input yang diterima

Teks

Hasil

Teks

### Tersedia di Ailoot · input & kaedah

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Input

`text`

Output

`text`

Format output

json atau SSE

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had farui-plus | Lalai— |
| Medan`messages` | Jenis`message[]` | KeperluanDiperlukan | Nilai & had Item minimum: 1 | Lalai— |
| Medan`messages[].role` | Jenis`string` | KeperluanDiperlukan | Nilai & had Bergantung pada model | Lalai— |
| Medan`messages[].content` | Jenis`string` | KeperluanPilihan | Nilai & had Terpakai apabila: Perbualan teks | Lalai— |
| Medan`stream` | Jenis`boolean` | KeperluanPilihan | Nilai & had | Lalaifalse |

Gabungan bahan input

**Teks** · Teks UTF8

`messages[].content`

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, messages |
| Parameter`material_types` | Kontraktext |
| Parameter`messages` | Kontraktatasusunan mesej dengan struktur role/content |
| Parameter`file_material` | Kontrakdokumen UTF-8 sebenar dimasukkan sebagai teks literal; ID fail tidak diandaikan |
| Parameter`optional_controls` | Kontrakstream |
| Parameter`control_scope` | KontrakPerbualan teks; stream ialah nilai boolean dengan false sebagai lalai. |
| Parameter`output_modalities` | Kontraktext |
| Parameter`hosted_operations` | Kontrakfalse |
| Parameter`multimodal_input_binding` | Kontraknull |

Alias kaedah: `/chat/completions`

Kitar hayat: `synchronous_or_streamed`

Hantar ID model yang tepat bersama messages.

Panjang konteks bukan had output.

Fail teks boleh membekalkan teks literal; input imej/audio/objek fail memerlukan pengikatan tepat.

### Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas

Kadar standard Apabila mod pantas dipilih

Mod flex

Kadar standard Apabila mod flex dipilih

Usaha penaakulan maksimum

Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default

#### Kadar Ailoot

#### Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

| Konfigurasi | Jadual kadar | Token konteks, melebihi | Token konteks, sehingga dan termasuk | Caj |
| --- | --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Token konteks, melebihi— | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0058** / 1K token Output · Token output **$0.0058** / 1K token Input · Bacaan cache **—** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0058** / 1K token Output · Token output **$0.0058** / 1K token Input · Bacaan cache **—** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. [Cara rizab dan penyelesaian caj berfungsi →](https://ailoot.ai/docs/ms/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · OpenAI Chat

curlPython SDK

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"farui-plus","messages":[{"role":"user","content":"hello"}],"stream":false}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
```

```python
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model="farui-plus", messages=[{"role":"user","content":"hello"}], stream=False)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
```

### Terima dan simpan hasil

#### Ailoot Ultra · OpenAI Chat

json atau SSE

##### Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan setiap pilihan jawapan bersama kandungan, panggilan alat dan penaakulannya. Dalam SSE, gabungkan delta mengikut indeks pilihan jawapan/alat dan kekalkan sebab penamatan akhir serta data penggunaan.

##### Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`choices[].index` | Jenisinteger |
| Medan`choices[].message.content` | Jenisstring\|null |
| Medan`choices[].message.tool_calls` | Jenistool\_call\[\] |
| Medan`choices[].message.reasoning_content` | Jenisstring |
| Medan`choices[].message.reasoning_details` | Jenisobject\|array |
| Medan`choices[].finish_reason` | Jenisstring\|null |
| Medan`usage` | Jenisobject |

Ralat dan langkah seterusnya

| Respons | Syarat | Langkah seterusnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |

### Alias

#### Alias model

**Ailoot Ultra** [`farui-plus`](https://ailoot.ai/models/ms/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=chat)

#### Alias laluan kaedah

`/chat/completions`

#### ID pemanggil berkaitan

[`farui-plus`](https://ailoot.ai/models/ms/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `farui-plus`

[`farui-plus`](https://ailoot.ai/models/ms/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=messages)

Lain-lain /`farui-plus`

### Pengenalan

Tongyi FaRui Plus daripada Alibaba ialah model teks yang dikhususkan untuk soalan undang-undang, analisis kes, penggubalan dokumen undang-undang dan semakan kontrak. Sediakan fakta dan klausa yang berkaitan dalam bentuk teks, kemudian gunakan soalan atau dialog yang berfokus untuk mendapatkan analisis bertulis atau draf.

Input yang diterima

Teks

Hasil

json · sse

### Tersedia di Ailoot · input & kaedah

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Input

`text`

Output

`json`, `sse`

Format output

JSON atau SSE

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had farui-plus | Lalai— |
| Medan`messages` | Jenis`message[]` | KeperluanDiperlukan | Nilai & had | Lalai— |
| Medan`messages[].role` | Jenis`string` | KeperluanDiperlukan | Nilai & had user, assistant | Lalai— |
| Medan`messages[].content` | Jenis`string` | KeperluanDiperlukan | Nilai & had | Lalai— |
| Medan`max_tokens` | Jenis`integer` | KeperluanDiperlukan | Nilai & had | Lalai— |
| Medan`stream` | Jenis`boolean` | KeperluanPilihan | Nilai & had | Lalaifalse |

Gabungan bahan input

**Teks** · Teks UTF-8

`rentetan messages[].content`

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, messages, max\_tokens |
| Parameter`optional_controls` | Kontrakstream |
| Parameter`material_types` | Kontraktext |
| Parameter`text_file_material` | KontrakBaca dokumen UTF-8 sebenar dan letakkan teksnya dalam rentetan input atau kandungan mesej yang ditunjukkan. |

Kitar hayat: `synchronous_or_streamed`

### Pelan harga

Rujukan tarif tidak menambah pilihan permintaan. Parameter yang disokong disenaraikan untuk kaedah yang dipilih.

Mod pantas

Kadar standard Apabila mod pantas dipilih

Mod flex

Kadar standard Apabila mod flex dipilih

Usaha penaakulan maksimum

Kadar standard Apabila usaha penaakulan maksimum menggunakan pelarasan default

#### Kadar Ailoot

#### Harga mengikut konfigurasi

Padankan setiap caj dengan syarat yang dipaparkan. Gunakan satu kadar bagi setiap set konfigurasi alternatif.

| Konfigurasi | Jadual kadar | Token konteks, melebihi | Token konteks, sehingga dan termasuk | Caj |
| --- | --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Token konteks, melebihi— | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0058** / 1K token Output · Token output **$0.0058** / 1K token Input · Bacaan cache **—** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.0058** / 1K token Output · Token output **$0.0058** / 1K token Input · Bacaan cache **—** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |

Ailoot merizabkan anggaran amaun sebelum permintaan. Selepas hasil diterima, caj akhir diselesaikan berdasarkan penggunaan terukur. Penyelesaian caj penstriman menggunakan rekod penggunaan akhir. [Cara rizab dan penyelesaian caj berfungsi →](https://ailoot.ai/docs/ms/billing/reserve/)

### Contoh permintaan

#### Ailoot Ultra · Anthropic Messages

Badan JSON minimum yang lengkapcurl · gunakan dokumen UTF-8 andaPython · simpan hasil lengkap

```json
{
  "model": "farui-plus",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'farui-plus', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
```

```python
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'farui-plus', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
```

### Terima dan simpan hasil

#### Ailoot Ultra · Anthropic Messages

JSON atau SSE

##### Simpan semua hasil yang selesai

Simpan setiap respons lengkap, fail dan bahagian kandungan yang dikembalikan.

Kekalkan semua blok kandungan, tandatangan penaakulan dan ID penggunaan alat sebenar. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan output.

##### Jika respons asal perlu disemak

Kekalkan ID permintaan/respons dan pengepala. Tiada URL umum bagi pengambilan tugas teks dibekalkan.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`id` | Jenisstring |
| Medan`model` | Jenisstring |
| Medan`content[]` | Jenistext\|thinking\|tool\_use\|other content block |
| Medan`stop_reason` | Jenisstring\|null |
| Medan`usage` | Jenisobject |

Ralat dan langkah seterusnya

| Respons | Syarat | Langkah seterusnya |
| --- | --- | --- |
| Respons400 · `invalid_request_error` | SyaratMedan wajib, perwakilan bahan atau nilai parameter tidak sah | Langkah seterusnyaBetulkan medan yang ditunjukkan sebelum permintaan penciptaan baharu. |

### Alias

#### Alias model

**Ailoot Ultra** [`farui-plus`](https://ailoot.ai/models/ms/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=messages)

#### Alias laluan kaedah

`/chat/completions`

#### ID pemanggil berkaitan

[`farui-plus`](https://ailoot.ai/models/ms/#m=farui-plus&route=Ultra&caller=farui-plus&fmt=messages)

FAQ · farui-plus

Apakah input dan hasil yang tersedia?

`POST /v1/chat/completions` · `farui-plus`: `text` → `text` `POST /v1/messages` · `farui-plus`: `text` → `json`, `sse`

Apakah medan yang digunakan oleh permintaan?

`POST /v1/chat/completions` · `farui-plus`: `model`, `messages`, `stream` `POST /v1/messages` · `farui-plus`: `model`, `messages`, `max_tokens`, `stream`

Apakah had yang terpakai?

`POST /v1/chat/completions` · `farui-plus`: `messages.min_items`: `1`

Sambungkan Ailoot kepada Claude Code, OpenCode, Hermes atau aplikasi anda.

## Syarikat dan portfolio projeknya

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

## Beli token dengan diskaun.

Diskaun langganan untuk penggunaan berkala. Kod promosi — sehingga 50% bagi pembelian token.

Langganan

Pilih pelan berdiskaun untuk permintaan berkala anda.

Kod promosi sehingga 50%

Masukkan kod semasa pembelian. Harga dikira semula mengikut promosi semasa.

Perbelanjaan dalam sejarah

Model, token dan jumlah disimpan bagi setiap permintaan.

[Pilih langganan](https://ailoot.ai/docs/ms/billing/subscriptions/) · [Lihat harga model](https://ailoot.ai/models/ms/)

## Sambungkan API kepada produk yang anda jual.

SaaS, aplikasi dan bot — di bawah tawaran rasmi serta perjanjian lesen Ailoot. Untuk jualan semula, mohon lesen penjual semula.

Aplikasi komersial

Tambahkan penjanaan teks, imej, video dan audio pada ciri berbayar perkhidmatan anda.

Lesen penjual semula

Hantar keterangan projek dan susunan akses. Minta terma penggunaan serta jualan semula secara bertulis.

Dokumen pada laman

Tawaran, perjanjian lesen dan dasar pemprosesan data tersedia sebelum sambungan.

[Mohon lesen penjual semula](mailto:support@ailoot.ai) · [Tawaran dan perjanjian lesen](https://ailoot.ai/legal/offer?lang=ms)

## 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.
