MiniMax: MiniMax M2-her
MiniMax M2-her is een model met uitsluitend tekst voor personagerollenspel, verhaalgedreven dialoog en gesprekken met meerdere beurten. De eigen rol- en voorbeeldberichtformaten vormen beide kanten van de interactie, met 64K producentcontext en een maximale uitvoer van 2.048 tokens.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsminimax/minimax-m2-her - Ailoot Ultra · Anthropic Messages
POST /v1/messagesminimax/minimax-m2-her
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.
MiniMax M2-her is het op dialoog gerichte tekstmodel van MiniMax voor rollenspel, personagegesprekken en verhaalgedreven interactie. Het is een afzonderlijk profiel naast het algemene, op programmeren en agents gerichte MiniMax M2-model. De fabrikant ontwikkelt het rond samenhangende fictieve werelden, actieve verhaalvoortgang en afstemming op de gespreksvoorkeuren van de gebruiker. Invoer en uitvoer zijn tekst; de specifieke handleiding ondersteunt geen gemengde tekst-beeldinvoer.
Definieer de wereld en beide rollen
Het gespreksformaat van de producent bevat meer dan de gebruikelijke system-, user- en assistant-berichten. De rol system bepaalt de identiteit, persoonlijkheid en het gedrag van het model. De rol user_system bepaalt het personage of de persona van de gebruiker, terwijl group het scenario of de gespreksgroep identificeert. Houd die verschillen duidelijk als het verhaal meerdere mensen, verschillende kennis of een specifieke relatie omvat.
Geef het model de setting, de motieven van het personage en de feiten die waar moeten blijven. Beschrijf wie de handelingen van de gebruiker bepaalt en welke keuzes open moeten blijven voor een antwoord. Een voorbeeldbriefing voor een scène is: “Ga verder als de archivaris, behoud het bestaande mysterie en bied één nieuwe aanwijzing zonder te bepalen hoe mijn personage reageert.” Dit bereidt een responsieve uitwisseling voor, in plaats van het model beide kanten van de interactie te laten schrijven.
Voorbeelden en stijl
M2-her ondersteunt berichten met sample_message_user en sample_message_ai om het gewenste dialoogpatroon te demonstreren. De maker beveelt één tot drie beknopte voorbeelden aan. Gebruik ze om stem, tempo en de verhouding tussen vertelling en dialoog vast te leggen; vermijd een lang voorbeeld dat context verbruikt zonder de stijl te verduidelijken. De voorbeelden tellen net als andere berichten mee voor het invoerbudget.
De ontwikkelrichting van MiniMax benadrukt personage-identiteit, wereldregels, gevarieerde plotbeweging en keuzevrijheid van de gebruiker. Geef het beoogde tempo aan wanneer dat relevant is, zoals een rustige uitwisseling, een geleidelijke onthulling of een nieuwe complicatie. Benoem voor een herziening de exacte regel of gebeurtenis die met het personage of de chronologie breekt en vraag om een correctie die de rest van de scène behoudt.
Behoud de gesprekscontext
De gedocumenteerde workflow bevat voor dialoog met meerdere beurten de volledige gebruikers- en assistentgeschiedenis in chronologische volgorde. Die geschiedenis geeft het volgende antwoord onderbouwing over eerdere gebeurtenissen en vastgelegde relaties. Houd essentiële namen en recente ontwikkelingen expliciet wanneer u een doorlopend verhaal voorbereidt. De contextgeschiedenis wordt aan het model meegegeven en moet niet worden verward met onbeperkt geheugen buiten het gesprek.
Het rollenspelonderzoek van de maker gebruikt dialoogsynthese en online leren van voorkeuren om diversiteit, continuïteit en responsiviteit te verbeteren. Die trainingsmethoden beschrijven het producentmodel en garanderen niet dat elk afzonderlijk verhaal foutloos blijft. Controleer of een antwoord dialoog aan het juiste personage toeschrijft en de fysieke of fictieve regels van de setting respecteert.
Limieten en de resulterende passage
De specifieke M2-her-handleiding noemt 64K context en een maximale uitvoer van 2.048 tokens. Ze documenteert ook gestreamde uitvoer en standaardwaarden voor sampling van temperature 1.0 en top-p 0.95. Kies een antwoordlengte die bij een gespreksbeurt past; een te lange passage kan de volgende beslissing van de gebruiker verdringen of door het voltooiingsbudget worden afgebroken.
Het bruikbare resultaat is een personageantwoord, verhalende passage of voortgezette scène die bij de aangeleverde setting past en tot de volgende interactie uitnodigt. Controleer perspectief, keuzevrijheid van personages, consistente verwijzingen en het gevraagde einde. Het benoemde rollenspelformaat en de limieten van M2-her blijven gescheiden van andere taal-, visie- en mediamodellen van MiniMax.
Praktische taak
Praktische taak
Technisch voorbeeld in het Engels
A clue within a consistent fictional world
Continue as caretaker Sol for two or three short replies. In this world, the lighthouse lamp can glow only when its bell is silent. I play a visitor who asks why the dark lamp still feels warm. Offer one clue while preserving the world rule, and end before deciding my character's response or movement.Verwacht resultaat
Two or three character replies with a clue, a consistent lamp/bell relationship and room for the player to act.Resultaat controleren
The passage never has the lamp glowing while the bell rings and does not control the visitor.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions minimax/minimax-m2-her
minimax/minimax-m2-herAan de slag
MiniMax M2-her is een model met uitsluitend tekst voor personagerollenspel, verhaalgedreven dialoog en gesprekken met meerdere beurten. De eigen rol- en voorbeeldberichtformaten vormen beide kanten van de interactie, met 64K producentcontext en een maximale uitvoer van 2.048 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 |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten minimax/minimax-m2-her | 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.0006 / 1K tokens Uitvoer · Uitvoertokens $0.0024 / 1K tokens Invoer · Cache lezen $0.00006 / 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.0006 / 1K tokens Uitvoer · Uitvoertokens $0.0024 / 1K tokens Invoer · Cache lezen $0.00006 / 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": "minimax/minimax-m2-her", "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='minimax/minimax-m2-her',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='minimax/minimax-m2-her',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 minimax/minimax-m2-her
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
Ailoot Ultra · Anthropic Messages POST /v1/messages minimax/minimax-m2-her
minimax/minimax-m2-herAan de slag
MiniMax M2-her is een model met uitsluitend tekst voor personagerollenspel, verhaalgedreven dialoog en gesprekken met meerdere beurten. De eigen rol- en voorbeeldberichtformaten vormen beide kanten van de interactie, met 64K producentcontext en een maximale uitvoer van 2.048 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 |
|---|---|---|---|---|
Veldmodel | Typestring | VereisteVereist | Waarden en limieten minimax/minimax-m2-her | 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.0006 / 1K tokens Uitvoer · Uitvoertokens $0.0024 / 1K tokens Invoer · Cache lezen $0.00006 / 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.0006 / 1K tokens Uitvoer · Uitvoertokens $0.0024 / 1K tokens Invoer · Cache lezen $0.00006 / 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": "minimax/minimax-m2-her",
"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': 'minimax/minimax-m2-her', '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': 'minimax/minimax-m2-her', '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 minimax/minimax-m2-her
Aliasnamen voor methodepaden
Gebruik de hierboven getoonde methodepaden.
Gerelateerde aanroeper-ID’s
FAQ · MiniMax: MiniMax M2-her
- Welke invoer en resultaten zijn beschikbaar?
POST /v1/chat/completions·minimax/minimax-m2-her:text→textPOST /v1/messages·minimax/minimax-m2-her:text→json,sse- Welke velden gebruikt het verzoek?
POST /v1/chat/completions·minimax/minimax-m2-her:model,messages,stream,modalities,providerPOST /v1/messages·minimax/minimax-m2-her:model,messages,max_tokens,stream- Welke limieten gelden?
POST /v1/chat/completions·minimax/minimax-m2-her:messages.min_items:1