CodeGeeX-4
CodeGeeX4 è una famiglia di modelli di programmazione multilingue per generazione, completamento, spiegazione e correzione del codice e domande sui repository. Le guide native trattano prompt specifici per attività, riempimento di lacune nel codice esistente e uso di file correlati per preparare modifiche con percorsi di file espliciti.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionscodegeex-4 - Ailoot Ultra · Anthropic Messages
POST /v1/messagescodegeex-4
Informazioni sul modello
Questa descrizione illustra le funzionalità del modello. Gli input, gli output e le opzioni disponibili in Ailoot per il metodo selezionato sono elencati di seguito.
CodeGeeX4 è una famiglia di modelli di programmazione multilingue costruita attorno all'assistenza alla programmazione e al lavoro su file sorgente correlati. Il produttore pubblica CodeGeeX4-ALL-9B come membro open source della serie, sviluppato mediante ulteriore addestramento di GLM-4-9B. La documentazione tratta generazione e completamento del codice, domande di programmazione, analisi dei repository e flussi connessi che coinvolgono un interprete di codice, ricerca web o chiamate a funzioni. L'output ordinario è testo: codice, spiegazioni, risposte o modifiche etichettate per file, secondo l'istruzione dell'attività.
Inizia scegliendo l'operazione e fornendo al modello il codice necessario. La guida nativa ai prompt di sistema contiene istruzioni distinte per aggiungere commenti, spiegare un programma, tradurre tra linguaggi di programmazione, revisionare o correggere codice, generare test e rispondere a domande su un file. Per una correzione, includi il codice che presenta l'errore, il comportamento osservato e il risultato atteso. Per la traduzione, indica il linguaggio di programmazione di destinazione e fornisci l'intera funzione pertinente. Per i commenti, l'istruzione del produttore preserva il codice e aggiunge commenti; per varie attività che producono codice, chiede soltanto codice. Queste distinzioni aiutano a rendere il risultato utilizzabile come artefatto di codice o spiegazione, evitando di lasciare implicito il formato di output.
Le guide forniscono prompt di sistema in cinese e inglese. La lingua dell'istruzione di sistema non determina da sola quella della risposta, quindi richiedi esplicitamente la lingua della risposta quando serve una spiegazione. Le indicazioni specializzate per la revisione descrivono un output in cinese; il prompt generale dell'assistente di programmazione offre una modalità distinta per chiedere una revisione in un'altra lingua. Alcuni template di attività impostano la lingua dei commenti in modo che corrisponda a quella del sorgente ed escludono output misti in cinese e inglese. In una conversazione continuativa, ripeti l'istruzione pertinente quando cambi operazione, affinché una richiesta di spiegazione non venga confusa con la precedente richiesta di output composto soltanto da codice.
Per il completamento contestuale, il formato nativo descrive il file di destinazione, il suo linguaggio di programmazione e il codice ai due lati del punto di inserimento. Usa il percorso relativo del file con ###PATH: e includi ###LANGUAGE:; la guida consente di lasciare vuoto il valore della lingua quando non è nota. ###MODE: seleziona LINE per il completamento di una singola riga oppure BLOCK per più righe, con BLOCK come valore predefinito documentato. La sequenza fill-in-the-middle presenta prima il suffisso, poi il prefisso e infine la parte centrale mancante, contrassegnati da <|code_suffix|>, <|code_prefix|> e <|code_middle|>. Il template di infilling del produttore omette il prompt di sistema. Mantenere il suffisso fornisce al modello il flusso di controllo circostante e il codice che deve restare dopo l'inserimento. Il risultato è il codice mancante proposto, che può poi essere verificato nella posizione originale.
Il completamento tra file aggiunge estratti correlati come materiale di riferimento, ciascuno introdotto da ###REFERENCE: e dal proprio ###PATH:. Mantieni questi riferimenti separati dal file di destinazione e dal suo punto di inserimento. Per esempio, quando completi una funzione che chiama una funzione ausiliaria esistente, fornisci la firma e l'implementazione di quest'ultima insieme al prefisso e al suffisso della funzione di destinazione. La guida al completamento a livello di progetto estende questo approccio alla generazione di un nuovo file a partire dai requisiti del progetto e dal codice esistente pertinente. Percorsi chiari e dipendenze selezionate consentono di distinguere il codice fornito come prova dal file che il modello deve completare.
Le domande sui repository usano un formato nativo diverso: elenca ogni file sotto ###PATH:, includi il relativo codice e poi formula la domanda. Un brief utile può chiedere dove venga definito un valore o come una chiamata passi tra i moduli forniti. La modifica di repository usa una propria istruzione di sistema per aggiungere, eliminare o modificare file e richiede output nel formato ###PATH: {PATH} seguito dal codice. Prepara i file pertinenti e descrivi la modifica richiesta, incluso il file da aggiungere o il comportamento da preservare. Leggi i blocchi restituiti ed etichettati con i percorsi come modifiche proposte; non dimostrano che un repository sia già stato modificato o che il codice sia stato eseguito.
Per il membro pubblicato CodeGeeX4-ALL-9B, il produttore documenta un contesto di 128K e consiglia di selezionare i contenuti pertinenti del repository quando un progetto supera quella finestra. Il recupero di estratti correlati e la riduzione degli input troppo grandi sono passaggi preparatori nella guida ai repository. Il contesto deve contenere le istruzioni, il codice fornito e la continuazione generata, quindi un insieme mirato di file è spesso più utile di un dump indistinto del progetto. Le impostazioni di generazione esemplificative del produttore controllano la lunghezza di una specifica esecuzione; non definiscono una lunghezza massima universale della risposta per ogni edizione CodeGeeX4.
La serie descrive anche flussi di programmazione connessi con interpreti, ricerca e chiamate a funzioni. Un flusso di questo tipo richiede che l'applicazione circostante fornisca gli strumenti nominati e restituisca i loro risultati alla conversazione. Quando chiedi codice eseguibile, specifica il linguaggio previsto, le dipendenze e il comportamento atteso; quando chiedi un'analisi, richiedi i riferimenti ai file o alle funzioni pertinenti. Compila o esegui le modifiche proposte nell'ambiente previsto e verifica il comportamento rispetto al requisito fornito prima di incorporarle in un progetto.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions codegeex-4
codegeex-4Introduzione
CodeGeeX4 è una famiglia di modelli di programmazione multilingue per generazione, completamento, spiegazione e correzione del codice e domande sui repository. Le guide native trattano prompt specifici per attività, riempimento di lacune nel codice esistente e uso di file correlati per preparare modifiche con percorsi di file espliciti.
- Input accettati
- Testo
- Risultati
- Testo
Disponibile in Ailoot · input e metodi
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Tipi di input
text- Tipi di output
text- Formato di output
- json o SSE
| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObbligatorio | Valori e limiti codegeex-4 | Predefinito— |
Campomessages | Tipomessage[] | RequisitoObbligatorio | Valori e limiti Numero minimo di elementi: 1 | Predefinito— |
Campomessages[].role | Tipostring | RequisitoObbligatorio | Valori e limiti Dipende dal modello | Predefinito— |
Campomessages[].content | Tipostring | RequisitoFacoltativo | Valori e limiti Si applica quando: Conversazione testuale | Predefinito— |
Campostream | Tipoboolean | RequisitoFacoltativo | Valori e limiti | Predefinitofalse |
Combinazioni di materiali in input
Testo · Testo UTF8
messages[].content
Parametri e ciclo di vita del metodo
| Parametro | Contratto |
|---|---|
Parametrocontent_type | Contrattoapplication/json |
Parametrorequired | Contrattomodel, messages |
Parametromaterial_types | Contrattotext |
Parametromessages | ContrattoArray di messaggi con struttura role/content |
Parametrofile_material | ContrattoDocumento UTF-8 effettivo inserito come testo letterale; nessun ID di file dedotto |
Parametrooptional_controls | Contrattostream |
Parametrocontrol_scope | ContrattoConversazione testuale; stream è un booleano e per impostazione predefinita vale false. |
Parametrooutput_modalities | Contrattotext |
Parametrohosted_operations | Contrattofalse |
Parametromultimodal_input_binding | Contrattonull |
Alias del metodo: /chat/completions
Ciclo di vita: synchronous_or_streamed
Invia l’ID esatto del modello con messages.
La lunghezza del contesto non è un limite di uscita.
Un file di testo può fornire testo letterale; gli ingressi immagine/audio/oggetto file richiedono un’associazione esatta.
Tariffe
Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.
- Modalità rapida
- Non specificato Quando è selezionata la modalità rapida
- Modalità flex
- Non specificato Quando è selezionata la modalità flex
- Sforzo massimo di ragionamento
- Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)
Tariffe Ailoot
Prezzi per configurazione
| Configurazione | Listino delle tariffe | Costo |
|---|---|---|
| ConfigurazioneTariffe di base dei token | Listino delle tariffeTariffa base | Costo Input · Token in input $0.028 / 1K token Output · Token in output $0.028 / 1K token Input · Lettura dalla cache $0 / 1K token Input · Scrittura nella cache $0 / 1K token Input · Scrittura nella cache, 1 ora — / 1K token |
Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →
Esempi di richieste
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"))
Ricevi e salva i risultati
Ailoot Ultra · OpenAI Chat
json o SSE
Conserva tutti i risultati completati
Conserva ogni risposta, file e parte di contenuto restituiti per intero.
Conserva ogni scelta con contenuto, chiamate agli strumenti e ragionamento. In SSE assembla i delta per indice di scelta e strumento e conserva il motivo finale di completamento e i dati di utilizzo.
Se occorre verificare la risposta originale
Conserva gli ID e le intestazioni di richiesta/risposta. Non viene fornito alcun URL generico per recuperare un’attività testuale.
Campi della risposta
| Campo | Tipo |
|---|---|
Campochoices[].index | Tipointeger |
Campochoices[].message.content | Tipostring|null |
Campochoices[].message.tool_calls | Tipotool_call[] |
Campochoices[].message.reasoning_content | Tipostring |
Campochoices[].message.reasoning_details | Tipoobject|array |
Campochoices[].finish_reason | Tipostring|null |
Campousage | Tipoobject |
Errori e passaggi successivi
| Risposta | Condizione | Passaggio successivo |
|---|---|---|
Risposta400 · invalid_request_error | CondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validi | Passaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione. |
Alias
Alias del modello
Ailoot Ultra codegeex-4
Alias dei percorsi dei metodi
/chat/completions
ID di chiamata correlati
Ailoot Ultra · Anthropic Messages POST /v1/messages codegeex-4
codegeex-4Introduzione
CodeGeeX4 è una famiglia di modelli di programmazione multilingue per generazione, completamento, spiegazione e correzione del codice e domande sui repository. Le guide native trattano prompt specifici per attività, riempimento di lacune nel codice esistente e uso di file correlati per preparare modifiche con percorsi di file espliciti.
- Input accettati
- Testo
- Risultati
- json · sse
Disponibile in Ailoot · input e metodi
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Tipi di input
text- Tipi di output
json,sse- Formato di output
- JSON o SSE
| Campo | Tipo | Requisito | Valori e limiti | Predefinito |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObbligatorio | Valori e limiti codegeex-4 | Predefinito— |
Campomessages | Tipomessage[] | RequisitoObbligatorio | Valori e limiti | Predefinito— |
Campomessages[].role | Tipostring | RequisitoObbligatorio | Valori e limiti user, assistant | Predefinito— |
Campomessages[].content | Tipostring | RequisitoObbligatorio | Valori e limiti | Predefinito— |
Campomax_tokens | Tipointeger | RequisitoObbligatorio | Valori e limiti | Predefinito— |
Campostream | Tipoboolean | RequisitoFacoltativo | Valori e limiti | Predefinitofalse |
Combinazioni di materiali in input
Testo · Testo UTF-8
Stringa messages[].content
Parametri e ciclo di vita del metodo
| Parametro | Contratto |
|---|---|
Parametrocontent_type | Contrattoapplication/json |
Parametrorequired | Contrattomodel, messages, max_tokens |
Parametrooptional_controls | Contrattostream |
Parametromaterial_types | Contrattotext |
Parametrotext_file_material | ContrattoLeggi il documento UTF-8 effettivo e inserisci il testo nell’ingresso indicato o nella stringa del contenuto del messaggio. |
Ciclo di vita: synchronous_or_streamed
Tariffe
Le tariffe non aggiungono opzioni alla richiesta. I parametri supportati sono elencati nel metodo selezionato.
- Modalità rapida
- Non specificato Quando è selezionata la modalità rapida
- Modalità flex
- Non specificato Quando è selezionata la modalità flex
- Sforzo massimo di ragionamento
- Non specificato Quando lo sforzo massimo di ragionamento usa l'adeguamento predefinito (default)
Tariffe Ailoot
Prezzi per configurazione
| Configurazione | Listino delle tariffe | Costo |
|---|---|---|
| ConfigurazioneTariffe di base dei token | Listino delle tariffeTariffa base | Costo Input · Token in input $0.028 / 1K token Output · Token in output $0.028 / 1K token Input · Lettura dalla cache $0 / 1K token Input · Scrittura nella cache $0 / 1K token Input · Scrittura nella cache, 1 ora — / 1K token |
Ailoot prenota un importo stimato prima di una richiesta. Dopo il risultato, addebita il costo finale in base all’utilizzo misurato. Per lo streaming, l’addebito usa il record finale di utilizzo. Come funzionano la prenotazione e l’addebito finale →
Esempi di richieste
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))
Ricevi e salva i risultati
Ailoot Ultra · Anthropic Messages
JSON o SSE
Conserva tutti i risultati completati
Conserva ogni risposta, file e parte di contenuto restituiti per intero.
Conserva tutti i blocchi di contenuto, le firme di ragionamento e gli ID effettivi di utilizzo degli strumenti. Assembla tutti i delta dei blocchi SSE; il primo blocco di testo non è l’uscita completa.
Se occorre verificare la risposta originale
Conserva gli ID e le intestazioni di richiesta/risposta. Non viene fornito alcun URL generico per recuperare un’attività testuale.
Campi della risposta
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campomodel | Tipostring |
Campocontent[] | Tipotext|thinking|tool_use|other content block |
Campostop_reason | Tipostring|null |
Campousage | Tipoobject |
Errori e passaggi successivi
| Risposta | Condizione | Passaggio successivo |
|---|---|---|
Risposta400 · invalid_request_error | CondizioneCampi obbligatori, rappresentazione del materiale o valore del parametro non validi | Passaggio successivoCorreggi i campi indicati prima di una nuova richiesta di creazione. |
Alias
Alias del modello
Ailoot Ultra codegeex-4
Alias dei percorsi dei metodi
/chat/completions
ID di chiamata correlati
FAQ · CodeGeeX-4
- Quali input e risultati sono disponibili?
POST /v1/chat/completions·codegeex-4:text→textPOST /v1/messages·codegeex-4:text→json,sse- Quali campi usa la richiesta?
POST /v1/chat/completions·codegeex-4:model,messages,streamPOST /v1/messages·codegeex-4:model,messages,max_tokens,stream- Quali limiti si applicano?
POST /v1/chat/completions·codegeex-4:messages.min_items:1