Source: https://ailoot.ai/models/nl/perceptron-perceptron-mk1-5/
Canonical: https://ailoot.ai/models/nl/perceptron-perceptron-mk1-5/
Language: nl

# Perceptron: Perceptron Mk1.5

[Markdown](https://ailoot.ai/models/nl/perceptron-perceptron-mk1-5/index.md) · [JSON](https://ailoot.ai/models/nl/perceptron-perceptron-mk1-5/facts.json)

## [Perceptron: Perceptron Mk1.5](https://ailoot.ai/models/nl/perceptron-perceptron-mk1-5/)

Perceptron Mk1.5 begrijpt tekst, afbeeldingen, video en audio voor visuele taken en taken in een fysieke omgeving. Het retourneert tekst, ruimtelijke of tijdgebonden annotaties, objecttrajecten en voorgestelde functieaanroepen, met een door de producent opgegeven context van 36.864 tokens en een maximale uitvoer van 8.192 tokens.

- [**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/perceptron-perceptron-mk1-5/#method-0)
- [**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/perceptron-perceptron-mk1-5/#method-1)

Over het model

Deze beschrijving gaat over de mogelijkheden van het model. De via Ailoot beschikbare invoer, uitvoer en opties staan hieronder voor de geselecteerde methode.

Perceptron Mk1.5 is het multimodale model van Perceptron voor visueel begrip, het koppelen van gebeurtenissen aan tijdstippen en taken voor agents in een fysieke omgeving. Het accepteert tekst, afbeeldingen, video en audio en retourneert tekst, ruimtelijke of tijdgebonden annotaties, gestructureerde antwoorden en inhoud voor functieaanroepen. De huidige specificatie van de maker vermeldt een context van 36.864 tokens en een maximale uitvoer van 8.192 tokens; deze exacte limieten zijn specifieker dan de afgeronde beschrijving van 32K in het introductieartikel.

#### Video en het volgen van objecten

Een kenmerkende toevoeging is het volgen van objecten in video als geometrie met tijdstempels. Geef een duidelijke beschrijving van het doelobject en vermeld wat het resultaat moet vaststellen, bijvoorbeeld wanneer een voorwerp in beeld komt, waar het zich naartoe verplaatst of welk interval een bepaalde handeling bevat. Voor beelden vanuit de eerste persoon benadrukt de producent het volgen van handen en het opdelen in deeltaken, wat bruikbaar is om te analyseren wat een operator in de loop van de tijd doet.

De gedocumenteerde uitvoer omvat punten, kaders en polygonen voor ruimtelijke lokalisatie, clips voor tijdsintervallen en trackcontainers voor objectbewegingen. Track is een container in de gegenereerde annotatiemarkup, geen afzonderlijke waarde voor het annotatieformaat. De punten op een traject kunnen ver uit elkaar liggen: een geretourneerd traject garandeert geen kader voor elk bronframe of voortdurende zichtbaarheid van het object. Bewaar de oorspronkelijke media en de koppeling met coördinaten of tijdstempels, zodat deze resultaten aan de werkelijke scène kunnen worden getoetst.

#### Audio en gecombineerd bewijsmateriaal

Mk1.5 voegt ingebouwd audiobegrip toe, waaronder transcriptie, detectie van geluidsgebeurtenissen, samenvattingen en vragen over een opname. De producent accepteert WAV, MP3 en FLAC. De audiolimiet per item is 16.384 audiotokens, ongeveer 21,8 minuten bij de gedocumenteerde snelheid van circa 750 tokens per minuut. Audio deelt de context met andere invoer en de uitvoerruimte, waardoor een verzoek de context kan vullen voordat die limiet per item is bereikt.

Voor een video waarvan het geluid van belang is, schakelt de werkwijze van de maker audio in video expliciet in. Geef aan of de taak betrekking heeft op spraak, een geluidsgebeurtenis, de zichtbare scène of hun onderlinge verband. De uitvoer bestaat uit tekst en gestructureerde inhoud; Mk1.5 genereert geen spraakaudio. Behoud bij transcriptie de gevraagde taal en de koppeling met tijdstippen, in plaats van een visueel bijschrift als transcript te behandelen.

#### Meerdere mediabestanden en gestructureerde antwoorden

De producent ondersteunt vergelijkingen tussen media-invoer. Geef de items labels en behoud de koppelingen met de mediabestanden. De optionele asset\_idx identificeert een voorkomensinstantie van media die op dat moment in het gesprek beschikbaar is, geen blijvende bestandsidentificatie. Als er geen expliciete of overgenomen selector aanwezig is, verwijst een annotatie naar het laatste beschikbare mediabestand op het moment van genereren. Deze conventies zijn van belang wanneer een taak twee camera's, pagina's of opnamen vergelijkt. De verzoeklimiet van de producent is 256 media-eenheden. Elk frame in een video\_frames-groep telt mee voor die limiet, hoewel de groep één assetindex inneemt; het inschakelen van het geluid van een video voegt geen extra mediabestand toe.

De maker ondersteunt eindantwoorden die worden beperkt door JSON Schema of een reguliere expressie. Definieer de velden of het patroon en controleer de geretourneerde waarden aan de hand van de bron. De maker documenteert ook Multilook voor onafhankelijke prompts met gedeelde context, een afzonderlijke werkwijze van de producent naast gewone chat met één completion.

#### Functies en redeneren

Mk1.5 kan kiezen uit aangeleverde functies die zijn beschreven met namen, doelen en JSON Schemas. De applicatie voert de voorgestelde aanroepen uit en retourneert waarnemingen. Definieer de toegestane handelingen en een voltooiingscriterium voor een taak in een fysieke omgeving of interface en gebruik vervolgens de nieuwe visuele toestand of het toolresultaat als bewijs voor de volgende stap. De redeneerinspanning is instelbaar in de modelvariant van de producent.

Functietools kunnen niet in hetzelfde verzoek worden gedeclareerd als uitvoer die wordt beperkt door JSON Schema of een reguliere expressie; de maker schrijft voor om na de toollus een eindantwoord met zulke beperkingen op te vragen. Controleer de reden voor beëindiging voordat je het resultaat gebruikt, omdat beëindiging door de lengtelimiet onvolledige uitvoer kan betekenen.

Een bruikbaar eindresultaat is een scène-uitleg met concrete verwijzingen, een transcript met tijdsaanduidingen, een objectannotatie of een door bewijs ondersteund actievoorstel. Controleer de geometrie aan de hand van de media, houd waargenomen details gescheiden van interpretatie en onderscheid de exacte audio-, tracking- en toolmogelijkheden van Mk1.5 van die van de eerdere Mk1-editie.

Praktische taak

### Praktische taak

Technisch voorbeeld in het Engels

```
Summarize a timed handling sequence

Use these written frame notes, not unseen footage: 00:02 operator picks up a red box; 00:05 places it on scale; 00:08 removes it; 00:11 places it on shelf. Return the ordered subtasks and the observed interval when the box is on the scale. State the sampling limitation instead of claiming exact continuous motion between notes.
```

#### Verwacht resultaat

```
An ordered subtask list and a scale interval explicitly bounded by the supplied observations.
```

#### Resultaat controleren

```
Timestamps stay attached to their notes, and the answer does not invent intermediate geometry or continuous visibility.
```

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions` `perceptron/perceptron-mk1.5`

[`perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/#m=perceptron%2Fperceptron-mk1.5&route=Ultra&caller=perceptron%2Fperceptron-mk1.5&fmt=chat)

Perceptron /`perceptron/perceptron-mk1.5`

### Aan de slag

Perceptron Mk1.5 begrijpt tekst, afbeeldingen, video en audio voor visuele taken en taken in een fysieke omgeving. Het retourneert tekst, ruimtelijke of tijdgebonden annotaties, objecttrajecten en voorgestelde functieaanroepen, met een door de producent opgegeven context van 36.864 tokens en een maximale uitvoer van 8.192 tokens.

Toegestane invoer

Tekst

Resultaten

Tekst

### Beschikbaar in Ailoot · invoer en methoden

**Ailoot Ultra · OpenAI Chat** `POST /v1/chat/completions`

Invoertypen

`text`

Uitvoertypen

`text`

Uitvoerformaat

json of SSE

| Veld | Type | Vereiste | Waarden en limieten | Standaard |
| --- | --- | --- | --- | --- |
| Veld`model` | Type`string` | VereisteVereist | Waarden en limieten perceptron/perceptron-mk1.5 | Standaard— |
| Veld`messages` | Type`message[]` | VereisteVereist | Waarden en limieten Minimumaantal items: 1 | Standaard— |
| Veld`messages[].role` | Type`string` | VereisteVereist | Waarden en limieten Voorbeelden: system, user, assistant, tool, function Voorwaarden: Deze rollen worden expliciet weergegeven door compatibiliteitstypen in de broncode; de exacte rollenverzameling van het model blijft modelspecifiek. Afhankelijk van het model | Standaard— |
| Veld`messages[].content` | Type`string\|content_part[]\|null` | VereisteOptioneel | Waarden en limieten | Standaard— |
| Veld`messages[].tool_calls` | Type`tool_call[]` | VereisteOptioneel | Waarden en limieten | Standaard— |
| Veld`messages[].tool_call_id` | Type`string` | VereisteOptioneel | Waarden en limieten Geldt wanneer: role=tool; gebruik het werkelijk teruggegeven ID | Standaard— |
| Veld`messages[].name` | Type`string` | VereisteOptioneel | Waarden en limieten | Standaard— |
| Veld`messages[].reasoning_content` | Type`string` | VereisteOptioneel | Waarden en limieten Geldt wanneer: Stuur de werkelijk teruggegeven redeneringen terug wanneer dit model ze gebruikt | Standaard— |
| Veld`messages[].reasoning_details` | Type`object\|array` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`max_tokens` | Type`integer` | VereisteOptioneel | Waarden en limieten Minimum: 1 Afhankelijk van het model | Standaard— |
| Veld`max_completion_tokens` | Type`integer` | VereisteOptioneel | Waarden en limieten Minimum: 1 Afhankelijk van het model | Standaard— |
| Veld`stream` | Type`boolean` | VereisteOptioneel | Waarden en limieten | Standaardfalse |
| Veld`stream_options.include_usage` | Type`boolean` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`temperature` | Type`number` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`top_p` | Type`number` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`stop` | Type`string\|string[]` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`tools` | Type`function_tool[]` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`tools[].type` | Type`string` | VereisteOptioneel | Waarden en limieten function Afhankelijk van het model | Standaard— |
| Veld`tools[].function.name` | Type`string` | VereisteVereist | Waarden en limieten Geldt wanneer: functietool opgegeven | Standaard— |
| Veld`tools[].function.description` | Type`string` | VereisteOptioneel | Waarden en limieten | Standaard— |
| Veld`tools[].function.parameters` | Type`JSON_schema` | VereisteOptioneel | Waarden en limieten | Standaard— |
| Veld`tool_choice` | Type`string\|object` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`parallel_tool_calls` | Type`boolean` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`response_format` | Type`object` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`reasoning_effort` | Type`string` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`reasoning` | Type`object` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`service_tier` | Type`string` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`instructions` | Type`string` | VereisteOptioneel | Waarden en limieten Compatibiliteitsveld | Standaard— |
| Veld`functions` | Type`function[]` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`function_call` | Type`string\|object` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`prompt_cache_options` | Type`object` | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
| Veld`modalities` | Type`string[]` | VereisteOptioneel | Waarden en limieten text | Standaard— |
| Veld`provider` | Type`object` | VereisteOptioneel | Waarden en limieten Voorwaarden: provider.options wordt op deze Ultra-tekstroute geweigerd | Standaard— |
| Veld`cache_control.ttl` | Type`string` | VereisteOptioneel | Waarden en limieten Voorwaarden: 1h wordt op de daadwerkelijke locaties voor promptcaching geweigerd | Standaard— |

Combinaties van invoermaterialen

**Tekst** · UTF8-tekst

`messages[].content`

Methodeparameters en levenscyclus

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, messages |
| Parameter`material_types` | Contracttext |
| Parameter`messages` | Contractberichtenarray met de structuur role/content |
| Parameter`file_material` | Contractwerkelijk UTF-8-document ingevoegd als letterlijke tekst; er wordt geen bestands-ID afgeleid |
| Parameter`optional_controls` | Contractstream, temperature, top\_p, stop, max\_tokens, max\_completion\_tokens, reasoning, response\_format, tools, tool\_choice |
| Parameter`control_scope` | Contractmodelspecifiek; functietools van de gebruiker verschillen van gehoste tools |
| Parameter`output_modalities` | Contracttext |
| Parameter`hosted_operations` | Contractfalse |
| Parameter`multimodal_input_binding` | Contractnull |

Levenscyclus: `synchronous_or_streamed`

Stuur het exacte model-ID mee met messages.

Contextlengte is geen uitvoerlimiet.

Een tekstbestand kan letterlijke tekst aanleveren; beeld-, audio- en bestandsobjectinvoer vereisen een exacte koppeling.

### Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus

Standaardtarief Wanneer de snelle modus is geselecteerd

Flexmodus

Standaardtarief Wanneer de modus flex is geselecteerd

Maximale redeneerinspanning

Standaardtarief Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt

Redeneerinspanning · high

Standaardtarief Wanneer de redeneerinspanning op high staat

Redeneerinspanning · low

Standaardtarief Wanneer de redeneerinspanning op low staat

Redeneerinspanning · medium

Standaardtarief Wanneer de redeneerinspanning op medium staat

Redeneerinspanning · minimal

Standaardtarief Wanneer de redeneerinspanning op minimal staat

Redeneerinspanning · none

Standaardtarief Wanneer de redeneerinspanning op none staat

#### Ailoot-tarieven

#### Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

| Configuratie | Tariefstaffel | Contexttokens, meer dan | Contexttokens, tot en met | Kosten |
| --- | --- | --- | --- | --- |
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Contexttokens, meer dan— | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens **$0.0003** / 1K tokens Uitvoer · Uitvoertokens **$0.003** / 1K tokens Invoer · Cache lezen **—** / 1K tokens Invoer · Cache schrijven **—** / 1K tokens Invoer · Cache schrijven, 1 uur **—** / 1K tokens |
| ConfiguratieNiveau 1 voor aanvraaglengte | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens **$0.0003** / 1K tokens Uitvoer · Uitvoertokens **$0.003** / 1K tokens Invoer · Cache lezen **—** / 1K tokens Invoer · Cache schrijven **—** / 1K tokens Invoer · Cache schrijven, 1 uur **—** / 1K tokens |

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. [Zo werken reservering en afrekening →](https://ailoot.ai/docs/nl/billing/reserve/)

### Voorbeeldverzoeken

#### Ailoot Ultra · OpenAI Chat

curlPython SDKPython-stream

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "perceptron/perceptron-mk1.5", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

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
```

```python
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='perceptron/perceptron-mk1.5',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
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"))
```

```python
from openai import OpenAI
import os
from pathlib import Path

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

with client.chat.completions.stream(model='perceptron/perceptron-mk1.5',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")
```

### Resultaten ophalen en opslaan

#### Ailoot Ultra · OpenAI Chat

json of SSE

##### Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar elke keuze en de bijbehorende inhoud, toolaanroepen en redeneringen. Voeg in SSE delta’s samen per keuze-/toolindex en bewaar de uiteindelijke reden van beëindiging en de verbruiksgegevens.

##### Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden

| Veld | Type |
| --- | --- |
| Veld`choices[].index` | Typeinteger |
| Veld`choices[].message.content` | Typestring\|null |
| Veld`choices[].message.tool_calls` | Typetool\_call\[\] |
| Veld`choices[].message.reasoning_content` | Typestring |
| Veld`choices[].message.reasoning_details` | Typeobject\|array |
| Veld`choices[].finish_reason` | Typestring\|null |
| Veld`usage` | Typeobject |

Fouten en vervolgstappen

| Antwoord | Voorwaarde | Volgende stap |
| --- | --- | --- |
| Antwoord400 · `invalid_request_error` | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag. |

### Aliasnamen

#### Modelaliasnamen

**Ailoot Ultra** [`perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/#m=perceptron%2Fperceptron-mk1.5&route=Ultra&caller=perceptron%2Fperceptron-mk1.5&fmt=chat)

#### Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

#### Gerelateerde aanroeper-ID’s

[`perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/#m=perceptron%2Fperceptron-mk1.5&route=Ultra&caller=perceptron%2Fperceptron-mk1.5&fmt=chat)

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages` `perceptron/perceptron-mk1.5`

[`perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/#m=perceptron%2Fperceptron-mk1.5&route=Ultra&caller=perceptron%2Fperceptron-mk1.5&fmt=messages)

Perceptron /`perceptron/perceptron-mk1.5`

### Aan de slag

Perceptron Mk1.5 begrijpt tekst, afbeeldingen, video en audio voor visuele taken en taken in een fysieke omgeving. Het retourneert tekst, ruimtelijke of tijdgebonden annotaties, objecttrajecten en voorgestelde functieaanroepen, met een door de producent opgegeven context van 36.864 tokens en een maximale uitvoer van 8.192 tokens.

Toegestane invoer

Tekst

Resultaten

json · sse

### Beschikbaar in Ailoot · invoer en methoden

**Ailoot Ultra · Anthropic Messages** `POST /v1/messages`

Invoertypen

`text`

Uitvoertypen

`json`, `sse`

Uitvoerformaat

JSON of SSE

| Veld | Type | Vereiste | Waarden en limieten | Standaard |
| --- | --- | --- | --- | --- |
| Veld`model` | Type`string` | VereisteVereist | Waarden en limieten perceptron/perceptron-mk1.5 | Standaard— |
| Veld`messages` | Type`message[]` | VereisteVereist | Waarden en limieten | Standaard— |
| Veld`messages[].role` | Type`string` | VereisteVereist | Waarden en limieten user, assistant | Standaard— |
| Veld`messages[].content` | Type`string` | VereisteVereist | Waarden en limieten | Standaard— |
| Veld`max_tokens` | Type`integer` | VereisteVereist | Waarden en limieten | Standaard— |
| Veld`stream` | Type`boolean` | VereisteOptioneel | Waarden en limieten | Standaardfalse |

Combinaties van invoermaterialen

**Tekst** · UTF-8-tekst

`messages[].content als tekenreeks`

Methodeparameters en levenscyclus

| Parameter | Contract |
| --- | --- |
| Parameter`content_type` | Contractapplication/json |
| Parameter`required` | Contractmodel, messages, max\_tokens |
| Parameter`optional_controls` | Contractstream |
| Parameter`material_types` | Contracttext |
| Parameter`text_file_material` | ContractLees het werkelijke UTF-8-document en plaats de tekst ervan in de aangegeven invoer of in de inhoudstekenreeks van een bericht. |

Levenscyclus: `synchronous_or_streamed`

### Tarieven

Tariefverwijzingen voegen geen verzoekopties toe. Ondersteunde parameters staan bij de geselecteerde methode.

Snelle modus

Standaardtarief Wanneer de snelle modus is geselecteerd

Flexmodus

Standaardtarief Wanneer de modus flex is geselecteerd

Maximale redeneerinspanning

Standaardtarief Wanneer bij maximale redeneerinspanning de default-aanpassing wordt gebruikt

Redeneerinspanning · high

Standaardtarief Wanneer de redeneerinspanning op high staat

Redeneerinspanning · low

Standaardtarief Wanneer de redeneerinspanning op low staat

Redeneerinspanning · medium

Standaardtarief Wanneer de redeneerinspanning op medium staat

Redeneerinspanning · minimal

Standaardtarief Wanneer de redeneerinspanning op minimal staat

Redeneerinspanning · none

Standaardtarief Wanneer de redeneerinspanning op none staat

#### Ailoot-tarieven

#### Prijzen per configuratie

Koppel elke kostenpost aan de getoonde voorwaarden. Gebruik één tarief voor elke groep alternatieve configuraties.

| Configuratie | Tariefstaffel | Contexttokens, meer dan | Contexttokens, tot en met | Kosten |
| --- | --- | --- | --- | --- |
| ConfiguratieBasistarieven voor tokens | TariefstaffelBasistarief | Contexttokens, meer dan— | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens **$0.0003** / 1K tokens Uitvoer · Uitvoertokens **$0.003** / 1K tokens Invoer · Cache lezen **—** / 1K tokens Invoer · Cache schrijven **—** / 1K tokens Invoer · Cache schrijven, 1 uur **—** / 1K tokens |
| ConfiguratieNiveau 1 voor aanvraaglengte | Tariefstaffel— | Contexttokens, meer dan0 | Contexttokens, tot en metGeen bovengrens | Kosten Invoer · Invoertokens **$0.0003** / 1K tokens Uitvoer · Uitvoertokens **$0.003** / 1K tokens Invoer · Cache lezen **—** / 1K tokens Invoer · Cache schrijven **—** / 1K tokens Invoer · Cache schrijven, 1 uur **—** / 1K tokens |

Ailoot reserveert vóór een verzoek een geschat bedrag. Na het resultaat worden de uiteindelijke kosten afgerekend op basis van het gemeten verbruik. Bij streaming gebeurt de afrekening op basis van de definitieve verbruiksregistratie. [Zo werken reservering en afrekening →](https://ailoot.ai/docs/nl/billing/reserve/)

### Voorbeeldverzoeken

#### Ailoot Ultra · Anthropic Messages

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op

```json
{
  "model": "perceptron/perceptron-mk1.5",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
```

```bash
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': 'perceptron/perceptron-mk1.5', '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
```

```python
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': 'perceptron/perceptron-mk1.5', '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))
```

### Resultaten ophalen en opslaan

#### Ailoot Ultra · Anthropic Messages

JSON of SSE

##### Alle voltooide resultaten bewaren

Bewaar elk volledig teruggegeven antwoord, bestand en inhoudsonderdeel.

Bewaar alle inhoudsblokken, handtekeningen van redeneringen en werkelijke toolgebruik-ID’s. Voeg alle SSE-blokdelta’s samen; het eerste tekstblok is niet de volledige uitvoer.

##### Als het oorspronkelijke antwoord moet worden gecontroleerd

Bewaar aanvraag-/antwoord-ID’s en headers. Er wordt geen algemene URL meegeleverd om teksttaken op te halen.

Antwoordvelden

| Veld | Type |
| --- | --- |
| Veld`id` | Typestring |
| Veld`model` | Typestring |
| Veld`content[]` | Typetext\|thinking\|tool\_use\|other content block |
| Veld`stop_reason` | Typestring\|null |
| Veld`usage` | Typeobject |

Fouten en vervolgstappen

| Antwoord | Voorwaarde | Volgende stap |
| --- | --- | --- |
| Antwoord400 · `invalid_request_error` | VoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldig | Volgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag. |

### Aliasnamen

#### Modelaliasnamen

**Ailoot Ultra** [`perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/#m=perceptron%2Fperceptron-mk1.5&route=Ultra&caller=perceptron%2Fperceptron-mk1.5&fmt=messages)

#### Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

#### Gerelateerde aanroeper-ID’s

[`perceptron/perceptron-mk1.5`](https://ailoot.ai/models/nl/#m=perceptron%2Fperceptron-mk1.5&route=Ultra&caller=perceptron%2Fperceptron-mk1.5&fmt=messages)

FAQ · Perceptron: Perceptron Mk1.5

Welke invoer en resultaten zijn beschikbaar?

`POST /v1/chat/completions` · `perceptron/perceptron-mk1.5`: `text` → `text` `POST /v1/messages` · `perceptron/perceptron-mk1.5`: `text` → `json`, `sse`

Welke velden gebruikt het verzoek?

`POST /v1/chat/completions` · `perceptron/perceptron-mk1.5`: `model`, `messages`, `stream`, `modalities`, `provider` `POST /v1/messages` · `perceptron/perceptron-mk1.5`: `model`, `messages`, `max_tokens`, `stream`

Welke limieten gelden?

`POST /v1/chat/completions` · `perceptron/perceptron-mk1.5`: `messages.min_items`: `1`

Verbind Ailoot met Claude Code, OpenCode, Hermes of je eigen applicatie.

## Het bedrijf en zijn projectenportefeuille

Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.

## Koop tokens met korting.

Abonnementsvoordeel voor regelmatig gebruik. Promotiecodes geven tot 50% korting op tokens.

Abonnement

Kies een abonnement met korting voor je terugkerende verzoeken.

Promotiecode tot 50%

Vul de code bij aankoop in. De prijs wordt volgens de lopende actie herberekend.

Kosten in de geschiedenis

Model, tokens en bedrag worden per verzoek bewaard.

[Kies een abonnement](https://ailoot.ai/docs/nl/billing/subscriptions/) · [Bekijk modelprijzen](https://ailoot.ai/models/nl/)

## Verbind de API met het product dat je verkoopt.

SaaS, apps en bots volgens de openbare aanbodvoorwaarden en licentieovereenkomst van Ailoot. Vraag voor doorverkoop een resellerlicentie aan.

Commerciële applicatie

Voeg tekst-, beeld-, video- en geluidsgeneratie aan betaalde functies van je service toe.

Resellerlicentie

Stuur een projectbeschrijving en toegangsschema. Vraag schriftelijke voorwaarden voor gebruik en doorverkoop.

Documenten op de site

Aanbodvoorwaarden, licentieovereenkomst en gegevensbeleid zijn vóór het verbinden beschikbaar.

[Vraag een resellerlicentie aan](mailto:support@ailoot.ai) · [Aanbodvoorwaarden en licentieovereenkomst](https://ailoot.ai/legal/offer?lang=nl)

## Ailoot · Het bedrijf en zijn projectenportefeuille





Ailoot bouwt op opgebouwde operationele ervaring, een groot klantenbestand, een stabiele dienst en doorlopende KPI-controle.





Het bedrijf en zijn projectenportefeuille: miljoenen klanten; maandelijkse verkopen in de miljarden.





Ailoot gebruikt die operationele ervaring voor API-toegang tot AI-functies in klantproducten, agents, applicaties en automatiseringen.
