Perceptron: Perceptron Mk1
Perceptron Mk1 is het beeld- en videomodel van Perceptron voor temporeel begrip, ruimtelijke lokalisatie en redeneren in een fysieke omgeving. Het produceert tekst en gestructureerde annotaties voor scènes, documenten en zichtbare handelingen, met een multimodale context van 32K en optioneel redeneren.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsperceptron/perceptron-mk1 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesperceptron/perceptron-mk1
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 is het model van Perceptron voor het begrijpen van afbeeldingen en video en voor redeneren in een fysieke omgeving. Het analyseert visueel bronmateriaal in relatie tot een schriftelijke vraag en retourneert tekst en gestructureerde ruimtelijke of tijdgebonden annotaties. De modelvariant van de maker heeft een multimodale context van 32K en een hybride redeneermodus die kan worden uitgeschakeld voor taken waarvoor geen redeneerspoor nodig is.
Temporeel redeneren en lokaliseren
De fabrikant ontwikkelt Mk1 om gebeurtenissen in de loop van de tijd uit te leggen, in plaats van alleen een frame te labelen. Een sportfragment, kookdemonstratie of taak van een operator kan een gestructureerde beschrijving opleveren van wat er gebeurde en wanneer. De producent documenteert dynamische videoanalyse met maximaal twee frames per seconde. Dit bemonsteringsprofiel staat los van de oorspronkelijke beeldsnelheid van de bronvideo.
Beschrijf bij een taak om een gebeurtenis te lokaliseren de handeling en het interval dat je nodig hebt. Een voorbeeldinstructie is: “Identificeer de momenten waarop het voorwerp op de plank wordt geplaatst, retourneer de tijdsintervallen en leg voor elk interval uit welk zichtbaar bewijs daarvoor bestaat.” Houd de bronvideo en tijdsverwijzingen bij elkaar, zodat een clipannotatie of gebeurtenisinterval kan worden gecontroleerd voordat een andere applicatie het gebruikt.
Referentievoorbeelden en vergelijking
Mk1 ondersteunt visueel leren binnen de context aan de hand van een referentieafbeelding of -video, gevolgd door het vinden van overeenkomende gevallen in nieuw materiaal. Definieer wat een geval relevant maakt en behoud het referentielabel. Lever bij een vergelijking beide mediabestanden aan en benoem de criteria: het object, de handeling, de toestand of het documentdetail dat moet worden vergeleken.
Dit is een manier om de taak met aangeleverde voorbeelden voor te bereiden, en veronderstelt niet dat er een afzonderlijk fine-tuningproces is uitgevoerd. Als de scènes verschillen, vraag de uitvoer dan te vermelden welke invoer elke bevinding ondersteunt. Houd zichtbare gelijkenis gescheiden van een afgeleide conclusie over een gebeurtenis.
Taken met afbeeldingen en documenten
De beeldmogelijkheden van de producent omvatten aanwijzen, tellen, tekstherkenning en het aflezen van analoge of digitale instrumenten. Behoud bij een instrument de schaal, eenheden en leesbare markeringen; definieer bij een telling het gebied en de categorie. Mk1 zet ook complexe documenten om naar HTML, JSON of Markdown, met behoud van lay-outrelaties, tabellen en hiërarchie.
Lever een leesbare pagina-afbeelding aan en benoem de velden of de vraag. Een bruikbaar resultaat behoudt de koppeling met de bron en maakt onderscheid tussen geëxtraheerde tekst en interpretatie. Houd bij de voorbereiding van de bron en de beoordeling van het antwoord rekening met kleine tekst, afdekking en dubbelzinnig beeldmateriaal.
Ruimtelijke basisvormen en werk in een fysieke omgeving
De maker traint punten, kaders, polygonen, trajecten en clips als volwaardige gestructureerde uitvoer naast tekst. Deze annotaties kunnen doelen, beperkingen, taakgrenzen of waargenomen informatie over succes en mislukking leveren aan een omringende robotica- of analyseworkflow. Geef bij een taak met meerdere camera's elke weergave een label en behoud de koppeling tussen elke annotatie en haar bron.
Het model interpreteert de waarnemingen en produceert het onderbouwde resultaat; de applicatie of het besturingssysteem bepaalt hoe het wordt gebruikt en voert eventuele fysieke of interfacehandelingen uit. Een voorgesteld doel of geannoteerd interval staat los van een uitgevoerde handeling of een geëxporteerd mediabestand.
Limieten en reikwijdte van de editie
Reserveer binnen de context van 32K ruimte voor de videoweergave, beeldinhoud, de prompt, de geschiedenis en de gegenereerde uitvoer. Vraag om het eindresultaat en het bewijs voor elk resultaat, in plaats van te verwachten dat een verzameling onderling losstaande bronnen haar eigen doel bepaalt. Controleer coördinaten, tijdsintervallen en geëxtraheerde waarden aan de hand van de oorspronkelijke media.
Mk1 behoudt zijn eigen benoemde editie en visuele modelvariant. Ingebouwde audio-invoer, de huidige verzoekbeperkingen van Mk1.5 en de details van diens nieuwe tool- en trackingwerkwijze mogen niet voor deze eerdere release worden verondersteld. Het bruikbare eindresultaat is een controleerbare scènebeschrijving, documentregistratie of ruimtelijke/tijdgebonden annotatie, gekoppeld aan het aangeleverde visuele bewijsmateriaal.
Praktische taak
Praktische taak
Technisch voorbeeld in het Engels
Annotate a transcribed event sequence
Use these written observations from clip C: [00:02] hand grips a cup; [00:05] cup rests on shelf; [00:08] hand releases cup; [00:11] hand leaves frame. Return the interval from shelf contact to release and cite the two observations that bound it. State that you are using notes rather than inspecting video.Verwacht resultaat
A textual interval annotation with source timestamps, bounding evidence and the stated notes-only basis.Resultaat controleren
Check the interval uses contact and release timestamps rather than grip or departure.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions perceptron/perceptron-mk1
perceptron/perceptron-mk1Aan de slag
Perceptron Mk1 is het beeld- en videomodel van Perceptron voor temporeel begrip, ruimtelijke lokalisatie en redeneren in een fysieke omgeving. Het produceert tekst en gestructureerde annotaties voor scènes, documenten en zichtbare handelingen, met een multimodale context van 32K en optioneel redeneren.
- 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 |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten perceptron/perceptron-mk1 | Standaard— |
Veldmessages | Typemessage[] | VereisteVereist | Waarden en limieten Minimumaantal items: 1 | Standaard— |
Veldmessages[].role | Typestring | 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— |
Veldmessages[].content | Typestring|content_part[]|null | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldmessages[].tool_calls | Typetool_call[] | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldmessages[].tool_call_id | Typestring | VereisteOptioneel | Waarden en limieten Geldt wanneer: role=tool; gebruik het werkelijk teruggegeven ID | Standaard— |
Veldmessages[].name | Typestring | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldmessages[].reasoning_content | Typestring | VereisteOptioneel | Waarden en limieten Geldt wanneer: Stuur de werkelijk teruggegeven redeneringen terug wanneer dit model ze gebruikt | Standaard— |
Veldmessages[].reasoning_details | Typeobject|array | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldmax_tokens | Typeinteger | VereisteOptioneel | Waarden en limieten Minimum: 1 Afhankelijk van het model | Standaard— |
Veldmax_completion_tokens | Typeinteger | VereisteOptioneel | Waarden en limieten Minimum: 1 Afhankelijk van het model | Standaard— |
Veldstream | Typeboolean | VereisteOptioneel | Waarden en limieten | Standaardfalse |
Veldstream_options.include_usage | Typeboolean | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtemperature | Typenumber | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtop_p | Typenumber | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldstop | Typestring|string[] | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtools | Typefunction_tool[] | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldtools[].type | Typestring | VereisteOptioneel | Waarden en limieten function Afhankelijk van het model | Standaard— |
Veldtools[].function.name | Typestring | VereisteVereist | Waarden en limieten Geldt wanneer: functietool opgegeven | Standaard— |
Veldtools[].function.description | Typestring | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldtools[].function.parameters | TypeJSON_schema | VereisteOptioneel | Waarden en limieten | Standaard— |
Veldtool_choice | Typestring|object | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldparallel_tool_calls | Typeboolean | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldresponse_format | Typeobject | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldreasoning_effort | Typestring | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldreasoning | Typeobject | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldservice_tier | Typestring | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldinstructions | Typestring | VereisteOptioneel | Waarden en limieten Compatibiliteitsveld | Standaard— |
Veldfunctions | Typefunction[] | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldfunction_call | Typestring|object | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldprompt_cache_options | Typeobject | VereisteOptioneel | Waarden en limieten Afhankelijk van het model | Standaard— |
Veldmodalities | Typestring[] | VereisteOptioneel | Waarden en limieten text | Standaard— |
Veldprovider | Typeobject | VereisteOptioneel | Waarden en limieten Voorwaarden: provider.options wordt op deze Ultra-tekstroute geweigerd | Standaard— |
Veldcache_control.ttl | Typestring | 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 |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, messages |
Parametermaterial_types | Contracttext |
Parametermessages | Contractberichtenarray met de structuur role/content |
Parameterfile_material | Contractwerkelijk UTF-8-document ingevoegd als letterlijke tekst; er wordt geen bestands-ID afgeleid |
Parameteroptional_controls | Contractstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parametercontrol_scope | Contractmodelspecifiek; functietools van de gebruiker verschillen van gehoste tools |
Parameteroutput_modalities | Contracttext |
Parameterhosted_operations | Contractfalse |
Parametermultimodal_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
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 →
Voorbeeldverzoeken
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": "perceptron/perceptron-mk1", "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
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',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"))
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',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 |
|---|---|
Veldchoices[].index | Typeinteger |
Veldchoices[].message.content | Typestring|null |
Veldchoices[].message.tool_calls | Typetool_call[] |
Veldchoices[].message.reasoning_content | Typestring |
Veldchoices[].message.reasoning_details | Typeobject|array |
Veldchoices[].finish_reason | Typestring|null |
Veldusage | 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
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
Ailoot Ultra · Anthropic Messages POST /v1/messages perceptron/perceptron-mk1
perceptron/perceptron-mk1Aan de slag
Perceptron Mk1 is het beeld- en videomodel van Perceptron voor temporeel begrip, ruimtelijke lokalisatie en redeneren in een fysieke omgeving. Het produceert tekst en gestructureerde annotaties voor scènes, documenten en zichtbare handelingen, met een multimodale context van 32K en optioneel redeneren.
- 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 |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten perceptron/perceptron-mk1 | Standaard— |
Veldmessages | Typemessage[] | VereisteVereist | Waarden en limieten | Standaard— |
Veldmessages[].role | Typestring | VereisteVereist | Waarden en limieten user, assistant | Standaard— |
Veldmessages[].content | Typestring | VereisteVereist | Waarden en limieten | Standaard— |
Veldmax_tokens | Typeinteger | VereisteVereist | Waarden en limieten | Standaard— |
Veldstream | Typeboolean | VereisteOptioneel | Waarden en limieten | Standaardfalse |
Combinaties van invoermaterialen
Tekst · UTF-8-tekst
messages[].content als tekenreeks
Methodeparameters en levenscyclus
| Parameter | Contract |
|---|---|
Parametercontent_type | Contractapplication/json |
Parameterrequired | Contractmodel, messages, max_tokens |
Parameteroptional_controls | Contractstream |
Parametermaterial_types | Contracttext |
Parametertext_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
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 →
Voorbeeldverzoeken
Ailoot Ultra · Anthropic Messages
{
"model": "perceptron/perceptron-mk1",
"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': 'perceptron/perceptron-mk1', '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': 'perceptron/perceptron-mk1', '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 |
|---|---|
Veldid | Typestring |
Veldmodel | Typestring |
Veldcontent[] | Typetext|thinking|tool_use|other content block |
Veldstop_reason | Typestring|null |
Veldusage | 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
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · Perceptron: Perceptron Mk1
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/chat/completions·perceptron/perceptron-mk1:text→textPOST /v1/messages·perceptron/perceptron-mk1:text→json,sse- Welke velden gebruikt het verzoek?
POST /v1/chat/completions·perceptron/perceptron-mk1:model,messages,stream,modalities,providerPOST /v1/messages·perceptron/perceptron-mk1:model,messages,max_tokens,stream- Welke limieten gelden?
POST /v1/chat/completions·perceptron/perceptron-mk1:messages.min_items:1