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.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionscodegeex-4 - Ailoot Ultra · Anthropic Messages
POST /v1/messagescodegeex-4
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-4Mulai
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
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan codegeex-4 | Bawaan— |
Kolommessages | Jenismessage[] | PersyaratanWajib | Nilai & batasan Item minimum: 1 | Bawaan— |
Kolommessages[].role | Jenisstring | PersyaratanWajib | Nilai & batasan Bergantung pada model | Bawaan— |
Kolommessages[].content | Jenisstring | PersyaratanOpsional | Nilai & batasan Berlaku jika: Percakapan teks | Bawaan— |
Kolomstream | Jenisboolean | PersyaratanOpsional | Nilai & batasan | Bawaanfalse |
Kombinasi bahan masukan
Teks · Teks UTF8
messages[].content
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, messages |
Parametermaterial_types | Kontraktext |
Parametermessages | Kontrakarray pesan dengan struktur role/content |
Parameterfile_material | Kontrakdokumen UTF-8 yang sebenarnya dimasukkan sebagai teks apa adanya; ID file tidak disimpulkan |
Parameteroptional_controls | Kontrakstream |
Parametercontrol_scope | KontrakPercakapan teks; stream adalah nilai boolean dengan false sebagai bawaan. |
Parameteroutput_modalities | Kontraktext |
Parameterhosted_operations | Kontrakfalse |
Parametermultimodal_input_binding | Kontraknull |
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
| Konfigurasi | Jadwal tarif | Biaya |
|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Biaya 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
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
| Kolom | Jenis |
|---|---|
Kolomchoices[].index | Jenisinteger |
Kolomchoices[].message.content | Jenisstring|null |
Kolomchoices[].message.tool_calls | Jenistool_call[] |
Kolomchoices[].message.reasoning_content | Jenisstring |
Kolomchoices[].message.reasoning_details | Jenisobject|array |
Kolomchoices[].finish_reason | Jenisstring|null |
Kolomusage | Jenisobject |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiBidang wajib, representasi materi, atau nilai parameter tidak valid | Langkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru. |
Alias
Alias model
Ailoot Ultra codegeex-4
Alias jalur metode
/chat/completions
ID pemanggil terkait
Ailoot Ultra · Anthropic Messages POST /v1/messages codegeex-4
codegeex-4Mulai
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
| Kolom | Jenis | Persyaratan | Nilai & batasan | Bawaan |
|---|---|---|---|---|
Kolommodel | Jenisstring | PersyaratanWajib | Nilai & batasan codegeex-4 | Bawaan— |
Kolommessages | Jenismessage[] | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolommessages[].role | Jenisstring | PersyaratanWajib | Nilai & batasan user, assistant | Bawaan— |
Kolommessages[].content | Jenisstring | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolommax_tokens | Jenisinteger | PersyaratanWajib | Nilai & batasan | Bawaan— |
Kolomstream | Jenisboolean | PersyaratanOpsional | Nilai & batasan | Bawaanfalse |
Kombinasi bahan masukan
Teks · Teks UTF-8
string messages[].content
Parameter metode dan siklus hidup
| Parameter | Kontrak |
|---|---|
Parametercontent_type | Kontrakapplication/json |
Parameterrequired | Kontrakmodel, messages, max_tokens |
Parameteroptional_controls | Kontrakstream |
Parametermaterial_types | Kontraktext |
Parametertext_file_material | KontrakBaca 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
| Konfigurasi | Jadwal tarif | Biaya |
|---|---|---|
| KonfigurasiTarif dasar token | Jadwal tarifTarif dasar | Biaya 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
{
"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
| Kolom | Jenis |
|---|---|
Kolomid | Jenisstring |
Kolommodel | Jenisstring |
Kolomcontent[] | Jenistext|thinking|tool_use|other content block |
Kolomstop_reason | Jenisstring|null |
Kolomusage | Jenisobject |
Kesalahan dan langkah berikutnya
| Respons | Kondisi | Langkah berikutnya |
|---|---|---|
Respons400 · invalid_request_error | KondisiBidang wajib, representasi materi, atau nilai parameter tidak valid | Langkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru. |
Alias
Alias model
Ailoot Ultra codegeex-4
Alias jalur metode
/chat/completions
ID pemanggil terkait
FAQ · CodeGeeX-4
- Input dan hasil apa yang tersedia?
POST /v1/chat/completions·codegeex-4:text→textPOST /v1/messages·codegeex-4:text→json,sse- Kolom apa yang digunakan permintaan?
POST /v1/chat/completions·codegeex-4:model,messages,streamPOST /v1/messages·codegeex-4:model,messages,max_tokens,stream- Batasan apa yang berlaku?
POST /v1/chat/completions·codegeex-4:messages.min_items:1