CodeGeeX-4
CodeGeeX4 je večjezična družina modelov za programiranje, namenjena ustvarjanju, dopolnjevanju, razlagi in popravljanju kode ter vprašanjem o repozitoriju. Njeni izvorni vodniki obravnavajo pozive za posamezne naloge, zapolnjevanje vrzeli med obstoječo kodo in uporabo povezanih datotek za pripravo sprememb z izrecnimi potmi datotek.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionscodegeex-4 - Ailoot Ultra · Anthropic Messages
POST /v1/messagescodegeex-4
O modelu
Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.
CodeGeeX4 je večjezična družina modelov za programiranje, zasnovana okoli programske pomoči in dela s povezanimi izvornimi datotekami. Proizvajalec objavlja CodeGeeX4-ALL-9B kot odprtokodnega člana serije, razvitega z nadaljevanjem učenja GLM-4-9B. Njegova dokumentacija zajema ustvarjanje in dopolnjevanje kode, programska vprašanja, analizo repozitorija ter povezane poteke dela z interpreterjem kode, spletnim iskanjem ali klici funkcij. Običajni izhod je besedilo: koda, razlage, odgovori ali spremembe, označene z datotekami, glede na navodilo naloge.
Začnite z izbiro operacije in modelu podajte potrebno kodo. Izvorni vodnik za sistemske pozive ima ločena navodila za dodajanje komentarjev, razlago programa, prevajanje med programskimi jeziki, pregledovanje ali popravljanje kode, ustvarjanje testov in odgovarjanje na vprašanja o datoteki. Pri popravku vključite napačno kodo, opaženo vedenje in predvideni rezultat. Pri prevajanju določite ciljni programski jezik in predložite celotno ustrezno funkcijo. Pri komentarjih proizvajalčevo navodilo ohrani kodo in doda komentarje; pri več nalogah ustvarjanja kode zahteva samo kodo. Te razlike pomagajo, da je rezultat uporaben kot koda ali razlaga, namesto da bi oblika izhoda ostala nedoločena.
Vodniki podajajo kitajske in angleške sistemske pozive. Jezik sistemskega navodila sam po sebi ne določa jezika odgovora, zato pri zahtevani razlagi jezik odgovora navedite izrecno. Specializirane smernice za pregled opisujejo kitajski izhod; splošni poziv za programskega pomočnika ponuja ločen način, kako zahtevati pregled v drugem jeziku odgovora. Nekatere predloge nalog nastavijo jezik komentarjev tako, da ustreza izvoru, in izključijo mešani kitajski ter angleški izhod. Pri nadaljevanju pogovora ob zamenjavi operacije ponovite ustrezno navodilo naloge, da se zahteva za razlago ne zamenja s prejšnjo zahtevo za izhod samo s kodo.
Pri dopolnjevanju s kontekstom izvorna oblika opisuje ciljno datoteko, njen programski jezik in kodo na obeh straneh mesta vstavljanja. Relativno pot datoteke uporabite z ###PATH: in vključite ###LANGUAGE:; vodnik dovoljuje prazno vrednost jezika, kadar ni znan. ###MODE: izbere LINE za enovrstično dopolnitev ali BLOCK za več vrstic, pri čemer je BLOCK dokumentirana privzeta možnost. Zaporedje za zapolnjevanje sredine najprej navede pripono, nato predpono in nato manjkajočo sredino, označene z <|code_suffix|>, <|code_prefix|> in <|code_middle|>. Proizvajalčeva predloga za zapolnjevanje izpusti sistemski poziv. Ohranitev pripone modelu poda okoliški tok izvajanja in kodo, ki mora ostati po vstavljanju. Rezultat je predlagana manjkajoča koda, ki jo je nato mogoče preveriti na izvirnem mestu.
Dopolnjevanje med datotekami doda povezane izseke kot referenčno gradivo, pri čemer se vsak začne z ###REFERENCE: in svojo oznako ###PATH:. Te reference ločite od ciljne datoteke in njenega mesta vstavljanja. Pri dopolnjevanju funkcije, ki kliče obstoječo pomožno funkcijo, na primer predložite podpis in izvedbo pomožne funkcije skupaj s predpono in pripono ciljne funkcije. Vodnik za dopolnjevanje na ravni projekta ta pristop razširi na ustvarjanje nove datoteke iz projektnih zahtev in ustrezne obstoječe kode. Jasne poti in izbrane odvisnosti omogočajo ločevanje med kodo, predloženo kot dokaz, in datoteko, ki naj jo model dopolni.
Vprašanja o repozitoriju uporabljajo drugačno izvorno postavitev: vsako datoteko navedite pod ###PATH:, vključite njeno kodo in nato postavite vprašanje. Uporabna zahteva lahko vpraša, kje je vrednost določena ali kako klic prehaja med predloženimi moduli. Urejanje repozitorija uporablja svoje sistemsko navodilo za dodajanje, brisanje ali spreminjanje datotek ter zahteva izhod v obliki ###PATH: {PATH}, ki mu sledi koda. Pripravite ustrezne datoteke in opišite zahtevano spremembo, vključno z datoteko za dodajanje ali vedenjem, ki ga je treba ohraniti. Vrnjene bloke z označenimi potmi berite kot predlagane spremembe; niso dokaz, da je repozitorij že spremenjen ali da se je koda izvedla.
Za objavljenega člana CodeGeeX4-ALL-9B proizvajalec dokumentira kontekst 128K in priporoča izbiro ustrezne vsebine repozitorija, kadar projekt preseže to okno. Pridobivanje povezanih izsekov in krajšanje preobsežnih vhodov sta pripravljalna koraka v vodniku za repozitorij. Kontekst mora zajeti navodila, predloženo kodo in ustvarjeno nadaljevanje, zato je ciljno izbran nabor datotek pogosto uporabnejši od nerazločenega izpisa celotnega projekta. Proizvajalčeve vzorčne nastavitve ustvarjanja nadzorujejo dolžino posameznega izvajanja; ne določajo univerzalne največje dolžine odgovora za vse izdaje CodeGeeX4.
Serija opisuje tudi povezane programske poteke dela z interpreterji, iskanjem in klici funkcij. Tak potek dela potrebuje okoliško aplikacijo, ki zagotovi imenovana orodja in njihove rezultate vrne v pogovor. Pri zahtevi za izvedljivo kodo določite predvideni jezik, odvisnosti in pričakovano vedenje; pri zahtevi za analizo zahtevajte sklice na ustrezne datoteke ali funkcije. Predlagane spremembe prevedite ali izvedite v predvidenem okolju in preverite vedenje glede na predloženo zahtevo, preden jih vključite v projekt.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions codegeex-4
codegeex-4Začetek
CodeGeeX4 je večjezična družina modelov za programiranje, namenjena ustvarjanju, dopolnjevanju, razlagi in popravljanju kode ter vprašanjem o repozitoriju. Njeni izvorni vodniki obravnavajo pozive za posamezne naloge, zapolnjevanje vrzeli med obstoječo kodo in uporabo povezanih datotek za pripravo sprememb z izrecnimi potmi datotek.
- Dovoljeni vhodi
- Besedilo
- Rezultati
- Besedilo
Na voljo v Ailoot · vhodi in metode
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Vhod
text- Izhod
text- Izhodni format
- json ali SSE
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve codegeex-4 | Privzeto— |
Poljemessages | Vrstamessage[] | ZahtevaObvezno | Vrednosti in omejitve Najmanjše število elementov: 1 | Privzeto— |
Poljemessages[].role | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve Odvisno od modela | Privzeto— |
Poljemessages[].content | Vrstastring | ZahtevaIzbirno | Vrednosti in omejitve Velja, ko: Besedilni pogovor | Privzeto— |
Poljestream | Vrstaboolean | ZahtevaIzbirno | Vrednosti in omejitve | Privzetofalse |
Kombinacije vhodnih gradiv
Besedilo · Besedilo UTF8
messages[].content
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, messages |
Parametermaterial_types | Specifikacijatext |
Parametermessages | Specifikacijapolje sporočil s strukturo role/content |
Parameterfile_material | Specifikacijadejanski dokument UTF-8 je vstavljen kot dobesedno besedilo; ID datoteke se ne izpeljuje |
Parameteroptional_controls | Specifikacijastream |
Parametercontrol_scope | SpecifikacijaBesedilni pogovor; stream je logična vrednost in je privzeto false. |
Parameteroutput_modalities | Specifikacijatext |
Parameterhosted_operations | Specifikacijafalse |
Parametermultimodal_input_binding | Specifikacijanull |
Druga imena metode: /chat/completions
Življenjski cikel: synchronous_or_streamed
Pošljite natančen ID modela skupaj z messages.
Dolžina konteksta ni zgornja meja izhoda.
Besedilna datoteka lahko poda dobesedno besedilo; slikovni, zvočni vhodi in vhodi z datotečnimi objekti potrebujejo natančno vezavo.
Cenik
Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.
- Hitri način
- Ni navedeno Ko je izbran hitri način
- Način flex
- Ni navedeno Ko je izbran način flex
- Najvišja raven razmišljanja
- Ni navedeno Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Cene Ailoot
Cene po nastavitvah
| Nastavitev | Cenovna lestvica | Strošek |
|---|---|---|
| NastavitevOsnovne cene za žetone | Cenovna lestvicaOsnovna cena | Strošek Vhod · Vhodni žetoni $0.028 / 1K žetonov Izhod · Izhodni žetoni $0.028 / 1K žetonov Vhod · Branje predpomnilnika $0 / 1K žetonov Vhod · Zapis v predpomnilnik $0 / 1K žetonov Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov |
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Primeri zahtev
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"))
Prejmi in shrani rezultate
Ailoot Ultra · OpenAI Chat
json ali SSE
Ohrani vse dokončane rezultate
Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.
Ohranite vsako možnost odgovora ter njeno vsebino, klice orodij in sklepanje. V SSE sestavite delne spremembe po indeksu možnosti/orodja ter ohranite končni razlog zaključka in podatke o porabi.
Če je treba preveriti izvirni odgovor
Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.
Polja odgovora
| Polje | Vrsta |
|---|---|
Poljechoices[].index | Vrstainteger |
Poljechoices[].message.content | Vrstastring|null |
Poljechoices[].message.tool_calls | Vrstatool_call[] |
Poljechoices[].message.reasoning_content | Vrstastring |
Poljechoices[].message.reasoning_details | Vrstaobject|array |
Poljechoices[].finish_reason | Vrstastring|null |
Poljeusage | Vrstaobject |
Napake in naslednji koraki
| Odgovor | Pogoj | Naslednji korak |
|---|---|---|
Odgovor400 · invalid_request_error | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
Druga imena
Druga imena modelov
Ailoot Ultra codegeex-4
Druga imena poti metod
/chat/completions
Povezani ID-ji za klic
Ailoot Ultra · Anthropic Messages POST /v1/messages codegeex-4
codegeex-4Začetek
CodeGeeX4 je večjezična družina modelov za programiranje, namenjena ustvarjanju, dopolnjevanju, razlagi in popravljanju kode ter vprašanjem o repozitoriju. Njeni izvorni vodniki obravnavajo pozive za posamezne naloge, zapolnjevanje vrzeli med obstoječo kodo in uporabo povezanih datotek za pripravo sprememb z izrecnimi potmi datotek.
- Dovoljeni vhodi
- Besedilo
- Rezultati
- json · sse
Na voljo v Ailoot · vhodi in metode
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Vhod
text- Izhod
json,sse- Izhodni format
- JSON ali SSE
| Polje | Vrsta | Zahteva | Vrednosti in omejitve | Privzeto |
|---|---|---|---|---|
Poljemodel | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve codegeex-4 | Privzeto— |
Poljemessages | Vrstamessage[] | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljemessages[].role | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve user, assistant | Privzeto— |
Poljemessages[].content | Vrstastring | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljemax_tokens | Vrstainteger | ZahtevaObvezno | Vrednosti in omejitve | Privzeto— |
Poljestream | Vrstaboolean | ZahtevaIzbirno | Vrednosti in omejitve | Privzetofalse |
Kombinacije vhodnih gradiv
Besedilo · Besedilo UTF-8
niz messages[].content
Parametri in življenjski cikel metode
| Parameter | Specifikacija |
|---|---|
Parametercontent_type | Specifikacijaapplication/json |
Parameterrequired | Specifikacijamodel, messages, max_tokens |
Parameteroptional_controls | Specifikacijastream |
Parametermaterial_types | Specifikacijatext |
Parametertext_file_material | SpecifikacijaPreberite dejanski dokument UTF-8 in njegovo besedilo vstavite v navedeni vhodni niz ali niz vsebine sporočila. |
Življenjski cikel: synchronous_or_streamed
Cenik
Tarifni podatki ne dodajajo možnosti zahteve. Podprti parametri so navedeni pri izbrani metodi.
- Hitri način
- Ni navedeno Ko je izbran hitri način
- Način flex
- Ni navedeno Ko je izbran način flex
- Najvišja raven razmišljanja
- Ni navedeno Ko najvišja raven razmišljanja uporablja privzeto prilagoditev (default)
Cene Ailoot
Cene po nastavitvah
| Nastavitev | Cenovna lestvica | Strošek |
|---|---|---|
| NastavitevOsnovne cene za žetone | Cenovna lestvicaOsnovna cena | Strošek Vhod · Vhodni žetoni $0.028 / 1K žetonov Izhod · Izhodni žetoni $0.028 / 1K žetonov Vhod · Branje predpomnilnika $0 / 1K žetonov Vhod · Zapis v predpomnilnik $0 / 1K žetonov Vhod · Zapis v predpomnilnik, 1 ura — / 1K žetonov |
Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. Kako delujeta rezervacija in obračun →
Primeri zahtev
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))
Prejmi in shrani rezultate
Ailoot Ultra · Anthropic Messages
JSON ali SSE
Ohrani vse dokončane rezultate
Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.
Ohranite vse vsebinske bloke, podpise sklepanja in dejanske ID uporabe orodij. Sestavite vse delne spremembe blokov SSE; prvi besedilni blok ni celoten izhod.
Če je treba preveriti izvirni odgovor
Ohranite ID zahtev/odgovorov in glave. Splošni URL za pridobivanje besedilne naloge ni podan.
Polja odgovora
| Polje | Vrsta |
|---|---|
Poljeid | Vrstastring |
Poljemodel | Vrstastring |
Poljecontent[] | Vrstatext|thinking|tool_use|other content block |
Poljestop_reason | Vrstastring|null |
Poljeusage | Vrstaobject |
Napake in naslednji koraki
| Odgovor | Pogoj | Naslednji korak |
|---|---|---|
Odgovor400 · invalid_request_error | PogojNeveljavna obvezna polja, predstavitev gradiva ali vrednost parametra | Naslednji korakPred novo zahtevo za ustvarjanje popravite navedena polja. |
Druga imena
Druga imena modelov
Ailoot Ultra codegeex-4
Druga imena poti metod
/chat/completions
Povezani ID-ji za klic
FAQ · CodeGeeX-4
- Kateri vhodi in rezultati so na voljo?
POST /v1/chat/completions·codegeex-4:text→textPOST /v1/messages·codegeex-4:text→json,sse- Katera polja uporablja zahteva?
POST /v1/chat/completions·codegeex-4:model,messages,streamPOST /v1/messages·codegeex-4:model,messages,max_tokens,stream- Katere omejitve veljajo?
POST /v1/chat/completions·codegeex-4:messages.min_items:1