model

CodeGeeX-4

Markdown · JSON

CodeGeeX-4

CodeGeeX4 adalah keluarga model pemrograman multibahasa untuk pembuatan, pelengkapan, penjelasan, dan perbaikan kode serta pertanyaan tentang repositori. Panduan aslinya mencakup prompt khusus tugas, pengisian celah di antara kode yang sudah ada, dan penggunaan berkas terkait untuk menyiapkan perubahan dengan jalur berkas yang eksplisit.

Tentang model

Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.

CodeGeeX4 adalah keluarga model pemrograman multibahasa yang dirancang untuk bantuan pemrograman dan pekerjaan lintas berkas sumber yang saling terkait. Produsen menerbitkan CodeGeeX4-ALL-9B sebagai anggota sumber terbuka dari seri ini, yang dikembangkan melalui pelatihan lanjutan GLM-4-9B. Dokumentasinya mencakup pembuatan dan pelengkapan kode, pertanyaan pemrograman, analisis repositori, serta alur kerja terhubung yang melibatkan interpreter kode, pencarian web, atau pemanggilan fungsi. Keluaran umumnya berupa teks: kode, penjelasan, jawaban, atau perubahan berlabel berkas, sesuai dengan instruksi tugas.

Mulailah dengan memilih operasi dan memberikan kode yang dibutuhkan model. Panduan prompt sistem asli memiliki instruksi terpisah untuk menambahkan komentar, menjelaskan program, menerjemahkan antarbahasa pemrograman, meninjau atau memperbaiki kode, membuat pengujian, dan menjawab pertanyaan tentang berkas. Untuk perbaikan, sertakan kode yang gagal, perilaku yang diamati, dan hasil yang diinginkan. Untuk penerjemahan, nyatakan bahasa pemrograman tujuan dan berikan fungsi relevan secara lengkap. Untuk komentar, instruksi tugas dari produsen mempertahankan kode dan menambahkan komentar; untuk beberapa tugas yang menghasilkan kode, instruksinya meminta kode saja. Perbedaan ini membantu membuat hasil dapat digunakan sebagai artefak kode atau penjelasan, alih-alih membiarkan format keluarannya tersirat.

Panduan menyediakan prompt sistem dalam bahasa Tionghoa dan Inggris. Bahasa instruksi sistem dengan sendirinya tidak menentukan bahasa jawaban, jadi mintalah bahasa respons secara eksplisit ketika penjelasan diperlukan. Panduan peninjauan khusus menjelaskan keluaran dalam bahasa Tionghoa; prompt asisten pemrograman umum menyediakan cara tersendiri untuk meminta peninjauan dalam bahasa respons lain. Beberapa templat tugas menetapkan bahasa komentar agar sesuai dengan sumber dan mengecualikan keluaran campuran bahasa Tionghoa dan Inggris. Dalam percakapan berkelanjutan, ulangi instruksi tugas yang relevan saat berganti operasi agar permintaan penjelasan tidak tertukar dengan permintaan sebelumnya untuk keluaran berupa kode saja.

Untuk pelengkapan kontekstual, format asli menjelaskan berkas tujuan, bahasa pemrogramannya, dan kode di kedua sisi titik penyisipan. Gunakan jalur berkas relatif dengan ###PATH: dan sertakan ###LANGUAGE:; panduan mengizinkan nilai bahasa kosong ketika bahasanya tidak diketahui. ###MODE: memilih LINE untuk pelengkapan satu baris atau BLOCK untuk beberapa baris, dengan BLOCK sebagai bawaan yang terdokumentasi. Urutan fill-in-the-middle adalah sufiks terlebih dahulu, lalu prefiks, kemudian bagian tengah yang hilang, ditandai dengan <|code_suffix|>, <|code_prefix|>, dan <|code_middle|>. Templat pengisian dari produsen tidak menyertakan prompt sistem. Mempertahankan sufiks memberi model alur kendali di sekitarnya serta kode yang harus tetap ada setelah penyisipan. Hasilnya berupa usulan kode yang hilang, yang kemudian dapat diperiksa di lokasi aslinya.

Pelengkapan lintas berkas menambahkan cuplikan terkait sebagai materi referensi, masing-masing diawali dengan ###REFERENCE: dan ###PATH: tersendiri. Pisahkan referensi ini dari berkas tujuan dan titik penyisipannya. Misalnya, saat melengkapi fungsi yang memanggil fungsi pembantu yang sudah ada, berikan signature dan implementasi fungsi pembantu tersebut bersama prefiks serta sufiks fungsi tujuan. Panduan pelengkapan tingkat proyek memperluas pendekatan ini untuk membuat berkas baru dari persyaratan proyek dan kode relevan yang sudah ada. Jalur yang jelas dan dependensi yang dipilih memungkinkan pembedaan antara kode yang diberikan sebagai bukti dan berkas yang diminta untuk dilengkapi oleh model.

Pertanyaan repositori menggunakan tata letak asli yang berbeda: cantumkan setiap berkas di bawah ###PATH:, sertakan kodenya, lalu ajukan pertanyaan. Arahan tugas yang berguna dapat menanyakan lokasi definisi suatu nilai atau cara sebuah pemanggilan melewati modul-modul yang diberikan. Penyuntingan repositori menggunakan instruksi sistemnya sendiri untuk menambahkan, menghapus, atau mengubah berkas dan meminta keluaran dalam format ###PATH: {PATH} diikuti kode. Siapkan berkas yang relevan dan jelaskan perubahan yang diperlukan, termasuk berkas yang perlu ditambahkan atau perilaku yang harus dipertahankan. Baca blok berlabel jalur yang dikembalikan sebagai usulan perubahan; blok tersebut bukan bukti bahwa repositori sudah diubah atau kode sudah dijalankan.

Untuk anggota CodeGeeX4-ALL-9B yang diterbitkan, produsen mendokumentasikan konteks 128K dan merekomendasikan pemilihan isi repositori yang relevan ketika proyek melampaui jendela tersebut. Pengambilan cuplikan terkait dan pemangkasan masukan yang terlalu besar merupakan langkah persiapan dalam panduan repositori. Konteks harus menampung instruksi, kode yang diberikan, dan kelanjutan yang dihasilkan, sehingga kumpulan berkas yang terarah sering kali lebih berguna daripada dump proyek tanpa pembedaan. Pengaturan generasi contoh dari produsen mengendalikan panjang satu proses tertentu; pengaturan tersebut tidak mendefinisikan panjang jawaban maksimum universal untuk setiap edisi CodeGeeX4.

Seri ini juga menjelaskan alur kerja pemrograman terhubung dengan interpreter, pencarian, dan pemanggilan fungsi. Alur kerja semacam itu memerlukan aplikasi di sekelilingnya untuk menyediakan alat yang disebutkan dan mengembalikan hasilnya ke percakapan. Ketika meminta kode yang dapat dijalankan, nyatakan bahasa, dependensi, dan perilaku yang diinginkan; ketika meminta analisis, mintalah referensi berkas atau fungsi yang relevan. Kompilasikan atau jalankan perubahan yang diusulkan dalam lingkungan yang dituju dan periksa perilakunya terhadap persyaratan yang diberikan sebelum memasukkannya ke proyek.

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions codegeex-4

codegeex-4

Zhipu /codegeex-4

Mulai

CodeGeeX4 adalah keluarga model pemrograman multibahasa untuk pembuatan, pelengkapan, penjelasan, dan perbaikan kode serta pertanyaan tentang repositori. Panduan aslinya mencakup prompt khusus tugas, pengisian celah di antara kode yang sudah ada, dan penggunaan berkas terkait untuk menyiapkan perubahan dengan jalur berkas yang eksplisit.

Masukan yang diterima
Teks
Hasil
Teks

Tersedia di Ailoot · masukan & metode

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Masukan
text
Keluaran
text
Format keluaran
json atau SSE
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
codegeex-4
Bawaan—
KolommessagesJenismessage[]PersyaratanWajibNilai & batasan
Item minimum: 1
Bawaan—
Kolommessages[].roleJenisstringPersyaratanWajibNilai & batasan
Bergantung pada model
Bawaan—
Kolommessages[].contentJenisstringPersyaratanOpsionalNilai & batasan
Berlaku jika: Percakapan teks
Bawaan—
KolomstreamJenisbooleanPersyaratanOpsionalNilai & batasanBawaanfalse
Kombinasi bahan masukan

Teks · Teks UTF8

messages[].content

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages
Parametermaterial_typesKontraktext
ParametermessagesKontrakarray pesan dengan struktur role/content
Parameterfile_materialKontrakdokumen UTF-8 yang sebenarnya dimasukkan sebagai teks apa adanya; ID file tidak disimpulkan
Parameteroptional_controlsKontrakstream
Parametercontrol_scopeKontrakPercakapan teks; stream adalah nilai boolean dengan false sebagai bawaan.
Parameteroutput_modalitiesKontraktext
Parameterhosted_operationsKontrakfalse
Parametermultimodal_input_bindingKontraknull

Alias metode: /chat/completions

Siklus hidup: synchronous_or_streamed

Kirim ID model yang tepat bersama messages.

Panjang konteks bukan batas keluaran.

File teks dapat menyediakan teks apa adanya; masukan gambar/audio/objek file memerlukan pengikatan yang tepat.

Paket

Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.

Mode Fast
Tidak ditentukan Saat mode fast dipilih
Mode Flex
Tidak ditentukan Saat mode flex dipilih
Upaya penalaran maksimum
Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default

Tarif Ailoot

Harga menurut konfigurasi

KonfigurasiJadwal tarifBiaya
KonfigurasiTarif dasar tokenJadwal tarifTarif dasarBiaya
Masukan · Token masukan $0.028 / 1K token
Keluaran · Token keluaran $0.028 / 1K token
Masukan · Pembacaan cache $0 / 1K token
Masukan · Penulisan cache $0 / 1K token
Masukan · Penulisan cache, 1 jam — / 1K token

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →

Contoh permintaan

Ailoot Ultra · OpenAI Chat

curlPython SDK
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"codegeex-4","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
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="codegeex-4", 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, berkas, dan bagian konten yang dikembalikan.

Simpan setiap alternatif jawaban beserta konten, panggilan alat, dan penalarannya. Dalam SSE, gabungkan delta menurut indeks alternatif jawaban/alat, lalu pertahankan alasan penghentian akhir dan data penggunaan.

Jika respons asli perlu diperiksa

Simpan ID permintaan/respons dan header. URL umum untuk pengambilan tugas teks tidak disediakan.

Kolom respons
KolomJenis
Kolomchoices[].indexJenisinteger
Kolomchoices[].message.contentJenisstring|null
Kolomchoices[].message.tool_callsJenistool_call[]
Kolomchoices[].message.reasoning_contentJenisstring
Kolomchoices[].message.reasoning_detailsJenisobject|array
Kolomchoices[].finish_reasonJenisstring|null
KolomusageJenisobject
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.

Alias

Alias model

Ailoot Ultra codegeex-4

Alias jalur metode

/chat/completions

ID pemanggil terkait

codegeex-4

Ailoot Ultra · Anthropic Messages POST /v1/messages codegeex-4

codegeex-4

Zhipu /codegeex-4

Mulai

CodeGeeX4 adalah keluarga model pemrograman multibahasa untuk pembuatan, pelengkapan, penjelasan, dan perbaikan kode serta pertanyaan tentang repositori. Panduan aslinya mencakup prompt khusus tugas, pengisian celah di antara kode yang sudah ada, dan penggunaan berkas terkait untuk menyiapkan perubahan dengan jalur berkas yang eksplisit.

Masukan yang diterima
Teks
Hasil
json · sse

Tersedia di Ailoot · masukan & metode

Ailoot Ultra · Anthropic Messages POST /v1/messages
Masukan
text
Keluaran
json, sse
Format keluaran
JSON atau SSE
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
codegeex-4
Bawaan—
KolommessagesJenismessage[]PersyaratanWajibNilai & batasanBawaan—
Kolommessages[].roleJenisstringPersyaratanWajibNilai & batasan
user, assistant
Bawaan—
Kolommessages[].contentJenisstringPersyaratanWajibNilai & batasanBawaan—
Kolommax_tokensJenisintegerPersyaratanWajibNilai & batasanBawaan—
KolomstreamJenisbooleanPersyaratanOpsionalNilai & batasanBawaanfalse
Kombinasi bahan masukan

Teks · Teks UTF-8

string messages[].content

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, messages, max_tokens
Parameteroptional_controlsKontrakstream
Parametermaterial_typesKontraktext
Parametertext_file_materialKontrakBaca dokumen UTF-8 yang sebenarnya dan masukkan teksnya ke string masukan atau konten pesan yang ditunjukkan.

Siklus hidup: synchronous_or_streamed

Paket

Referensi tarif tidak menambah opsi permintaan. Parameter yang didukung tercantum pada metode yang dipilih.

Mode Fast
Tidak ditentukan Saat mode fast dipilih
Mode Flex
Tidak ditentukan Saat mode flex dipilih
Upaya penalaran maksimum
Tidak ditentukan Saat upaya penalaran maksimum menggunakan penyesuaian default

Tarif Ailoot

Harga menurut konfigurasi

KonfigurasiJadwal tarifBiaya
KonfigurasiTarif dasar tokenJadwal tarifTarif dasarBiaya
Masukan · Token masukan $0.028 / 1K token
Keluaran · Token keluaran $0.028 / 1K token
Masukan · Pembacaan cache $0 / 1K token
Masukan · Penulisan cache $0 / 1K token
Masukan · Penulisan cache, 1 jam — / 1K token

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →

Contoh permintaan

Ailoot Ultra · Anthropic Messages

Isi permintaan JSON minimal yang lengkapcurl · gunakan dokumen UTF-8 AndaPython · simpan hasil secara lengkap
{
  "model": "codegeex-4",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
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': 'codegeex-4', '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
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': 'codegeex-4', '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, berkas, dan bagian konten yang dikembalikan.

Simpan semua blok konten, tanda tangan penalaran, dan ID penggunaan alat yang sebenarnya. Gabungkan semua delta blok SSE; blok teks pertama bukan keseluruhan keluaran.

Jika respons asli perlu diperiksa

Simpan ID permintaan/respons dan header. URL umum untuk pengambilan tugas teks tidak disediakan.

Kolom respons
KolomJenis
KolomidJenisstring
KolommodelJenisstring
Kolomcontent[]Jenistext|thinking|tool_use|other content block
Kolomstop_reasonJenisstring|null
KolomusageJenisobject
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.

Alias

Alias model

Ailoot Ultra codegeex-4

Alias jalur metode

/chat/completions

ID pemanggil terkait

codegeex-4

FAQ · CodeGeeX-4
Input dan hasil apa yang tersedia?

POST /v1/chat/completions · codegeex-4: text → text

POST /v1/messages · codegeex-4: text → json, sse

Kolom apa yang digunakan permintaan?

POST /v1/chat/completions · codegeex-4: model, messages, stream

POST /v1/messages · codegeex-4: model, messages, max_tokens, stream

Batasan apa yang berlaku?

POST /v1/chat/completions · codegeex-4: messages.min_items: 1

Rincian selengkapnya

Hubungkan Ailoot ke Claude Code, OpenCode, Hermes, atau aplikasi Anda.

Perusahaan dan portofolio proyeknya

Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.

Beli token dengan diskon.

Diskon langganan untuk pekerjaan rutin. Kode promo — hingga 50% untuk pembelian token.

Langganan
Pilih paket dengan diskon untuk permintaan rutin Anda.
Kode promo hingga 50%
Masukkan kode saat membeli. Harga dihitung ulang sesuai promosi aktif.
Biaya dalam riwayat
Model, token, dan jumlah tagihan disimpan untuk setiap permintaan.

Pilih langganan · Lihat harga model

Hubungkan API ke produk yang Anda jual.

SaaS, aplikasi, dan bot — sesuai penawaran dan perjanjian lisensi Ailoot. Untuk penjualan kembali, mintalah lisensi reseller.

Aplikasi komersial
Integrasikan pembuatan teks, gambar, video, dan suara dalam fitur berbayar layanan Anda.
Lisensi reseller
Kirim deskripsi proyek dan skema akses. Mintalah ketentuan penggunaan dan penjualan kembali secara tertulis.
Dokumen di situs
Penawaran, perjanjian lisensi, dan kebijakan pemrosesan data tersedia sebelum koneksi.

Minta lisensi reseller · Penawaran dan perjanjian lisensi