Source: https://ailoot.ai/models/ms/openai-gpt-5-image-mini/
Canonical: https://ailoot.ai/models/ms/openai-gpt-5-image-mini/
Language: ms

# OpenAI: GPT-5 Image Mini

[Markdown](https://ailoot.ai/models/ms/openai-gpt-5-image-mini/index.md) · [JSON](https://ailoot.ai/models/ms/openai-gpt-5-image-mini/facts.json)

## [OpenAI: GPT-5 Image Mini](https://ailoot.ai/models/ms/openai-gpt-5-image-mini/)

GPT-5 Image Mini menggabungkan keupayaan bahasa GPT-5 Mini daripada OpenAI dengan GPT Image 1 Mini untuk penjanaan visual dan suntingan berasaskan rujukan. Profil ini menerima teks, imej dan dokumen serta mengembalikan teks dan imej, bagi menyokong aliran kerja yang memerlukan respons bertulis serta aset visual.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/openai-gpt-5-image-mini/#method-0)
- [**Ailoot Ultra · Imej** `POST /v1/images/generations` `openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/openai-gpt-5-image-mini/#method-1)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/openai-gpt-5-image-mini/#method-2)

Tentang model

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

GPT-5 Image Mini ialah profil gabungan bahasa dan imej yang dibina berasaskan GPT-5 Mini dan GPT Image 1 Mini daripada OpenAI. Komponen bahasanya mentafsir tugas bertulis dan bahan sumber, manakala komponen imejnya mencipta atau menyemak kandungan visual. Profil yang diterbitkan menekankan pematuhan arahan, penghasilan teks dalam imej dan penyuntingan imej terperinci. Profil ini berguna untuk taklimat visual tertumpu yang turut memerlukan pentafsiran teks, penjelasan atau teks sokongan.

#### Satukan tugas bertulis dan hasil visual

Sediakan taklimat dengan aset yang dimaksudkan, subjek, komposisi dan teks wajib. Terangkan kegunaan imej, seperti konsep produk, ilustrasi yang mengiringi penjelasan ringkas atau draf visual untuk halaman. Minta hasil bertulis dan visual secara eksplisit supaya penjelasan konsep mudah dibezakan daripada imej itu sendiri.

Contohnya, bekalkan penerangan botol air yang boleh digunakan semula dan minta konsep adegan produk yang mudah bersama kapsyen ringkas. Nyatakan bentuk botol yang kelihatan, latar belakang, arah cahaya dan perkataan tepat yang perlu terkandung dalam visual. Bezakan fakta yang digunakan dalam kapsyen daripada butiran hiasan dalam adegan. Semak imej yang dikembalikan dan teks bertulis terhadap kedua-dua bahagian taklimat itu.

Profil gabungan yang didokumenkan menerima teks, imej dan fail seperti PDF. Dokumen boleh membekalkan keperluan atau fakta yang perlu ditafsirkan sebelum visual dicipta. Imej boleh membekalkan rupa, susun atur atau sumber suntingan. Nyatakan peranan setiap sumber dan bukannya menganggap setiap lampiran perlu mempengaruhi setiap bahagian hasil. Pastikan nama dan susunan sumber jelas apabila beberapa input dibekalkan.

#### Jana dan semak dengan rujukan

Untuk imej baharu, nyatakan perkara yang perlu kelihatan dan hubungan antara bahagian. Untuk suntingan berasaskan rujukan, kenal pasti perubahan dan butiran yang perlu dikekalkan. Adegan produk boleh meminta latar baharu sambil mengekalkan bentuk barang yang dapat dikenal pasti serta label yang kelihatan. Rajah boleh meminta hubungan yang dibetulkan sambil menamakan teks dan unsur yang perlu kekal.

Kad profil yang diterbitkan membenarkan sehingga enam belas imej rujukan untuk penyuntingan. Pilih rujukan yang menyumbang kepada tugas dan terangkan tujuannya: produk, watak, latar belakang atau olahan visual. Beberapa rujukan mungkin mengandungi pencahayaan atau komposisi yang bercanggah, jadi nyatakan hasil yang dimaksudkan dengan jelas. Periksa butiran subjek, tulisan dan sempadan perubahan yang diminta dalam imej sebenar yang dikembalikan.

Penghasilan teks dalam imej ialah keupayaan yang didokumenkan, tetapi draf visual masih memerlukan semakan perkataan demi perkataan. Bekalkan perkataan, tanda baca dan penempatan yang tepat, kemudian bandingkan label serta nombor penting dengan taklimat pada saiz paparan yang dimaksudkan. Untuk siri berulang, simpan rujukan dan keperluan visual bersama setiap hasil serta bandingkan imej yang telah selesai bersama-sama.

#### Konteks kerja dan kawalan

Profil gabungan menerbitkan tetingkap konteks 400000 token dan sehingga 128000 token penyiapan. Ini ialah had konteks kerja dan penyiapan, berasingan daripada dimensi piksel imej atau bilangan hasil imej yang dikembalikan. Susun bahan sumber panjang berdasarkan pentafsiran yang diperlukan dan peruntukkan ruang untuk respons. Taklimat padat dengan rujukan berkaitan lebih berguna daripada dokumen tidak berkaitan yang peranannya belum diterangkan.

Kontrak output teks yang diterbitkan menyokong hasil berstruktur berdasarkan skema JSON. Tentukan medan dan jenis apabila hasil bertulis perlu digunakan oleh aplikasi, dan sahkan nilai terhadap bukti yang dibekalkan. Profil gabungan tidak menyediakan panggilan fungsi aplikasi. Penggunaan komponen bahasa bersama penjanaan imej ialah keupayaan profil yang dinamakan; ini tidak menjadikan setiap ciri antara muka GPT-5 Mini kendiri sebahagian daripada aliran kerja ini.

Tetapan imej perlu berasal daripada profil dan antara muka tepat yang digunakan. Simpan konfigurasi yang dipilih bersama prompt apabila membandingkan semakan. Komponen GPT Image 1 Mini langsung dan profil sembang gabungan mempunyai susunan permintaan yang berbeza, maka kawalan saiz, penggunaan topeng atau output khusus komponen memerlukan pemetaan eksplisit sebelum dianggap sebagai tetapan profil gabungan ini.

#### Simpan hasil teks dan imej

Skema permintaan sembang yang didokumenkan boleh memilih text dan image sebagai modaliti output. Proses teks yang dikembalikan dan setiap hasil imej sebenar yang mengiringi penyiapan. Simpan imej dalam format yang dikenal pasti oleh hasil dan kekalkan respons bertulis bersama prompt, rujukan sumber serta tetapan. Penyiapan yang mengandungi teks penjelasan sahaja berbeza daripada hasil visual yang telah selesai, maka semak kandungan sebenar hasil sebelum menggunakannya dalam susun atur.

GPT-5 Image Mini berbeza daripada profil GPT-5 Image penuh, yang menggabungkan GPT-5 dengan GPT Image 1. Gunakan profil Mini untuk tugas bahasa dan visual terhad dengan taklimat serta kriteria semakan yang jelas. Semak komposisi, identiti objek, teks imej dan prosa sokongan, kemudian minta pembetulan khusus yang diperlukan. Kekalkan unsur yang berjaya dan rujukan berkaitan dalam taklimat seterusnya supaya semakan mempunyai sasaran yang konkrit.

Tugas praktikal

### Tugas praktikal

Contoh teknikal dalam bahasa Inggeris

```
Create a labelled refill-bottle scene

Create a product-scene image of a plain cylindrical blue reusable water bottle with a silver screw cap, standing upright on pale stone. Soft daylight enters from the left. Place the exact word REFILL clearly on the bottle, with no other text, logos, accessories or unsupported product claims. Keep the full bottle visible.
```

#### Hasil yang dijangka

```
One image artifact showing the full specified bottle, left-side daylight and the exact single-word label.
```

#### Semak hasil

```
Inspect the actual image for bottle shape, cap, complete framing and letter-by-letter spelling of REFILL.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `openai/gpt-5-image-mini`

[`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=chat)

OpenAI /`openai/gpt-5-image-mini`

### Pengenalan

GPT-5 Image Mini menggabungkan keupayaan bahasa GPT-5 Mini daripada OpenAI dengan GPT Image 1 Mini untuk penjanaan visual dan suntingan berasaskan rujukan. Profil ini menerima teks, imej dan dokumen serta mengembalikan teks dan imej, bagi menyokong aliran kerja yang memerlukan respons bertulis serta aset visual.

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 openai/gpt-5-image-mini | Lalai— |
| Medan`messages` | Jenis`message[]` | KeperluanDiperlukan | Nilai & had Item minimum: 1 | Lalai— |
| Medan`messages[].role` | Jenis`string` | KeperluanDiperlukan | Nilai & had Contoh: system, user, assistant, tool, function Syarat: Peranan ini diwakili secara eksplisit oleh jenis keserasian dalam kod sumber; set peranan model yang tepat kekal khusus untuk setiap model. Bergantung pada model | Lalai— |
| Medan`messages[].content` | Jenis`string\|content_part[]\|null` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`messages[].tool_calls` | Jenis`tool_call[]` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`messages[].tool_call_id` | Jenis`string` | KeperluanPilihan | Nilai & had Terpakai apabila: role=tool; gunakan ID sebenar yang dipulangkan | Lalai— |
| Medan`messages[].name` | Jenis`string` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`messages[].reasoning_content` | Jenis`string` | KeperluanPilihan | Nilai & had Terpakai apabila: Hantar semula penaakulan sebenar yang dipulangkan apabila model ini menggunakannya | Lalai— |
| Medan`messages[].reasoning_details` | Jenis`object\|array` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`max_tokens` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 Bergantung pada model | Lalai— |
| Medan`max_completion_tokens` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 Bergantung pada model | Lalai— |
| Medan`stream` | Jenis`boolean` | KeperluanPilihan | Nilai & had | Lalaifalse |
| Medan`stream_options.include_usage` | Jenis`boolean` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`temperature` | Jenis`number` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`top_p` | Jenis`number` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`stop` | Jenis`string\|string[]` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`tools` | Jenis`function_tool[]` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`tools[].type` | Jenis`string` | KeperluanPilihan | Nilai & had function Bergantung pada model | Lalai— |
| Medan`tools[].function.name` | Jenis`string` | KeperluanDiperlukan | Nilai & had Terpakai apabila: alat fungsi dibekalkan | Lalai— |
| Medan`tools[].function.description` | Jenis`string` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`tools[].function.parameters` | Jenis`JSON_schema` | KeperluanPilihan | Nilai & had | Lalai— |
| Medan`tool_choice` | Jenis`string\|object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`parallel_tool_calls` | Jenis`boolean` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`response_format` | Jenis`object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`reasoning_effort` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`reasoning` | Jenis`object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`service_tier` | Jenis`string` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`instructions` | Jenis`string` | KeperluanPilihan | Nilai & had Medan keserasian | Lalai— |
| Medan`functions` | Jenis`function[]` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`function_call` | Jenis`string\|object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`prompt_cache_options` | Jenis`object` | KeperluanPilihan | Nilai & had Bergantung pada model | Lalai— |
| Medan`modalities` | Jenis`string[]` | KeperluanPilihan | Nilai & had text | Lalai— |
| Medan`provider` | Jenis`object` | KeperluanPilihan | Nilai & had Syarat: provider.options ditolak pada laluan teks Ultra ini | Lalai— |
| Medan`cache_control.ttl` | Jenis`string` | KeperluanPilihan | Nilai & had Syarat: 1h ditolak pada lokasi cache prompt yang digunakan | Lalai— |

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, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | Kontrakkhusus model; alat fungsi pengguna berbeza daripada alat yang dihoskan |
| Parameter`output_modalities` | Kontraktext |
| Parameter`hosted_operations` | Kontrakfalse |
| Parameter`multimodal_input_binding` | Kontraknull |

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.005** / 1K token Output · Token output **$0.004** / 1K token Input · Bacaan cache **$0.0005** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token Output · Token keluaran imej **$0.016** / 1K token imej |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.005** / 1K token Output · Token output **$0.004** / 1K token Input · Bacaan cache **$0.0005** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token |

#### Butiran tarif rujukan

Jadual rujukan peringkat model tidak mengubah pemilihan kaedah, sebut harga atau caj. Caj aktif menggunakan kadar kaedah Ailoot yang dipilih.

OpenAI: GPT-5 Image Mini

#### Harga mengikut konfigurasi

| Konfigurasi | Syarat pengebilan | Caj |
| --- | --- | --- |
| KonfigurasiOpenAI: GPT-5 Image Mini · Konfigurasi lalai | Syarat pengebilanKonfigurasi lalai | Caj Input · Token input **USD 0.005** / 1K token Output · Token output **USD 0.004** / 1K token Output · Imej keluaran **USD 0.016** / 1K token Output · Carian web **USD 0.02** setiap carian Input · Bacaan cache **USD 0.0005** / 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 SDKPenstriman Python

```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": "openai/gpt-5-image-mini", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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='openai/gpt-5-image-mini',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
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"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

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)
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))

with client.chat.completions.stream(model='openai/gpt-5-image-mini',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### 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** [`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=chat)

#### Alias laluan kaedah

`/v1/images`

#### ID pemanggil berkaitan

[`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=chat)

**Ailoot Ultra · Imej** `POST /v1/images/generations` `openai/gpt-5-image-mini`

[`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=images)

OpenAI /`openai/gpt-5-image-mini`

### Pengenalan

GPT-5 Image Mini menggabungkan keupayaan bahasa GPT-5 Mini daripada OpenAI dengan GPT Image 1 Mini untuk penjanaan visual dan suntingan berasaskan rujukan. Profil ini menerima teks, imej dan dokumen serta mengembalikan teks dan imej, bagi menyokong aliran kerja yang memerlukan respons bertulis serta aset visual.

Input yang diterima

Teks · Imej

Hasil

Imej

### Tersedia di Ailoot · input & kaedah

**Ailoot Ultra · Imej** `POST /v1/images/generations`

Input

`text`, `image`

Output

`image`

| Medan | Jenis | Keperluan | Nilai & had | Lalai |
| --- | --- | --- | --- | --- |
| Medan`model` | Jenis`string` | KeperluanDiperlukan | Nilai & had openai/gpt-5-image-mini | Lalai— |
| Medan`prompt` | Jenis`string` | KeperluanDiperlukan | Nilai & had Panjang minimum: 1 | Lalai— |
| Medan`aspect_ratio` | Jenis`string` | KeperluanPilihan | Nilai & had 1:1, 3:2, 2:3, auto | Lalai— |
| Medan`quality` | Jenis`string` | KeperluanPilihan | Nilai & had auto, low, medium, high | Lalai— |
| Medan`background` | Jenis`string` | KeperluanPilihan | Nilai & had auto, transparent, opaque | Lalai— |
| Medan`n` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 1 Maksimum: 10 | Lalai— |
| Medan`input_references` | Jenis`array` | KeperluanPilihan | Nilai & had Item minimum: 0 Item maksimum: 16 | Lalai— |
| Medan`output_compression` | Jenis`integer` | KeperluanPilihan | Nilai & had Minimum: 0 Maksimum: 100 | Lalai— |
| Medan`provider` | Jenis`object` | KeperluanPilihan | Nilai & had | Lalai— |

Parameter kaedah dan kitar hayat

| Parameter | Kontrak |
| --- | --- |
| Parameter`content_type` | Kontrakapplication/json |
| Parameter`required` | Kontrakmodel, prompt |
| Parameter`material_types` | Kontraktext, image |

Kitar hayat: `synchronous_result_then_owned_library`

`GET /v1/media/tasks/{task_id}` · task\_id sebenar yang dikembalikan atau rekod pustaka media

`GET /v1/media/assets/{asset_id}/content`

`GET /v1/media/assets`

`GET /v1/media/assets/{asset_id}`

### Pelan harga

##### Cara caj akhir dikira

Kadar yang dipaparkan menganggarkan kos sebelum penjanaan. Caj akhir dikira berdasarkan kos yang direkodkan untuk penjanaan asal. Tempoh output yang diukur dan kuantiti ramalan bukan kuantiti akhir yang boleh dibilkan.

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

Mod pantas

Tidak dinyatakan Apabila mod pantas dipilih

Mod flex

Tidak dinyatakan Apabila mod flex dipilih

Usaha penaakulan maksimum

Tidak dinyatakan Apabila usaha penaakulan maksimum menggunakan pelarasan default

#### Anggaran kadar untuk perbandingan

#### Harga mengikut konfigurasi

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

| Konfigurasi | Jadual kadar | Kuantiti ramalan | Caj |
| --- | --- | --- | --- |
| KonfigurasiKadar asas token | Jadual kadarKadar asas | Kuantiti ramalan— | Caj Input · Token input · Anggaran untuk perbandingan sahaja **—** / 1K token Output · Token output · Anggaran untuk perbandingan sahaja **—** / 1K token Input · Bacaan cache · Anggaran untuk perbandingan sahaja **—** / 1K token Input · Penulisan cache · Anggaran untuk perbandingan sahaja **—** / 1K token Input · Penulisan cache, 1 jam · Anggaran untuk perbandingan sahaja **—** / 1K token |
| KonfigurasiAnggaran kos penjanaan | Jadual kadar— | Kuantiti ramalananggaran untuk satu penjanaan | Caj Output · Anggaran kos penjanaan · Anggaran untuk perbandingan sahaja **$0.065536** anggaran sebelum penjanaan Anggaran ini bukan caj tambahan atau kadar tetap bagi penjanaan yang telah selesai. |

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 · Imej

curl

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
export AILOOT_API_KEY
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p={'model': 'openai/gpt-5-image-mini', 'prompt': 'a red panda astronaut floating in space, studio lighting'}

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/images/generations \
  -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 base64, json, os, subprocess
from pathlib import Path
from urllib.parse import urlsplit, urljoin

def save_images(items):
    if not items: raise SystemExit("No completed images; retain the full response")
    for index, item in enumerate(items):
        encoded=item.get("b64_json")
        uri=item.get("url", "")
        if not encoded and uri.startswith("data:image/"):
            header, separator, encoded=uri.partition(",")
            if not separator or ";base64" not in header: raise SystemExit("Unsupported image data URI")
        if encoded:
            raw=base64.b64decode(encoded,validate=True)
        elif uri:
            uri=urljoin("https://api.ailoot.ai",uri)
            parsed=urlsplit(uri)
            if parsed.scheme!="https" or not parsed.netloc or parsed.username or parsed.password:
                raise SystemExit("Invalid returned image URL")
            owned=parsed.netloc=="api.ailoot.ai" and parsed.path.startswith("/v1/media/assets/") and parsed.path.endswith("/content")
            args=["curl","--fail-with-body","--silent","--show-error",uri]
            if owned: args += ["-H","Authorization: Bearer "+os.environ["AILOOT_API_KEY"]]
            temporary=Path(f"image-{index}.bin")
            subprocess.run(args+["-o",str(temporary)],check=True)
            raw=temporary.read_bytes()
            temporary.unlink()
        else: raise SystemExit("Image has neither bytes nor URL")
        if not raw: raise SystemExit("Empty image result")
        ext="png" if raw.startswith(b"\x89PNG") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else "svg" if raw.lstrip().startswith((b"<svg",b"<?xml")) else "bin"
        Path(f"image-{index}.{ext}").write_bytes(raw)
    print("Every returned image saved; complete response metadata retained")
save_images(json.loads(Path("result.json").read_text())["data"])
PY_RESULT
```

### Terima dan simpan hasil

#### Ailoot Ultra · Imej

Muat turun setiap imej yang dikembalikan atau simpan kandungan Base64-nya

- `GET /v1/media/tasks/{task_id}`
- `GET /v1/media/assets/{asset_id}/content`
- `GET /v1/media/assets`
- `GET /v1/media/assets/{asset_id}`

Pembacaan kandungan lain

Baca aset sedia ada yang menjadi milik anda

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o owned-assets.json
# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.
```

##### Simpan semua hasil yang selesai

Simpan setiap imej yang selesai; dapatkan setiap URL yang dikembalikan atau nyahkod kandungan Base64-nya.

Simpan respons dan pengepala yang lengkap, setiap output sebenar, pengecam asal yang dikembalikan serta semua medan penggunaan. Pulihkan operasi asal tanpa menghantar permintaan penciptaan sekali lagi.

##### Jika respons asal perlu disemak

Simpan X-Client-Request-ID yang dikembalikan untuk penyelarasan rekod. Baca hanya nilai task\_id/asset\_id sebenar yang dikembalikan atau pustaka media milik anda; jangan sekali-kali bina URL tugas daripada ID operasi atau hantar semula permintaan penciptaan.

Medan respons

| Medan | Jenis |
| --- | --- |
| Medan`created` | Jenis |
| Medan`data[].url` | Jenis |
| Medan`data[].b64_json` | Jenis |
| Medan`usage` | Jenis |

### Alias

#### Alias model

**Ailoot Ultra** [`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=images)

#### Alias laluan kaedah

`/v1/images`

#### ID pemanggil berkaitan

[`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=images)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `openai/gpt-5-image-mini`

[`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=messages)

OpenAI /`openai/gpt-5-image-mini`

### Pengenalan

GPT-5 Image Mini menggabungkan keupayaan bahasa GPT-5 Mini daripada OpenAI dengan GPT Image 1 Mini untuk penjanaan visual dan suntingan berasaskan rujukan. Profil ini menerima teks, imej dan dokumen serta mengembalikan teks dan imej, bagi menyokong aliran kerja yang memerlukan respons bertulis serta aset visual.

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 openai/gpt-5-image-mini | 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.005** / 1K token Output · Token output **$0.004** / 1K token Input · Bacaan cache **$0.0005** / 1K token Input · Penulisan cache **—** / 1K token Input · Penulisan cache, 1 jam **—** / 1K token Output · Token keluaran imej **$0.016** / 1K token imej |
| KonfigurasiTahap panjang permintaan 1 | Jadual kadar— | Token konteks, melebihi0 | Token konteks, sehingga dan termasukTiada had atas | Caj Input · Token input **$0.005** / 1K token Output · Token output **$0.004** / 1K token Input · Bacaan cache **$0.0005** / 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": "openai/gpt-5-image-mini",
  "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': 'openai/gpt-5-image-mini', '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': 'openai/gpt-5-image-mini', '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** [`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=messages)

#### Alias laluan kaedah

`/v1/images`

#### ID pemanggil berkaitan

[`openai/gpt-5-image-mini`](https://ailoot.ai/models/ms/#m=openai%2Fgpt-5-image-mini&route=Ultra&caller=openai%2Fgpt-5-image-mini&fmt=messages)

FAQ · OpenAI: GPT-5 Image Mini

Apakah input dan hasil yang tersedia?

`POST /v1/chat/completions` · `openai/gpt-5-image-mini`: `text` → `text` `POST /v1/images/generations` · `openai/gpt-5-image-mini`: `text`, `image` → `image` `POST /v1/messages` · `openai/gpt-5-image-mini`: `text` → `json`, `sse`

Apakah medan yang digunakan oleh permintaan?

`POST /v1/chat/completions` · `openai/gpt-5-image-mini`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/images/generations` · `openai/gpt-5-image-mini`: `model`, `prompt`, `aspect_ratio`, `quality`, `background`, `n`, `input_references`, `output_compression`, `provider` `POST /v1/messages` · `openai/gpt-5-image-mini`: `model`, `messages`, `max_tokens`, `stream`

Apakah had yang terpakai?

`POST /v1/chat/completions` · `openai/gpt-5-image-mini`: `messages.min_items`: `1` `POST /v1/images/generations` · `openai/gpt-5-image-mini`: `n.minimum`: `1`; `n.maximum`: `10`; `output_compression.minimum`: `0`; `output_compression.maximum`: `100`

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.
