模型

CodeGeeX-4

Markdown · JSON

CodeGeeX-4

CodeGeeX4 是多語言程式模型系列,用於程式碼生成、補全、說明、修復及儲存庫問答。原生指南涵蓋特定任務提示、填補既有程式碼間的空缺,以及利用相關檔案準備含明確檔案路徑的變更。

關於模型

此說明介紹模型的能力。Ailoot 可用的輸入、輸出與選項,依所選方法列於下方。

CodeGeeX4 是圍繞程式協助與跨相關原始碼檔案工作打造的多語言程式模型系列。製造商發布 CodeGeeX4-ALL-9B 作為此系列的開源成員,由 GLM-4-9B 持續訓練而來。文件涵蓋程式碼生成與補全、程式設計問答、儲存庫分析,以及涉及程式碼直譯器、網路搜尋或函式呼叫的連接工作流程。一般輸出為文字:依任務指令產生程式碼、說明、回答或帶檔案標籤的變更。

先選擇操作,並提供模型所需的程式碼。原生系統提示指南分別提供加入註解、解釋程式、在程式語言間翻譯、審閱或修復程式碼、產生測試,以及回答檔案相關問題的指令。修復任務應包含失敗程式碼、觀察行為與預期結果。翻譯任務應指出目標程式語言,並提供完整的相關函式。加入註解時,製造商的任務指令要求保留程式碼並新增註解;數種產生程式碼的任務則要求僅輸出程式碼。這些區別有助於讓結果成為可用的程式碼產出或說明,避免將輸出格式留在未明說的狀態。

指南提供中文與英文系統提示。系統指令的語言本身不會決定回答語言,因此需要說明時應明確指定回應語言。專門的審閱指引描述中文輸出;一般程式助理提示則提供以其他回應語言要求審閱的方式。有些任務範本將註解語言設為與來源一致,並排除中英文混合輸出。在持續對話中,切換操作時重申相關任務指令,避免將說明請求與上一個僅輸出程式碼的請求混淆。

情境補全的原生格式描述目標檔案、程式語言,以及插入點兩側的程式碼。使用 ###PATH: 提供相對檔案路徑,並包含 ###LANGUAGE:;指南允許未知語言時將值留空。###MODE: 以 LINE 選擇單行補全,或以 BLOCK 選擇多行補全,文件預設為 BLOCK。中間填補序列依序為後綴、前綴,再到缺少的中段,以 <|code_suffix|>、<|code_prefix|> 及 <|code_middle|> 標記。製造商的填補範本省略系統提示。保留後綴能提供周邊控制流程,以及插入後必須保留的程式碼。結果是建議補入的程式碼,之後可在原位置檢查。

跨檔案補全將相關片段加入參考資料,每項由 ###REFERENCE: 與各自的 ###PATH: 引入。將這些參照與目標檔案及其插入點分開。例如,補全呼叫現有輔助函式的函式時,提供輔助函式的簽章及實作,以及目標函式的前綴與後綴。專案層級補全指南將此方式延伸為根據專案需求及相關既有程式碼產生新檔案。清楚路徑與選定相依內容,讓作為佐證提供的程式碼與要求模型補全的檔案能被區分。

儲存庫問答採用另一種原生版面:每個檔案列於 ###PATH: 下,包含其程式碼,再提出問題。實用任務說明可問某個值在哪裡定義,或呼叫如何在提供的模組間傳遞。儲存庫編輯有自己的系統指令,用於新增、刪除或修改檔案,並要求以 ###PATH: {PATH} 後接程式碼的形式輸出。準備相關檔案,描述所需變更,包括要新增的檔案或要保留的行為。將傳回的路徑標示區塊視為建議變更;它們不能證明儲存庫已修改或程式碼已執行。

對公布的 CodeGeeX4-ALL-9B 成員,製造商記載 128K 上下文,並建議專案超過該視窗時選擇相關儲存庫內容。檢索相關片段與裁減過大輸入,是儲存庫指南中的準備步驟。上下文必須容納指令、提供的程式碼及生成續文,因此有目標的檔案集合,通常比未加區分的整個專案傾印更有用。製造商範例中的生成設定控制特定執行的長度,並未定義每個 CodeGeeX4 版本的通用回答長度上限。

此系列也描述使用直譯器、搜尋與函式呼叫的連接程式工作流程。這種流程需要周邊應用程式提供具名工具,並將結果傳回對話。要求可執行程式碼時,說明預定語言、相依套件及預期行為;要求分析時,請求相關檔案或函式參照。在預定環境編譯或執行建議變更,並依提供需求檢查行為,再將其納入專案。

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

codegeex-4

Zhipu /codegeex-4

入門

CodeGeeX4 是多語言程式模型系列,用於程式碼生成、補全、說明、修復及儲存庫問答。原生指南涵蓋特定任務提示、填補既有程式碼間的空缺,以及利用相關檔案準備含明確檔案路徑的變更。

接受的輸入
文字
結果
文字

Ailoot 可用 · 輸入與方法

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
輸入
text
輸出
text
輸出格式
json 或 SSE
欄位類型要求值與限制預設值
欄位model類型string要求必填值與限制
codegeex-4
預設值—
欄位messages類型message[]要求必填值與限制
項目數下限: 1
預設值—
欄位messages[].role類型string要求必填值與限制
依模型而定
預設值—
欄位messages[].content類型string要求選填值與限制
適用條件: 文字對話
預設值—
欄位stream類型boolean要求選填值與限制預設值false
輸入素材組合

文字 · UTF8 文字

messages[].content

方法參數與生命週期
參數規格
參數content_type規格application/json
參數required規格model, messages
參數material_types規格text
參數messages規格具有 role/content 結構的訊息陣列
參數file_material規格實際 UTF-8 文件以原文文字插入;不推定檔案 ID
參數optional_controls規格stream
參數control_scope規格文字對話;stream 是布林值,預設為 false。
參數output_modalities規格text
參數hosted_operations規格false
參數multimodal_input_binding規格null

方法別名: /chat/completions

生命週期: synchronous_or_streamed

將確切模型 ID 與 messages 一併送出。

上下文長度不是輸出上限。

文字檔案可提供原文文字;圖片/音訊/檔案物件輸入需要精確綁定。

方案

費率資訊不會增加請求選項。支援的參數列於所選方法中。

快速模式
未指定 選取快速模式時
flex 模式
未指定 選取 flex 模式時
最高推理強度
未指定 最高推理強度採用 default 調整值時

Ailoot 費率

各設定的價格

設定費率表費用
設定詞元基本費率費率表基本費率費用
輸入 · 輸入 Token $0.028 / 1K Token
輸出 · 輸出 Token $0.028 / 1K Token
輸入 · 讀取快取 $0 / 1K Token
輸入 · 寫入快取 $0 / 1K Token
輸入 · 寫入快取,1 小時 — / 1K Token

Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →

請求範例

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

接收並儲存結果

Ailoot Ultra · OpenAI Chat

json 或 SSE

保留所有已完成的結果

請保留所有完整傳回的回應、檔案與內容區塊。

保留每個候選項及其內容/工具呼叫/推理。SSE 中依候選項/工具索引組合增量,保留最終完成原因與用量。

需要檢查原始回應時

保留請求/回應 ID 與標頭。未提供通用的文字工作擷取 URL。

回應欄位
欄位類型
欄位choices[].index類型integer
欄位choices[].message.content類型string|null
欄位choices[].message.tool_calls類型tool_call[]
欄位choices[].message.reasoning_content類型string
欄位choices[].message.reasoning_details類型object|array
欄位choices[].finish_reason類型string|null
欄位usage類型object
錯誤與後續步驟
回應條件下一步
回應400 · invalid_request_error條件必要欄位、素材表示方式或參數值無效下一步提出新的建立請求前,先修正指定欄位。

別名

模型別名

Ailoot Ultra codegeex-4

方法路徑別名

/chat/completions

相關呼叫用 ID

codegeex-4

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

codegeex-4

Zhipu /codegeex-4

入門

CodeGeeX4 是多語言程式模型系列,用於程式碼生成、補全、說明、修復及儲存庫問答。原生指南涵蓋特定任務提示、填補既有程式碼間的空缺,以及利用相關檔案準備含明確檔案路徑的變更。

接受的輸入
文字
結果
json · sse

Ailoot 可用 · 輸入與方法

Ailoot Ultra · Anthropic Messages POST /v1/messages
輸入
text
輸出
json, sse
輸出格式
JSON 或 SSE
欄位類型要求值與限制預設值
欄位model類型string要求必填值與限制
codegeex-4
預設值—
欄位messages類型message[]要求必填值與限制預設值—
欄位messages[].role類型string要求必填值與限制
user, assistant
預設值—
欄位messages[].content類型string要求必填值與限制預設值—
欄位max_tokens類型integer要求必填值與限制預設值—
欄位stream類型boolean要求選填值與限制預設值false
輸入素材組合

文字 · UTF-8 文字

messages[].content 字串

方法參數與生命週期
參數規格
參數content_type規格application/json
參數required規格model, messages, max_tokens
參數optional_controls規格stream
參數material_types規格text
參數text_file_material規格讀取實際 UTF-8 文件,將文字放入指定的 input 或訊息內容字串。

生命週期: synchronous_or_streamed

方案

費率資訊不會增加請求選項。支援的參數列於所選方法中。

快速模式
未指定 選取快速模式時
flex 模式
未指定 選取 flex 模式時
最高推理強度
未指定 最高推理強度採用 default 調整值時

Ailoot 費率

各設定的價格

設定費率表費用
設定詞元基本費率費率表基本費率費用
輸入 · 輸入 Token $0.028 / 1K Token
輸出 · 輸出 Token $0.028 / 1K Token
輸入 · 讀取快取 $0 / 1K Token
輸入 · 寫入快取 $0 / 1K Token
輸入 · 寫入快取,1 小時 — / 1K Token

Ailoot 會在請求前預留估算金額。取得結果後,依實測用量結算最終費用。串流結算採用最終用量紀錄。預留金額與結算的運作方式 →

請求範例

Ailoot Ultra · Anthropic Messages

完整的最小 JSON 請求主體curl · 使用您的 UTF-8 文件Python · 儲存完整結果
{
  "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))

接收並儲存結果

Ailoot Ultra · Anthropic Messages

JSON 或 SSE

保留所有已完成的結果

請保留所有完整傳回的回應、檔案與內容區塊。

保留所有內容區塊、思考簽章與實際工具使用 ID。組合所有 SSE 區塊增量;第一個文字區塊不是完整輸出。

需要檢查原始回應時

保留請求/回應 ID 與標頭。未提供通用的文字工作擷取 URL。

回應欄位
欄位類型
欄位id類型string
欄位model類型string
欄位content[]類型text|thinking|tool_use|other content block
欄位stop_reason類型string|null
欄位usage類型object
錯誤與後續步驟
回應條件下一步
回應400 · invalid_request_error條件必要欄位、素材表示方式或參數值無效下一步提出新的建立請求前,先修正指定欄位。

別名

模型別名

Ailoot Ultra codegeex-4

方法路徑別名

/chat/completions

相關呼叫用 ID

codegeex-4

FAQ · CodeGeeX-4
可以使用哪些輸入與結果?

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

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

請求使用哪些欄位?

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

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

適用哪些限制?

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

更多詳情

將 Ailoot 串接 Claude Code、OpenCode、Hermes 或自己的應用程式。

公司及其專案組合

公司及其專案組合:數百萬客戶,每月銷售額達數十億。

優惠購買 token。

訂閱優惠適合持續工作,折扣碼購買 token 最高可折 50%。

訂閱
為定期請求選擇優惠方案。
最高 50% 折扣碼
購買時輸入代碼,價格依活動重算。
歷史中的費用
每次請求保存模型、token 與金額。

選擇訂閱 · 查看模型價格

將 API 加入 你銷售的產品。

依 Ailoot 正式服務條款與授權合約串接 SaaS、應用程式與機器人;轉售請申請經銷授權。

商用應用程式
在付費功能加入文字、圖片、影片與聲音生成。
經銷授權
提供專案說明與存取方式,要求書面使用和轉售條件。
網站文件
串接前可閱讀正式服務條款、授權合約與資料處理政策。

申請經銷授權 · 正式服務條款與授權合約