mallit

qwen-max

Markdown · JSON

qwen-max

Qwen-Max on tekstimalli monikieliseen keskusteluun, loogiseen päättelyyn, ohjelmointiin ja sisällön luontiin. Se yhdistää yksityiskohtaisen ohjeiden noudattamisen JSON-painotteiseen tulokseen ja vastaustyylin ohjaukseen.

Tietoa mallista

Tämä kuvaus kattaa mallin ominaisuudet. Ailootissa saatavilla olevat syötteet, tulosteet ja asetukset luetellaan alla valitulle menetelmälle.

Qwen-Max on Qwen-perheen laaja tekstimalli tehtäviin, joissa yhdistyvät kielen ymmärtäminen, looginen päättely ja mittava kirjallinen tulos. Valmistaja korostaa kiinan- ja englanninkielistä ohjelmointia, monikielistä työtä, luovaa kirjoittamista ja roolipohjaista keskustelua. Malli on suunniteltu tuottamaan selkeämpiä ja yksityiskohtaisempia vastauksia pyydettyä vastaustyyliä noudattaen.

Mallin nimi päivittyy jatkuvasti. Valmistaja kuvaa tällä hetkellä qwen-maxin toiminnallisesti vastaavan tilannekuvaa qwen-max-2025-01-25. Jatkuvasti päivittyvällä nimellä ja päivätyllä tilannekuvalla on eri tarkoitukset: toinen seuraa mallilinjaa sen kehittyessä, kun taas toinen yksilöi tietyn version. Säilytä tämä ero toistuvia tehtäviä verratessasi tai johdonmukaista avustajakokoonpanoa ylläpitäessäsi.

Mallin kyvyt

Qwen-Max vastaanottaa tekstiä ja tuottaa tekstiä. Se voi käsitellä keskustelua, lähdekohtia, ohjelmistovaatimusta tai olemassa olevaa koodikatkelmaa. Käytä sitä, kun tuloksena tulee olla selitys, uudelleenkirjoitettu asiakirja, toteutus tai poimittujen kenttien joukko. Skannattu sivu tai kuvakaappaus tarvitsee erillisen vaiheen, joka tekee tarvittavan tiedon saatavaksi tekstinä. Tämän mallin dokumentoitu syöte ei ole kuva.

Valmistaja nostaa erityisesti esiin JSON-muodon noudattamisen. Käytännön poimintatehtävä voi määrittää kentiksi esimerkiksi aiheen, lähteessä nimenomaisesti mainitut ehdot ja ratkaisemattoman kysymyksen. Anna lähdekohta ja tarkoitetut kenttänimet ja kerro puuttuvan tiedon esitystapa. Näin keskusteluvastaus muuttuu tiedoksi, jota sovellus voi tarkastaa ja käsitellä. JSON-pyyntö ja tekstimuotoisen selityksen pyyntö ovat eri tulosvaatimuksia, ja ne tulee esittää erikseen.

Dokumentoidut rajapinnat sisältävät myös funktiokutsut, rakenteisen tuloksen, vastausetuliitteen jatkamisen, kontekstivälimuistin ja eräinferenssin. Funktiokutsuja ja verkkohakua ei tarjota samalla tavoin jokaisessa valmistajan kokoonpanossa. Käsittele niitä ympäröivän rajapinnan vaihtoehtoina: sovellus tarjoaa työkalut, suorittaa valitut toimet ja palauttaa niiden tulokset. Välimuisti ja eräkäsittely koskevat työn lähettämistä ja uudelleenkäyttöä, eivät uutta sisältömodaliteettia.

Kontekstirajat

Julkaistu määritys ilmoittaa 32,768 tokenin konteksti-ikkunan, enintään 30,720 syötetokenia ja enintään 8,192 tulostokenia. Pidä lähdeaineisto, keskustelu ja pyydetty vastaus sovellettavien rajojen sisällä. Tulosraja auttaa valitsemaan tiiviin vastauksen ja pitkän asiakirjan välillä. Sitä ei tule tulkita takuuksi siitä, että jokainen vastaus käyttää kyseisen pituuden.

Aseta asiakirjatehtävässä olennaiset lähdeosat ennen valinnaisia esimerkkejä ja kerro, mitä lopputuotoksen on sisällettävä. Anna esimerkiksi tuotekuvaus ja asiakkaan kysymykset ja pyydä sitten vastausta, joka säilyttää annetut ehdot, käyttää asiakkaan kieltä ja erottaa avoimet kysymykset vahvistetusta tiedosta. Tulos voi olla asiakkaalle suunnattu vastaus ja pieni JSON-tietue sovelluksen seuraavaan vaiheeseen.

Anna ohjelmointiin funktion tarkoitus, hyväksytty syöte, odotettu tulos ja nykyinen katkelma, jonka kanssa yhteensopivuuden on säilyttävä. Pyydä toteutus, päätösten selitys sekä tavallisen syötteen ja rajatapauksen kattavat esimerkit. Tämä käyttää mallin dokumentoitua ohjelmointi- ja päättelypainotusta olettamatta pääsyä koodivarastoon, kääntäjään tai käynnissä olevaan sovellukseen.

Määritä luovassa kirjoittamisessa tai roolipohjaisessa vuoropuhelussa yleisö, sävy ja tosiasiat, joiden tulee säilyä muokkauksessa. Rooli voi järjestää keskustelua, kun taas lähdeaineisto määrää, mitä mallin tulee sanoa. Pyydä vaihtoehtoisia johdantoja tai selityksiä eri lukijoille määrittelemättömän uudelleenkirjoituksen sijaan. Näin jokaisella versiolla on havaittava tarkoitus.

Olennaiset rajat

Qwen-Max on tekstistä tekstiksi -linja, ei kuva- tai puheentuottoversio. Valmistaja ei luettele hienosäätöä tuetuksi rajapintakyvyksi tässä kortissa. Työkaluihin liitetty toiminta riippuu yhdistetystä rajapinnasta, eikä jatkuvasti päivittyvä nimi lukitse pysyvää tilannekuvaa. Nämä erot auttavat valitsemaan oikean version ja valmistelemaan syötteen, joka vastaa todella tarvitsemaasi tulosta.

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen-max-latest

qwen-max-latest

Alibaba /qwen-max-latest

Aloitus

Qwen-Max on tekstimalli monikieliseen keskusteluun, loogiseen päättelyyn, ohjelmointiin ja sisällön luontiin. Se yhdistää yksityiskohtaisen ohjeiden noudattamisen JSON-painotteiseen tulokseen ja vastaustyylin ohjaukseen.

Hyväksytyt syötteet
Teksti
Tulokset
Teksti

Saatavilla Ailootissa · syötteet & menetelmät

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Syötetyypit
text
Tulostyypit
text
Tulosteen muoto
json tai SSE
KenttäTyyppiVaatimusArvot & rajatOletus
KenttämodelTyyppistringVaatimusPakollinenArvot & rajat
qwen-max-latest
Oletus—
KenttämessagesTyyppimessage[]VaatimusPakollinenArvot & rajat
Kohteiden vähimmäismäärä: 1
Oletus—
Kenttämessages[].roleTyyppistringVaatimusPakollinenArvot & rajat
Riippuu mallista
Oletus—
Kenttämessages[].contentTyyppistringVaatimusValinnainenArvot & rajat
Sovelletaan, kun: Tekstikeskustelu
Oletus—
KenttästreamTyyppibooleanVaatimusValinnainenArvot & rajatOletusfalse
Syöteaineistojen yhdistelmät

Teksti · UTF8-teksti

messages[].content

Menetelmän parametrit ja elinkaari
ParametriSopimus
Parametricontent_typeSopimusapplication/json
ParametrirequiredSopimusmodel, messages
Parametrimaterial_typesSopimustext
ParametrimessagesSopimusviestitaulukko role/content-rakenteella
Parametrifile_materialSopimusvarsinainen UTF-8-asiakirja lisätään sellaisenaan tekstinä; tiedoston ID:tä ei päätellä
Parametrioptional_controlsSopimusstream
Parametricontrol_scopeSopimusTekstikeskustelu; stream on totuusarvo, jonka oletus on false.
Parametrioutput_modalitiesSopimustext
Parametrihosted_operationsSopimusfalse
Parametrimultimodal_input_bindingSopimusnull

Menetelmien aliakset: /chat/completions

Elinkaari: synchronous_or_streamed

Lähetä mallin täsmällinen ID yhdessä messages-kentän kanssa.

Kontekstin pituus ei ole tuloksen yläraja.

Tekstitiedosto voi antaa tekstiä sellaisenaan; kuva-, ääni- ja tiedosto-objektisyötteet tarvitsevat täsmällisen sidonnan.

Hinnoittelu

Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.

Nopea tila
Ei määritetty Kun nopea tila on valittu
Flex-tila
Ei määritetty Kun flex-tila on valittu
Päättelyn enimmäisteho
Ei määritetty Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä

Ailoot-hinnat

Hinnat asetusten mukaan

AsetuksetHinnastoVeloitus
AsetuksetTokenien perushinnatHinnastoPerushintaVeloitus
Syöte · Syötetokenit $0.000686 / 1K tokenia
Tuloste · Tulostokenit $0.002744 / 1K tokenia
Syöte · Välimuistin luku $0 / 1K tokenia
Syöte · Välimuistiin kirjoitus $0 / 1K tokenia
Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →

Esimerkkipyynnöt

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":"qwen-max-latest","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="qwen-max-latest", 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"))

Vastaanota ja tallenna tulokset

Ailoot Ultra · OpenAI Chat

json tai SSE

Säilytä kaikki valmistuneet tulokset

Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.

Säilytä jokainen vastausvaihtoehto sisältöineen, työkalukutsuineen ja päättelyineen. Kokoa SSE:ssä muutokset vastausvaihtoehdon ja työkalun indeksin mukaan ja säilytä lopullinen päättymissyy sekä käyttötiedot.

Jos alkuperäinen vastaus on tarkistettava

Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.

Vastauksen kentät
KenttäTyyppi
Kenttächoices[].indexTyyppiinteger
Kenttächoices[].message.contentTyyppistring|null
Kenttächoices[].message.tool_callsTyyppitool_call[]
Kenttächoices[].message.reasoning_contentTyyppistring
Kenttächoices[].message.reasoning_detailsTyyppiobject|array
Kenttächoices[].finish_reasonTyyppistring|null
KenttäusageTyyppiobject
Virheet ja seuraavat vaiheet
VastausEhtoSeuraava vaihe
Vastaus400 · invalid_request_errorEhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvoSeuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä.

Aliakset

Mallin aliakset

Ailoot Ultra qwen-max-latest

Menetelmäpolkujen aliakset

/chat/completions

Liittyvät kutsujan ID:t

qwen-max-latest

Ailoot Ultra · Anthropic Messages POST /v1/messages qwen-max-latest

qwen-max-latest

Alibaba /qwen-max-latest

Aloitus

Qwen-Max on tekstimalli monikieliseen keskusteluun, loogiseen päättelyyn, ohjelmointiin ja sisällön luontiin. Se yhdistää yksityiskohtaisen ohjeiden noudattamisen JSON-painotteiseen tulokseen ja vastaustyylin ohjaukseen.

Hyväksytyt syötteet
Teksti
Tulokset
json · sse

Saatavilla Ailootissa · syötteet & menetelmät

Ailoot Ultra · Anthropic Messages POST /v1/messages
Syötetyypit
text
Tulostyypit
json, sse
Tulosteen muoto
JSON tai SSE
KenttäTyyppiVaatimusArvot & rajatOletus
KenttämodelTyyppistringVaatimusPakollinenArvot & rajat
qwen-max-latest
Oletus—
KenttämessagesTyyppimessage[]VaatimusPakollinenArvot & rajatOletus—
Kenttämessages[].roleTyyppistringVaatimusPakollinenArvot & rajat
user, assistant
Oletus—
Kenttämessages[].contentTyyppistringVaatimusPakollinenArvot & rajatOletus—
Kenttämax_tokensTyyppiintegerVaatimusPakollinenArvot & rajatOletus—
KenttästreamTyyppibooleanVaatimusValinnainenArvot & rajatOletusfalse
Syöteaineistojen yhdistelmät

Teksti · UTF-8-teksti

messages[].content-merkkijono

Menetelmän parametrit ja elinkaari
ParametriSopimus
Parametricontent_typeSopimusapplication/json
ParametrirequiredSopimusmodel, messages, max_tokens
Parametrioptional_controlsSopimusstream
Parametrimaterial_typesSopimustext
Parametritext_file_materialSopimusLue varsinainen UTF-8-asiakirja ja sijoita sen teksti ilmoitettuun syöte- tai viestisisällön merkkijonoon.

Elinkaari: synchronous_or_streamed

Hinnoittelu

Hintatiedot eivät lisää pyyntövalintoja. Tuetut parametrit on lueteltu valitulle menetelmälle.

Nopea tila
Ei määritetty Kun nopea tila on valittu
Flex-tila
Ei määritetty Kun flex-tila on valittu
Päättelyn enimmäisteho
Ei määritetty Kun päättelyn enimmäistehoon sovelletaan default-oletussäätöä

Ailoot-hinnat

Hinnat asetusten mukaan

AsetuksetHinnastoVeloitus
AsetuksetTokenien perushinnatHinnastoPerushintaVeloitus
Syöte · Syötetokenit $0.000686 / 1K tokenia
Tuloste · Tulostokenit $0.002744 / 1K tokenia
Syöte · Välimuistin luku $0 / 1K tokenia
Syöte · Välimuistiin kirjoitus $0 / 1K tokenia
Syöte · Välimuistiin kirjoitus, 1 tunti — / 1K tokenia

Ailoot varaa arvioidun summan ennen pyyntöä. Tuloksen jälkeen lopullinen veloitus toteutetaan mitatun käytön perusteella. Suoratoiston veloituksessa käytetään lopullista käyttötietuetta. Varauksen ja lopullisen veloituksen toiminta →

Esimerkkipyynnöt

Ailoot Ultra · Anthropic Messages

Täydellinen minimaalinen JSON-runkocurl · käytä omaa UTF-8-dokumenttiasiPython · tallenna koko tulos
{
  "model": "qwen-max-latest",
  "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': 'qwen-max-latest', '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': 'qwen-max-latest', '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))

Vastaanota ja tallenna tulokset

Ailoot Ultra · Anthropic Messages

JSON tai SSE

Säilytä kaikki valmistuneet tulokset

Säilytä jokainen kokonainen palautettu vastaus, tiedosto ja sisällön osa.

Säilytä kaikki sisältölohkot, päättelyallekirjoitukset ja todelliset työkalukäytön ID:t. Kokoa kaikki SSE-lohkomuutokset; ensimmäinen tekstilohko ei ole koko tulos.

Jos alkuperäinen vastaus on tarkistettava

Säilytä pyyntöjen/vastausten ID:t ja otsakkeet. Yleistä tekstityön haku-URL:ää ei anneta.

Vastauksen kentät
KenttäTyyppi
KenttäidTyyppistring
KenttämodelTyyppistring
Kenttäcontent[]Tyyppitext|thinking|tool_use|other content block
Kenttästop_reasonTyyppistring|null
KenttäusageTyyppiobject
Virheet ja seuraavat vaiheet
VastausEhtoSeuraava vaihe
Vastaus400 · invalid_request_errorEhtoVirheelliset pakolliset kentät, aineiston esitysmuoto tai parametrin arvoSeuraava vaiheKorjaa ilmoitetut kentät ennen uutta luontipyyntöä.

Aliakset

Mallin aliakset

Ailoot Ultra qwen-max-latest

Menetelmäpolkujen aliakset

/chat/completions

Liittyvät kutsujan ID:t

qwen-max-latest

FAQ · qwen-max
Mitä syötteitä ja tuloksia on saatavilla?

POST /v1/chat/completions · qwen-max-latest: text → text

POST /v1/messages · qwen-max-latest: text → json, sse

Mitä kenttiä pyyntö käyttää?

POST /v1/chat/completions · qwen-max-latest: model, messages, stream

POST /v1/messages · qwen-max-latest: model, messages, max_tokens, stream

Mitä rajoja sovelletaan?

POST /v1/chat/completions · qwen-max-latest: messages.min_items: 1

Lisätietoja

Yhdistä Ailoot Claude Codeen, OpenCodeen, Hermesiin tai omaan sovellukseesi.

Yritys ja sen projektisalkku

Yritys ja sen projektisalkku: miljoonia asiakkaita; kuukausittainen myynti miljardiluokassa.

Osta tokenit alennuksella.

Tilausalennus säännölliseen käyttöön. Kampanjakoodit — jopa 50% tokeniostoista.

Tilaus
Valitse alennushintainen paketti säännöllisiä pyyntöjäsi varten.
Kampanjakoodi jopa 50%
Syötä koodi oston yhteydessä. Hinta lasketaan uudelleen voimassa olevan kampanjan mukaan.
Kulut historiassa
Malli, tokenit ja summa tallennetaan jokaiselle pyynnölle.

Valitse tilaus · Katso mallihinnat

Yhdistä API tuotteeseen, jonka myyt.

SaaS, sovellukset ja botit Ailootin palveluehtojen ja lisenssisopimuksen mukaisesti. Pyydä edelleenmyyntiin jälleenmyyjälisenssi.

Kaupallinen sovellus
Lisää tekstin, kuvien, videoiden ja äänen luonti palvelusi maksullisiin ominaisuuksiin.
Jälleenmyyjälisenssi
Lähetä projektikuvaus ja pääsyn toteutustapa. Pyydä kirjalliset käyttö- ja jälleenmyyntiehdot.
Asiakirjat verkkosivustolla
Palveluehdot, lisenssisopimus ja tietojenkäsittelykäytäntö ovat saatavilla ennen yhdistämistä.

Pyydä jälleenmyyjälisenssi · Palveluehdot ja lisenssisopimus