modely

CodeGeeX-4

Markdown · JSON

CodeGeeX-4

CodeGeeX4 je viacjazyčná rodina programovacích modelov na generovanie, dopĺňanie, vysvetľovanie a opravu kódu a otázky o repozitári. Jej natívne návody zahŕňajú pokyny pre konkrétne úlohy, vypĺňanie medzier medzi existujúcim kódom a využívanie súvisiacich súborov na prípravu zmien s výslovnými cestami k súborom.

O modeli

Tento opis pokrýva možnosti modelu. Dostupné vstupy, výstupy a voľby v Ailoot sú uvedené nižšie pre vybranú metódu.

CodeGeeX4 je viacjazyčná rodina programovacích modelov zameraná na pomoc pri programovaní a prácu naprieč súvisiacimi zdrojovými súbormi. Výrobca zverejňuje CodeGeeX4-ALL-9B ako člena série s otvoreným zdrojovým kódom, vyvinutého pokračujúcim tréningom GLM-4-9B. Dokumentácia zahŕňa generovanie a dopĺňanie kódu, programovacie otázky, analýzu repozitára a pripojené postupy s interpretom kódu, webovým vyhľadávaním alebo volaniami funkcií. Bežným výstupom je text: kód, vysvetlenia, odpovede alebo zmeny označené súbormi podľa zadania úlohy.

Začnite výberom operácie a dodaním kódu, ktorý model potrebuje. Natívny sprievodca systémovými pokynmi má samostatné pokyny na pridávanie komentárov, vysvetlenie programu, preklad medzi programovacími jazykmi, kontrolu alebo opravu kódu, generovanie testov a odpovedanie na otázky o súbore. Pri oprave zahrňte chybný kód, pozorované správanie a zamýšľaný výsledok. Pri preklade určte cieľový programovací jazyk a dodajte celú relevantnú funkciu. Pri komentároch pokyn výrobcu zachováva kód a pridáva komentáre; pri viacerých úlohách vytvárajúcich kód žiada iba kód. Tieto rozdiely pomáhajú urobiť výsledok použiteľným ako kódový artefakt alebo vysvetlenie namiesto ponechania formátu výstupu neurčeného.

Návody poskytujú čínske a anglické systémové pokyny. Jazyk systémového pokynu sám osebe neurčuje jazyk odpovede, preto pri potrebnom vysvetlení výslovne žiadajte jazyk odpovede. Špecializované pokyny na kontrolu opisujú čínsky výstup; všeobecný pokyn programovacieho asistenta poskytuje samostatný spôsob, ako žiadať kontrolu v inom jazyku odpovede. Niektoré šablóny úloh nastavujú jazyk komentárov podľa zdroja a vylučujú zmiešaný čínsky a anglický výstup. V pokračujúcej konverzácii pri zmene operácie zopakujte príslušný pokyn úlohy, aby sa požiadavka na vysvetlenie nezamenila za predchádzajúcu požiadavku na výstup iba s kódom.

Pri kontextovom dopĺňaní natívny formát opisuje cieľový súbor, jeho programovací jazyk a kód na oboch stranách miesta vloženia. Použite relatívnu cestu k súboru s ###PATH: a zahrňte ###LANGUAGE:; sprievodca povoľuje prázdnu hodnotu jazyka, keď je neznámy. ###MODE: vyberá LINE na jednoriadkové doplnenie alebo BLOCK na viac riadkov, pričom dokumentovaným predvoleným režimom je BLOCK. Sekvencia vypĺňania stredu má najprv príponu, potom predponu a napokon chýbajúci stred označené <|code_suffix|>, <|code_prefix|> a <|code_middle|>. Šablóna výrobcu na vypĺňanie vynecháva systémový pokyn. Zachovanie prípony dáva modelu okolitý riadiaci tok a kód, ktorý musí zostať po vložení. Výsledkom je navrhnutý chýbajúci kód, ktorý potom možno overiť na pôvodnom mieste.

Dopĺňanie naprieč súbormi pridáva súvisiace úryvky ako referenčný materiál, každý uvedený pomocou ###REFERENCE: a vlastného ###PATH:. Tieto referencie uchovajte oddelene od cieľového súboru a jeho miesta vloženia. Napríklad pri dopĺňaní funkcie volajúcej existujúcu pomocnú funkciu dodajte jej signatúru a implementáciu spolu s predponou a príponou cieľovej funkcie. Sprievodca dopĺňaním na úrovni projektu rozširuje tento prístup na generovanie nového súboru z požiadaviek projektu a relevantného existujúceho kódu. Jasné cesty a vybrané závislosti umožňujú odlíšiť kód dodaný ako dôkaz od súboru, ktorý má model doplniť.

Otázky o repozitári používajú iné natívne rozloženie: každý súbor uveďte pod ###PATH:, zahrňte jeho kód a potom položte otázku. Užitočné zadanie sa môže pýtať, kde je hodnota definovaná alebo ako volanie prechádza medzi dodanými modulmi. Úprava repozitára používa vlastný systémový pokyn na pridanie, odstránenie alebo zmenu súborov a žiada výstup vo formáte ###PATH: {PATH} nasledovanom kódom. Pripravte príslušné súbory a opíšte potrebnú zmenu vrátane súboru na pridanie alebo správania na zachovanie. Vrátené bloky označené cestami čítajte ako návrhy zmien; nedokazujú, že repozitár už bol upravený alebo že sa kód spustil.

Pri zverejnenom členovi CodeGeeX4-ALL-9B výrobca dokumentuje kontext 128K a odporúča vyberať relevantný obsah repozitára, keď projekt toto okno presahuje. Vyhľadanie súvisiacich úryvkov a skracovanie príliš veľkých vstupov sú prípravné kroky v sprievodcovi repozitárom. Kontext musí obsiahnuť pokyny, dodaný kód a vygenerované pokračovanie, preto je cielený súbor súborov často užitočnejší než nerozlíšený výpis celého projektu. Príklady nastavení generovania výrobcu riadia dĺžku konkrétneho behu; neurčujú univerzálnu maximálnu dĺžku odpovede pre každú edíciu CodeGeeX4.

Séria opisuje aj pripojené programovacie postupy s interpretmi, vyhľadávaním a volaniami funkcií. Taký postup potrebuje, aby okolitá aplikácia poskytla pomenované nástroje a vrátila ich výsledky do konverzácie. Pri požiadavke na spustiteľný kód určte zamýšľaný jazyk, závislosti a očakávané správanie; pri analýze žiadajte príslušné odkazy na súbory alebo funkcie. Navrhnuté zmeny skompilujte alebo spustite v určenom prostredí a správanie overte oproti dodanej požiadavke pred ich začlenením do projektu.

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

codegeex-4

Zhipu /codegeex-4

Úvod

CodeGeeX4 je viacjazyčná rodina programovacích modelov na generovanie, dopĺňanie, vysvetľovanie a opravu kódu a otázky o repozitári. Jej natívne návody zahŕňajú pokyny pre konkrétne úlohy, vypĺňanie medzier medzi existujúcim kódom a využívanie súvisiacich súborov na prípravu zmien s výslovnými cestami k súborom.

Povolené vstupy
Text
Výsledky
Text

Dostupné v Ailoot · vstupy a metódy

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Vstup
text
Výstup
text
Výstupný formát
json alebo SSE
PoleTypPožiadavkaHodnoty a limityPredvolené
PolemodelTypstringPožiadavkaPovinnéHodnoty a limity
codegeex-4
Predvolené—
PolemessagesTypmessage[]PožiadavkaPovinnéHodnoty a limity
Minimálny počet položiek: 1
Predvolené—
Polemessages[].roleTypstringPožiadavkaPovinnéHodnoty a limity
Závisí od modelu
Predvolené—
Polemessages[].contentTypstringPožiadavkaVoliteľnéHodnoty a limity
Platí, keď: Textová konverzácia
Predvolené—
PolestreamTypbooleanPožiadavkaVoliteľnéHodnoty a limityPredvolenéfalse
Kombinácie vstupných podkladov

Text · Text UTF8

messages[].content

Parametre a životný cyklus metódy
ParameterŠpecifikácia
Parametercontent_typeŠpecifikáciaapplication/json
ParameterrequiredŠpecifikáciamodel, messages
Parametermaterial_typesŠpecifikáciatext
ParametermessagesŠpecifikáciapole správ so štruktúrou role/content
Parameterfile_materialŠpecifikáciaskutočný dokument UTF-8 vložený ako doslovný text; ID súboru sa neodvodzuje
Parameteroptional_controlsŠpecifikáciastream
Parametercontrol_scopeŠpecifikáciaTextová konverzácia; stream je logická hodnota a predvolene má hodnotu false.
Parameteroutput_modalitiesŠpecifikáciatext
Parameterhosted_operationsŠpecifikáciafalse
Parametermultimodal_input_bindingŠpecifikácianull

Aliasy metódy: /chat/completions

Životný cyklus: synchronous_or_streamed

Pošlite presné ID modelu spolu s messages.

Dĺžka kontextu nie je horná hranica výstupu.

Textový súbor môže poskytnúť doslovný text; obrazové a zvukové vstupy a vstupy so súborovými objektmi potrebujú presné naviazanie.

Cenník

Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.

Rýchly režim
Neuvedené Keď je zvolený rýchly režim
Režim Flex
Neuvedené Keď je zvolený režim flex
Maximálna úroveň uvažovania
Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)

Sadzby Ailoot

Ceny podľa konfigurácie

KonfiguráciaSadzobníkPoplatok
KonfiguráciaZákladné sadzby za tokenySadzobníkZákladná sadzbaPoplatok
Vstup · Vstupné tokeny $0.028 / 1K tokenov
Výstup · Výstupné tokeny $0.028 / 1K tokenov
Vstup · Čítanie cache $0 / 1K tokenov
Vstup · Zápis do cache $0 / 1K tokenov
Vstup · Zápis do cache, 1 hod — / 1K tokenov

Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →

Príklady požiadaviek

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

Prijať a uložiť výsledky

Ailoot Ultra · OpenAI Chat

json alebo SSE

Uchovať všetky dokončené výsledky

Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.

Zachovajte každý variant odpovede a jeho obsah, volania nástrojov a uvažovanie. V SSE zostavujte čiastkové zmeny podľa indexu variantu/nástroja a zachovajte konečný dôvod ukončenia aj údaje o spotrebe.

Ak treba overiť pôvodnú odpoveď

Zachovajte ID požiadaviek/odpovedí aj hlavičky. Všeobecná URL na načítanie textovej úlohy nie je poskytnutá.

Polia odpovede
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Chyby a ďalšie kroky
OdpoveďPodmienkaĎalší krok
Odpoveď400 · invalid_request_errorPodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametraĎalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia.

Aliasy

Aliasy modelov

Ailoot Ultra codegeex-4

Aliasy ciest metód

/chat/completions

Súvisiace ID na volanie

codegeex-4

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

codegeex-4

Zhipu /codegeex-4

Úvod

CodeGeeX4 je viacjazyčná rodina programovacích modelov na generovanie, dopĺňanie, vysvetľovanie a opravu kódu a otázky o repozitári. Jej natívne návody zahŕňajú pokyny pre konkrétne úlohy, vypĺňanie medzier medzi existujúcim kódom a využívanie súvisiacich súborov na prípravu zmien s výslovnými cestami k súborom.

Povolené vstupy
Text
Výsledky
json · sse

Dostupné v Ailoot · vstupy a metódy

Ailoot Ultra · Anthropic Messages POST /v1/messages
Vstup
text
Výstup
json, sse
Výstupný formát
JSON alebo SSE
PoleTypPožiadavkaHodnoty a limityPredvolené
PolemodelTypstringPožiadavkaPovinnéHodnoty a limity
codegeex-4
Predvolené—
PolemessagesTypmessage[]PožiadavkaPovinnéHodnoty a limityPredvolené—
Polemessages[].roleTypstringPožiadavkaPovinnéHodnoty a limity
user, assistant
Predvolené—
Polemessages[].contentTypstringPožiadavkaPovinnéHodnoty a limityPredvolené—
Polemax_tokensTypintegerPožiadavkaPovinnéHodnoty a limityPredvolené—
PolestreamTypbooleanPožiadavkaVoliteľnéHodnoty a limityPredvolenéfalse
Kombinácie vstupných podkladov

Text · Text UTF-8

reťazec messages[].content

Parametre a životný cyklus metódy
ParameterŠpecifikácia
Parametercontent_typeŠpecifikáciaapplication/json
ParameterrequiredŠpecifikáciamodel, messages, max_tokens
Parameteroptional_controlsŠpecifikáciastream
Parametermaterial_typesŠpecifikáciatext
Parametertext_file_materialŠpecifikáciaPrečítajte skutočný dokument UTF-8 a vložte jeho text do uvedeného vstupného reťazca alebo reťazca obsahu správy.

Životný cyklus: synchronous_or_streamed

Cenník

Tarifné údaje nepridávajú možnosti požiadavky. Podporované parametre sú uvedené pri vybranej metóde.

Rýchly režim
Neuvedené Keď je zvolený rýchly režim
Režim Flex
Neuvedené Keď je zvolený režim flex
Maximálna úroveň uvažovania
Neuvedené Keď sa pri maximálnej úrovni uvažovania používa predvolená úprava (default)

Sadzby Ailoot

Ceny podľa konfigurácie

KonfiguráciaSadzobníkPoplatok
KonfiguráciaZákladné sadzby za tokenySadzobníkZákladná sadzbaPoplatok
Vstup · Vstupné tokeny $0.028 / 1K tokenov
Výstup · Výstupné tokeny $0.028 / 1K tokenov
Vstup · Čítanie cache $0 / 1K tokenov
Vstup · Zápis do cache $0 / 1K tokenov
Vstup · Zápis do cache, 1 hod — / 1K tokenov

Ailoot pred požiadavkou rezervuje odhadovanú sumu. Po získaní výsledku vyúčtuje konečný poplatok podľa nameraného využitia. Pri streamovaní sa vyúčtovanie riadi konečným záznamom využitia. Ako funguje rezervácia a vyúčtovanie →

Príklady požiadaviek

Ailoot Ultra · Anthropic Messages

Úplné minimálne telo požiadavky vo formáte JSONcurl · použite svoj dokument UTF-8Python · uložte úplný výsledok
{
  "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))

Prijať a uložiť výsledky

Ailoot Ultra · Anthropic Messages

JSON alebo SSE

Uchovať všetky dokončené výsledky

Uložte každú úplnú vrátenú odpoveď, súbor a časť obsahu.

Zachovajte všetky bloky obsahu, podpisy uvažovania a skutočné ID volaní nástrojov. Zostavte všetky čiastkové zmeny blokov SSE; prvý textový blok nie je celý výstup.

Ak treba overiť pôvodnú odpoveď

Zachovajte ID požiadaviek/odpovedí aj hlavičky. Všeobecná URL na načítanie textovej úlohy nie je poskytnutá.

Polia odpovede
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Chyby a ďalšie kroky
OdpoveďPodmienkaĎalší krok
Odpoveď400 · invalid_request_errorPodmienkaNeplatné povinné polia, reprezentácia materiálu alebo hodnota parametraĎalší krokPred novou požiadavkou na vytvorenie opravte uvedené polia.

Aliasy

Aliasy modelov

Ailoot Ultra codegeex-4

Aliasy ciest metód

/chat/completions

Súvisiace ID na volanie

codegeex-4

FAQ · CodeGeeX-4
Aké vstupy a výsledky sú dostupné?

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

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

Aké polia používa požiadavka?

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

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

Aké limity platia?

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

Viac podrobností

Pripojte Ailoot k Claude Code, OpenCode, Hermes alebo vlastnej aplikácii.

Spoločnosť a jej portfólio projektov

Spoločnosť a jej portfólio projektov: milióny zákazníkov; mesačné tržby v miliardách.

Nakupujte tokeny so zľavou.

Zľava predplatného na pravidelnú prácu. Promo kódy až 50% na nákup tokenov.

Predplatné
Na pravidelné požiadavky vyberte tarifu so zľavou.
Promo kód až 50%
Pri nákupe zadajte kód. Cena sa prepočíta podľa prebiehajúcej akcie.
Výdavky v histórii
Pri každej požiadavke sa uloží model, tokeny a suma.

Vybrať predplatné · Zobraziť ceny modelov

Pripojte API k produktu, ktorý predávate.

SaaS, aplikácie a boti podľa ponuky a licenčnej zmluvy Ailoot. Na ďalší predaj požiadajte o licenciu predajcu.

Komerčná aplikácia
Začleňte generovanie textu, obrázkov, videa a zvuku do platených funkcií svojej služby.
Licencia pre predajcu
Pošlite popis projektu a spôsob poskytovania prístupu. Vyžiadajte písomné podmienky použitia a ďalšieho predaja.
Dokumenty na webe
Ponuka, licenčná zmluva a zásady spracovania dát sú dostupné pred pripojením.

Požiadať o licenciu predajcu · Ponuka a licenčná zmluva