models

Meta: Muse Spark 1.2

Markdown · JSON

Meta: Muse Spark 1.2

Muse Spark 1.2 is Meta’s multimodale redeneermodel met focus op visueel programmeren, grafieken en audiovisueel begrip. Het kan aangeleverde afbeeldingen of video via gekoppelde tools omzetten in voorgestelde web- en gamecode, met tekstuitvoer en een door de maker opgegeven context van 1.048.576 tokens.

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.

Muse Spark 1.2 is een op programmeren gerichte update van Meta’s Muse Spark 1.1, met nadruk op multimodaal begrip en visuele redenering. De demonstraties van de maker verbinden afbeeldingen en video met digitale artefacten zoals webpagina’s en games, terwijl de modeltabel een context van 1.048.576 tokens en tekstuitvoer vermeldt. Deze vermelding betreft Standard 1.2, onderscheiden van Contributor 1.2 en de latere 1.3.

Visueel programmeren

De release beschrijft hoe visuele lay-out, hiërarchie en stijl worden omgezet in werkende code en het resulterende artefact vervolgens met tools wordt geïnspecteerd. Geef voor een nuttige taak de afbeelding of clip samen met het te implementeren gedrag. Een schermafbeelding kan het uiterlijk tonen maar interacties onbepaald laten; benoem daarom de bedieningselementen, toestanden en verwachte reacties op gebruikersacties die het resultaat moet bevatten.

Vraag afzonderlijk om de zichtbare structuur, de voorgestelde implementatie en de aannames. Een taak om een pagina te reconstrueren kan bijvoorbeeld de benoemde onderdelen en visuele relaties uit de referentie vereisen en vervolgens om de code voor één vastgelegde interactie vragen. Die code renderen en gebruiken vereist de gekoppelde omgeving; de resulterende schermafbeelding of uitvoeringsfeedback kan invoer worden voor de volgende correctie.

De maker noemt naast codegeneratie ook grafiekbegrip en visuele redenering. Behoud de assen, eenheden en labels van een grafiek en vraag om de waarneming die elke conclusie ondersteunt. Benoem voor een diagram de uit te leggen relatie en de te behouden bronlabels. Maak bij een documentafbeelding onderscheid tussen transcriptie van de zichtbare tekst en een samenvatting of interpretatie.

Ruimtelijke en audiovisuele workflows

De aankondiging van 1.2 bespreekt ook een gespecialiseerde roboticavariant en een systeem met twee niveaus voor planning en actie. Dat zijn afzonderlijke experimentele componenten: een model op hoog niveau redeneert over de scène en subtaken, terwijl een afzonderlijke vision-language-action-policy acties op laag niveau uitvoert. Het Standard-model met tekstuitvoer mag niet als een robotische actuator worden beschreven enkel omdat de familierelease die demonstratie bevat.

Voor de Standard-versie documenteert de modeltabel tekst, afbeeldingen, video, audio en PDF’s als invoer. Een audiovisuele taak kan vragen naar de gebeurtenis of gesproken voorwaarde die relevant is voor een vraag en een geordend overzicht van het ondersteunende materiaal teruggeven. Benoem het relevante segment en de antwoordvorm in plaats van om een ongerichte samenvatting van elke modaliteit te vragen.

De voorbeelden van de maker combineren videobegrip, gedetailleerde bijschriften en inspectie met tools. Een praktische workflow kan een demonstratie met de geschreven procedure vergelijken, om de zichtbare overeenkomsten en verschillen vragen en vervolgens een tekstresultaat voorbereiden voor een latere toepassingsstap. Gegenereerde tekst, code en gestructureerde bevindingen zijn de gedocumenteerde uitvoer; beeld- of spraakgeneratie behoort tot afzonderlijk benoemde componenten.

Redeneerinstellingen en context

Muse Spark redeneert intern voordat het zichtbare tekst produceert. De gedocumenteerde niveaus voor 1.2 zijn minimal, low, medium, high en xhigh. max hoort bij Standard 1.3 en none is geen ondersteunde manier om redenering uit te schakelen. Wanneer geen niveau wordt opgegeven, gebruikt het model een door het model bepaald niveau.

De context van 1.048.576 tokens kan samenhangend bronmateriaal en gesprekken bewaren, maar het doel en eindartefact moeten nog altijd worden gedefinieerd. Benoem voor een lange documenttaak de vraag, label elke bron en bewaar de locatie bij geëxtraheerde informatie. Redeneertokens en zichtbare antwoordtokens delen het uitvoerbudget; reserveer daarom voldoende ruimte voor de uitleg of code die de taak werkelijk nodig heeft.

Ruwe interne redenering is niet beschikbaar als gewone tekst. De chatinterface van de maker neemt evenmin een leesbaar privétraject over gespreksbeurten heen mee voor externe aanroepers; bewaar de zichtbare berichten, bronnen en teruggegeven toolresultaten die een vervolg nodig heeft. Logwaarschijnlijkheden worden niet ondersteund, dus het model biedt die functie niet als betrouwbaarheidsmaat voor zijn conclusies.

Tools en gestructureerde artefacten

De toepassing beschrijft ontwikkelaarsfuncties, het model genereert de voorgestelde aanroepen en argumenten, en de toepassing voert ze uit en geeft voor elke aanroep het resultaat terug. Het model kan daarna de werkelijke feedback inspecteren en de volgende stap kiezen. De nadruk in de release op het onderzoeken van zowel visuele invoer als gegenereerde artefacten hangt af van de aanwezigheid van die tools in de omgeving.

Gestructureerde uitvoer kan de tekst beperken tot een vastgelegd JSON-schema. Een registratie van visuele extractie kan de bronafbeelding, het object of label, de waargenomen waarde en de interpretatie bevatten. Een codereview kan het betrokken symbool, de afwijking en de voorgestelde wijziging benoemen. De strict-modus van de maker vereist een gewoon object als root, stelt alle vermelde eigenschappen verplicht en sluit extra eigenschappen uit; recursieve schema’s worden verworpen.

Definieer de correctheid van het artefact in praktische termen: welke brondetails het moet behouden, hoe een interactie zich moet gedragen en welke teruggegeven feedback dat gedrag zou aantonen. De geraadpleegde bronnen geven geen onafhankelijke maximale invoer- of uitvoertokencapaciteit buiten de modelcontext. Behoud de Standard 1.2-editie en het onderscheid tussen een voorgesteld tekstueel artefact en het uitvoerings- of renderresultaat waarmee het wordt geïnspecteerd.

Praktische taak

Praktische taak

Technisch voorbeeld in het Engels

Implement a specified responsive layout

Draft semantic HTML and CSS for a product comparison section with a title, introduction and three feature columns. At narrow widths, stack the columns in the same reading order. Each column needs a heading and three bullet points. Use the placeholder copy supplied in your code and explain the breakpoint choice; return source only, without claiming a rendered result.

Verwacht resultaat

A bounded HTML/CSS section and a short explanation of stacking behavior and reading order.

Resultaat controleren

At the proposed narrow breakpoint, the DOM order and visual order match and no horizontal overflow is introduced.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions meta/muse-spark-1.2

meta/muse-spark-1.2

Meta /meta/muse-spark-1.2

Aan de slag

Muse Spark 1.2 is Meta’s multimodale redeneermodel met focus op visueel programmeren, grafieken en audiovisueel begrip. Het kan aangeleverde afbeeldingen of video via gekoppelde tools omzetten in voorgestelde web- en gamecode, met tekstuitvoer en een door de maker opgegeven context van 1.048.576 tokens.

Toegestane invoer
Tekst
Resultaten
Tekst

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Invoer
text
Uitvoer
text
Uitvoerformaat
json of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
meta/muse-spark-1.2
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limieten
Minimumaantal items: 1
Standaard—
Veldmessages[].roleTypestringVereisteVereistWaarden 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[].contentTypestring|content_part[]|nullVereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].tool_callsTypetool_call[]VereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].tool_call_idTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: role=tool; gebruik het werkelijk teruggegeven ID
Standaard—
Veldmessages[].nameTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldmessages[].reasoning_contentTypestringVereisteOptioneelWaarden en limieten
Geldt wanneer: Stuur de werkelijk teruggegeven redeneringen terug wanneer dit model ze gebruikt
Standaard—
Veldmessages[].reasoning_detailsTypeobject|arrayVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldmax_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
Veldmax_completion_tokensTypeintegerVereisteOptioneelWaarden en limieten
Minimum: 1
Afhankelijk van het model
Standaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Veldstream_options.include_usageTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtemperatureTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtop_pTypenumberVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldstopTypestring|string[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldtoolsTypefunction_tool[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldtools[].typeTypestringVereisteOptioneelWaarden en limieten
function
Afhankelijk van het model
Standaard—
Veldtools[].function.nameTypestringVereisteVereistWaarden en limieten
Geldt wanneer: functietool opgegeven
Standaard—
Veldtools[].function.descriptionTypestringVereisteOptioneelWaarden en limietenStandaard—
Veldtools[].function.parametersTypeJSON_schemaVereisteOptioneelWaarden en limietenStandaard—
Veldtool_choiceTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldparallel_tool_callsTypebooleanVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldresponse_formatTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldreasoning_effortTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldreasoningTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldservice_tierTypestringVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldinstructionsTypestringVereisteOptioneelWaarden en limieten
Compatibiliteitsveld
Standaard—
VeldfunctionsTypefunction[]VereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldfunction_callTypestring|objectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
Veldprompt_cache_optionsTypeobjectVereisteOptioneelWaarden en limieten
Afhankelijk van het model
Standaard—
VeldmodalitiesTypestring[]VereisteOptioneelWaarden en limieten
text
Standaard—
VeldproviderTypeobjectVereisteOptioneelWaarden en limieten
Voorwaarden: provider.options wordt op deze Ultra-tekstroute geweigerd
Standaard—
Veldcache_control.ttlTypestringVereisteOptioneelWaarden en limieten
Voorwaarden: 1h wordt op de daadwerkelijke locaties voor promptcaching geweigerd
Standaard—
Combinaties van invoermaterialen

Tekst · UTF8-tekst

messages[].content

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages
Parametermaterial_typesContracttext
ParametermessagesContractberichtenarray met de structuur role/content
Parameterfile_materialContractwerkelijk UTF-8-document ingevoegd als letterlijke tekst; er wordt geen bestands-ID afgeleid
Parameteroptional_controlsContractstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametercontrol_scopeContractmodelspecifiek; functietools van de gebruiker verschillen van gehoste tools
Parameteroutput_modalitiesContracttext
Parameterhosted_operationsContractfalse
Parametermultimodal_input_bindingContractnull

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 geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · minimaal
Standaardtarief Wanneer de redeneerinspanning minimaal is
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

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

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.0025 / 1K tokens
Uitvoer · Uitvoertokens $0.0085 / 1K tokens
Invoer · Cache lezen $0.0003 / 1K tokens
Invoer · Cache schrijven — / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.0025 / 1K tokens
Uitvoer · Uitvoertokens $0.0085 / 1K tokens
Invoer · Cache lezen $0.0003 / 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

curlPython SDKPython-stream
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "meta/muse-spark-1.2", "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='meta/muse-spark-1.2',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='meta/muse-spark-1.2',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
VeldType
Veldchoices[].indexTypeinteger
Veldchoices[].message.contentTypestring|null
Veldchoices[].message.tool_callsTypetool_call[]
Veldchoices[].message.reasoning_contentTypestring
Veldchoices[].message.reasoning_detailsTypeobject|array
Veldchoices[].finish_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot Ultra meta/muse-spark-1.2

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

meta/muse-spark-1.2

Ailoot Ultra · Anthropic Messages POST /v1/messages meta/muse-spark-1.2

meta/muse-spark-1.2

Meta /meta/muse-spark-1.2

Aan de slag

Muse Spark 1.2 is Meta’s multimodale redeneermodel met focus op visueel programmeren, grafieken en audiovisueel begrip. Het kan aangeleverde afbeeldingen of video via gekoppelde tools omzetten in voorgestelde web- en gamecode, met tekstuitvoer en een door de maker opgegeven context van 1.048.576 tokens.

Toegestane invoer
Tekst
Resultaten
json · sse

Beschikbaar in Ailoot · invoer en methoden

Ailoot Ultra · Anthropic Messages POST /v1/messages
Invoer
text
Uitvoer
json, sse
Uitvoerformaat
JSON of SSE
VeldTypeVereisteWaarden en limietenStandaard
VeldmodelTypestringVereisteVereistWaarden en limieten
meta/muse-spark-1.2
Standaard—
VeldmessagesTypemessage[]VereisteVereistWaarden en limietenStandaard—
Veldmessages[].roleTypestringVereisteVereistWaarden en limieten
user, assistant
Standaard—
Veldmessages[].contentTypestringVereisteVereistWaarden en limietenStandaard—
Veldmax_tokensTypeintegerVereisteVereistWaarden en limietenStandaard—
VeldstreamTypebooleanVereisteOptioneelWaarden en limietenStandaardfalse
Combinaties van invoermaterialen

Tekst · UTF-8-tekst

messages[].content als tekenreeks

Methodeparameters en levenscyclus
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractmodel, messages, max_tokens
Parameteroptional_controlsContractstream
Parametermaterial_typesContracttext
Parametertext_file_materialContractLees 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 geselecteerd is
Flex-modus
Standaardtarief Wanneer de flex-modus geselecteerd is
Maximale redeneerinspanning
Standaardtarief Wanneer voor maximale redeneerinspanning de default-aanpassing wordt gebruikt
Redeneerinspanning · hoog
Standaardtarief Wanneer de redeneerinspanning hoog is
Redeneerinspanning · laag
Standaardtarief Wanneer de redeneerinspanning laag is
Redeneerinspanning · gemiddeld
Standaardtarief Wanneer de redeneerinspanning gemiddeld is
Redeneerinspanning · minimaal
Standaardtarief Wanneer de redeneerinspanning minimaal is
Redeneerinspanning · xhigh
Standaardtarief Wanneer de redeneerinspanning xhigh is

Ailoot-tarieven

Prijzen per configuratie

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

ConfiguratieTariefstaffelContexttokens, meer danContexttokens, tot en metKosten
ConfiguratieBasistarieven voor tokensTariefstaffelBasistariefContexttokens, meer dan—Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.0025 / 1K tokens
Uitvoer · Uitvoertokens $0.0085 / 1K tokens
Invoer · Cache lezen $0.0003 / 1K tokens
Invoer · Cache schrijven — / 1K tokens
Invoer · Cache schrijven, 1 uur — / 1K tokens
ConfiguratieAanvraaglengte · niveau 1Tariefstaffel—Contexttokens, meer dan0Contexttokens, tot en metGeen bovengrensKosten
Invoer · Invoertokens $0.0025 / 1K tokens
Uitvoer · Uitvoertokens $0.0085 / 1K tokens
Invoer · Cache lezen $0.0003 / 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

Volledige minimale JSON-bodycurl · gebruik je UTF-8-documentPython · sla het volledige resultaat op
{
  "model": "meta/muse-spark-1.2",
  "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': 'meta/muse-spark-1.2', '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': 'meta/muse-spark-1.2', '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
VeldType
VeldidTypestring
VeldmodelTypestring
Veldcontent[]Typetext|thinking|tool_use|other content block
Veldstop_reasonTypestring|null
VeldusageTypeobject
Fouten en vervolgstappen
AntwoordVoorwaardeVolgende stap
Antwoord400 · invalid_request_errorVoorwaardeVerplichte velden, de materiaalrepresentatie of een parameterwaarde zijn ongeldigVolgende stapCorrigeer de aangegeven velden vóór een nieuwe aanmaakaanvraag.

Aliasnamen

Modelaliasnamen

Ailoot Ultra meta/muse-spark-1.2

Aliasnamen voor methodepaden

Gebruik de hierboven getoonde methodepaden.

Gerelateerde aanroeper-ID’s

meta/muse-spark-1.2

FAQ · Meta: Muse Spark 1.2
Welke invoer en resultaten zijn beschikbaar?

POST /v1/chat/completions · meta/muse-spark-1.2: text → text

POST /v1/messages · meta/muse-spark-1.2: text → json, sse

Welke velden gebruikt het verzoek?

POST /v1/chat/completions · meta/muse-spark-1.2: model, messages, stream, modalities, provider

POST /v1/messages · meta/muse-spark-1.2: model, messages, max_tokens, stream

Welke limieten gelden?

POST /v1/chat/completions · meta/muse-spark-1.2: messages.min_items: 1

Meer details

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 · Bekijk modelprijzen

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 · Aanbodvoorwaarden en licentieovereenkomst