models

Mistral: Mistral Small 3.2 24B

Markdown · JSON

Mistral: Mistral Small 3.2 24B

Mistral Small 3.2 24B Instruct es un modelo de instrucciones con texto e imágenes y un contexto de 128k según su desarrollador. Su actualización 2506 mejora específicamente el seguimiento preciso de instrucciones, reduce repeticiones y refuerza la plantilla de llamadas a funciones, a la vez que conserva las funciones principales de Small 3.1.

Sobre el modelo

Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.

Mistral Small 3.2 24B Instruct 2506 es una actualización enfocada de Mistral Small 3.1 24B Instruct 2503. Su desarrollador identifica tres cambios específicos: seguir instrucciones precisas con mayor fidelidad, reducir respuestas repetitivas o que se prolongan sin control y hacer más robusta la plantilla de llamadas a funciones. El modelo sigue siendo un modelo ajustado para instrucciones con texto e imágenes que genera texto, no una nueva edición de audio o generación de imágenes.

Qué cambia y qué se conserva

La ficha de 3.2 establece explícitamente que sus funciones principales son las mismas de la versión identificada como Small 3.1. Esas funciones incluyen visión, trabajo multilingüe, soporte de prompts de sistema, llamadas nativas a funciones, salida JSON y una ventana de contexto de 128k. La ficha de 3.1 referenciada describe un modelo de 24,000 millones de parámetros y un tokenizador Tekken con un vocabulario etiquetado como 131k. Este vínculo documentado respalda trasladar esas funciones a 3.2 y conservar la actualización 2506 como su propia edición.

El enfoque en seguir instrucciones importa cuando el resultado tiene varios requisitos exactos. Proporciona el material fuente, enumera las reglas que debe satisfacer la salida e indica el artefacto que debe devolver. Una solicitud de extracción documental podría exigir campos específicos, identificadores originales, una representación definida de valores faltantes y ningún texto fuera del registro. Una tarea de escritura podría requerir un público particular y un orden de secciones mientras mantiene sin cambios las condiciones proporcionadas.

El cambio en la repetición aborda el comportamiento de generación, no agrega un nuevo modo de razonamiento. Para una respuesta larga, define las secciones requeridas y el propósito de cada una para que la solicitud tenga un punto claro de finalización. El cambio de plantilla de funciones se refiere a la representación de una conversación con herramientas; usa los ajustes de conversación y tokenizador de la edición correspondiente en lugar de tratar un ejemplo antiguo de formato como intercambiable.

Tareas visuales y multilingües

La función de visión heredada permite acompañar una pregunta de texto con una imagen. Proporciona una página, gráfica o diagrama legibles e identifica el detalle que necesita la tarea. Para comparar gráficas, conserva los ejes, unidades y leyenda y solicita la observación que respalda cada conclusión. Para un campo documental, conserva la etiqueta y el contexto circundante para que el valor devuelto se pueda interpretar correctamente.

La cobertura documentada de idiomas incluye ruso, inglés, francés, alemán, español, italiano, portugués, chino, japonés, coreano, árabe, farsi, hindi, bengalí y otros idiomas enumerados por su desarrollador. Especifica el idioma final y la terminología que deba permanecer sin cambios. Una tarea documental bilingüe puede conservar identificadores y unidades mientras adapta la explicación circundante al lector.

Para una extracción visual práctica, solicita el identificador del documento, la etiqueta del campo, el texto extraído y la parte de la imagen que lo respalda. Una explicación puede aparecer por separado si el lector necesita interpretación. Esto evita que la transcripción, los campos estructurados y la conclusión del modelo se conviertan en un solo resultado indistinguible.

Instrucciones de sistema y herramientas

La ficha de 3.2 recomienda un prompt de sistema adaptado al caso de uso y una temperatura relativamente baja, como 0.15. Define explícitamente el rol del asistente, las reglas de respuesta y el tratamiento del material fuente. Coloca el documento o código real con la tarea del usuario y conserva la distinción entre las instrucciones sobre la respuesta y las instrucciones citadas dentro de la fuente.

Las llamadas a funciones requieren que la aplicación proporcione descripciones de herramientas y argumentos requeridos. El modelo prepara una llamada, la aplicación ejecuta la función y devuelve su resultado, y la siguiente respuesta usa esa información. Los ejemplos publicados incluyen razonamiento visual, llamadas a herramientas e instrucciones solo de texto. Por ello, una tarea de consulta puede pedir al modelo que seleccione una operación descrita, y dejar la consulta real y su resultado a la aplicación que lo integra.

Para una solicitud de programación, proporciona la función relevante, la entrada que revela el problema y el comportamiento que debe resultar. Solicita una corrección propuesta que conserve la interfaz original, seguida de ejemplos que distingan el comportamiento previsto. Para una solicitud matemática, define las variables y suposiciones y pide los pasos justificados importantes y una expresión final independiente. Son aplicaciones de las capacidades heredadas de programación y razonamiento; ejecutar el código propuesto sigue siendo un paso separado.

Límites de contexto y edición

Usa la ventana de 128k para reunir los pasajes fuente, las imágenes, la conversación y la respuesta esperada. Una comparación de documentos extensos puede conservar secciones relacionadas y devolver una matriz breve de hallazgos. Una asignación amplia configurada para imágenes o un valor de generación presente en un ejemplo de servicio no constituyen una capacidad máxima del modelo declarada de forma independiente.

Small 3.2 es una actualización de instrucciones con entrada visual documentada, no Small 3 2501 de solo texto ni la versión de razonamiento híbrido Small 4. La ficha de su desarrollador no proporciona un techo estricto e independiente de tokens de salida para esta entrada. Conserva su identidad exacta 2506 y su formato, y define el registro estructurado, la explicación o la propuesta de código que necesita el siguiente paso.

Tarea práctica

Tarea práctica

Ejemplo técnico en inglés

Extract exactly the requested fields

Read this note: 'Service case C-52. Customer: Dana Lee. Device: Lamp Mini. Reported problem: switches off after ten minutes.' Return exactly four labelled lines, in this order: Case ID, Device, Problem, Purchase date. Use unknown for missing information. Omit the customer's name and all introductory or closing prose.

Resultado esperado

Exactly four labelled lines containing source-derived values or unknown, in the requested order.

Comprobar el resultado

Purchase date is unknown, Dana Lee is omitted, and there are no extra lines.
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions mistralai/mistral-small-3.2-24b-instruct

mistralai/mistral-small-3.2-24b-instruct

Mistral /mistralai/mistral-small-3.2-24b-instruct

Inicio

Mistral Small 3.2 24B Instruct es un modelo de instrucciones con texto e imágenes y un contexto de 128k según su desarrollador. Su actualización 2506 mejora específicamente el seguimiento preciso de instrucciones, reduce repeticiones y refuerza la plantilla de llamadas a funciones, a la vez que conserva las funciones principales de Small 3.1.

Entradas aceptadas
Texto
Resultados
Texto

Disponible en Ailoot · entradas y métodos

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Entrada
text
Salida
text
Formato de salida
json o SSE
CampoTipoRequisitoValores y límitesPredeterminado
CampomodelTipostringRequisitoObligatorioValores y límites
mistralai/mistral-small-3.2-24b-instruct
Predeterminado—
CampomessagesTipomessage[]RequisitoObligatorioValores y límites
Número mínimo de elementos: 1
Predeterminado—
Campomessages[].roleTipostringRequisitoObligatorioValores y límites
Ejemplos: system, user, assistant, tool, function
Condiciones: Estos roles están representados explícitamente por los tipos de compatibilidad del código fuente; el conjunto exacto de roles depende del modelo.
Depende del modelo
Predeterminado—
Campomessages[].contentTipostring|content_part[]|nullRequisitoOpcionalValores y límitesPredeterminado—
Campomessages[].tool_callsTipotool_call[]RequisitoOpcionalValores y límitesPredeterminado—
Campomessages[].tool_call_idTipostringRequisitoOpcionalValores y límites
Se aplica cuando: role=tool; utiliza el ID real devuelto
Predeterminado—
Campomessages[].nameTipostringRequisitoOpcionalValores y límitesPredeterminado—
Campomessages[].reasoning_contentTipostringRequisitoOpcionalValores y límites
Se aplica cuando: Devuelve en los turnos siguientes el razonamiento realmente recibido cuando este modelo lo utilice
Predeterminado—
Campomessages[].reasoning_detailsTipoobject|arrayRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Campomax_tokensTipointegerRequisitoOpcionalValores y límites
Mínimo: 1
Depende del modelo
Predeterminado—
Campomax_completion_tokensTipointegerRequisitoOpcionalValores y límites
Mínimo: 1
Depende del modelo
Predeterminado—
CampostreamTipobooleanRequisitoOpcionalValores y límitesPredeterminadofalse
Campostream_options.include_usageTipobooleanRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
CampotemperatureTiponumberRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Campotop_pTiponumberRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
CampostopTipostring|string[]RequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
CampotoolsTipofunction_tool[]RequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Campotools[].typeTipostringRequisitoOpcionalValores y límites
function
Depende del modelo
Predeterminado—
Campotools[].function.nameTipostringRequisitoObligatorioValores y límites
Se aplica cuando: herramienta de función proporcionada
Predeterminado—
Campotools[].function.descriptionTipostringRequisitoOpcionalValores y límitesPredeterminado—
Campotools[].function.parametersTipoJSON_schemaRequisitoOpcionalValores y límitesPredeterminado—
Campotool_choiceTipostring|objectRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Campoparallel_tool_callsTipobooleanRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Camporesponse_formatTipoobjectRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Camporeasoning_effortTipostringRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
CamporeasoningTipoobjectRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Camposervice_tierTipostringRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
CampoinstructionsTipostringRequisitoOpcionalValores y límites
Campo de compatibilidad
Predeterminado—
CampofunctionsTipofunction[]RequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Campofunction_callTipostring|objectRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
Campoprompt_cache_optionsTipoobjectRequisitoOpcionalValores y límites
Depende del modelo
Predeterminado—
CampomodalitiesTipostring[]RequisitoOpcionalValores y límites
text
Predeterminado—
CampoproviderTipoobjectRequisitoOpcionalValores y límites
Condiciones: provider.options se rechaza en esta ruta de texto Ultra
Predeterminado—
Campocache_control.ttlTipostringRequisitoOpcionalValores y límites
Condiciones: 1h se rechaza en los campos reales de caché de instrucciones
Predeterminado—
Combinaciones de materiales de entrada

Texto · Texto UTF8

messages[].content

Parámetros del método y ciclo de vida
ParámetroContrato
Parámetrocontent_typeContratoapplication/json
ParámetrorequiredContratomodel, messages
Parámetromaterial_typesContratotext
ParámetromessagesContratomatriz de mensajes con estructura role/content
Parámetrofile_materialContratodocumento real en UTF-8 insertado como texto literal; no se deduce ningún ID de archivo
Parámetrooptional_controlsContratostream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parámetrocontrol_scopeContratodepende del modelo; las herramientas de funciones del usuario difieren de las herramientas alojadas
Parámetrooutput_modalitiesContratotext
Parámetrohosted_operationsContratofalse
Parámetromultimodal_input_bindingContratonull

Ciclo de vida: synchronous_or_streamed

Envía el ID exacto del modelo junto con messages.

La longitud del contexto no es un límite máximo de salida.

Un archivo de texto puede aportar texto literal; las entradas de imagen, audio u objetos de archivo requieren una vinculación exacta.

Tarifas

Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.

Modo fast
Tarifa estándar Cuando se selecciona el modo fast
Modo flex
Tarifa estándar Cuando se selecciona el modo flex
Esfuerzo máximo de razonamiento
Tarifa estándar Cuando el esfuerzo máximo de razonamiento usa el ajuste default

Tarifas de Ailoot

Precios por configuración

Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.

ConfiguraciónTabla de tarifasTokens de contexto, más deTokens de contexto, hasta inclusiveCargo
ConfiguraciónTarifas base por tokenTabla de tarifasTarifa baseTokens de contexto, más de—Tokens de contexto, hasta inclusiveSin límite superiorCargo
Entrada · Tokens de entrada $0.0002 / 1K tokens
Salida · Tokens de salida $0.0006 / 1K tokens
Entrada · Lectura de caché $0.00002 / 1K tokens
Entrada · Escritura en caché — / 1K tokens
Entrada · Escritura en caché, 1 hora — / 1K tokens
ConfiguraciónNivel 1 por longitud de la solicitudTabla de tarifas—Tokens de contexto, más de0Tokens de contexto, hasta inclusiveSin límite superiorCargo
Entrada · Tokens de entrada $0.0002 / 1K tokens
Salida · Tokens de salida $0.0006 / 1K tokens
Entrada · Lectura de caché $0.00002 / 1K tokens
Entrada · Escritura en caché — / 1K tokens
Entrada · Escritura en caché, 1 hora — / 1K tokens

Ailoot reserva un monto estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →

Solicitudes de ejemplo

Ailoot Ultra · OpenAI Chat

curlPython SDKFlujo en Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "mistralai/mistral-small-3.2-24b-instruct", "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='mistralai/mistral-small-3.2-24b-instruct',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='mistralai/mistral-small-3.2-24b-instruct',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")

Recibir y guardar resultados

Ailoot Ultra · OpenAI Chat

json o SSE

Conserva todos los resultados completados

Conserva todas las respuestas, archivos y partes de contenido completos recibidos.

Conserva cada alternativa y su contenido, llamadas de herramientas y razonamiento. En SSE, ensambla los fragmentos incrementales por índice de alternativa/herramienta y conserva el motivo final de terminación y el uso.

Si es necesario revisar la respuesta original

Conserva los ID de solicitud y respuesta y los encabezados. No se proporciona una URL genérica para recuperar tareas de texto.

Campos de respuesta
CampoTipo
Campochoices[].indexTipointeger
Campochoices[].message.contentTipostring|null
Campochoices[].message.tool_callsTipotool_call[]
Campochoices[].message.reasoning_contentTipostring
Campochoices[].message.reasoning_detailsTipoobject|array
Campochoices[].finish_reasonTipostring|null
CampousageTipoobject
Errores y siguientes pasos
RespuestaCondiciónSiguiente paso
Respuesta400 · invalid_request_errorCondiciónCampos obligatorios, representación del material o valor del parámetro no válidosSiguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación.

Alias

Alias del modelo

Ailoot Ultra mistralai/mistral-small-3.2-24b-instruct

Alias de rutas de métodos

Usa las rutas de método indicadas arriba.

ID de modelo relacionados

mistralai/mistral-small-3.2-24b-instruct

Ailoot Ultra · Anthropic Messages POST /v1/messages mistralai/mistral-small-3.2-24b-instruct

mistralai/mistral-small-3.2-24b-instruct

Mistral /mistralai/mistral-small-3.2-24b-instruct

Inicio

Mistral Small 3.2 24B Instruct es un modelo de instrucciones con texto e imágenes y un contexto de 128k según su desarrollador. Su actualización 2506 mejora específicamente el seguimiento preciso de instrucciones, reduce repeticiones y refuerza la plantilla de llamadas a funciones, a la vez que conserva las funciones principales de Small 3.1.

Entradas aceptadas
Texto
Resultados
json · sse

Disponible en Ailoot · entradas y métodos

Ailoot Ultra · Anthropic Messages POST /v1/messages
Entrada
text
Salida
json, sse
Formato de salida
JSON o SSE
CampoTipoRequisitoValores y límitesPredeterminado
CampomodelTipostringRequisitoObligatorioValores y límites
mistralai/mistral-small-3.2-24b-instruct
Predeterminado—
CampomessagesTipomessage[]RequisitoObligatorioValores y límitesPredeterminado—
Campomessages[].roleTipostringRequisitoObligatorioValores y límites
user, assistant
Predeterminado—
Campomessages[].contentTipostringRequisitoObligatorioValores y límitesPredeterminado—
Campomax_tokensTipointegerRequisitoObligatorioValores y límitesPredeterminado—
CampostreamTipobooleanRequisitoOpcionalValores y límitesPredeterminadofalse
Combinaciones de materiales de entrada

Texto · Texto UTF-8

cadena messages[].content

Parámetros del método y ciclo de vida
ParámetroContrato
Parámetrocontent_typeContratoapplication/json
ParámetrorequiredContratomodel, messages, max_tokens
Parámetrooptional_controlsContratostream
Parámetromaterial_typesContratotext
Parámetrotext_file_materialContratoLee el documento real en UTF-8 y coloca su texto en el campo input indicado o en la cadena de contenido del mensaje.

Ciclo de vida: synchronous_or_streamed

Tarifas

Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.

Modo fast
Tarifa estándar Cuando se selecciona el modo fast
Modo flex
Tarifa estándar Cuando se selecciona el modo flex
Esfuerzo máximo de razonamiento
Tarifa estándar Cuando el esfuerzo máximo de razonamiento usa el ajuste default

Tarifas de Ailoot

Precios por configuración

Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.

ConfiguraciónTabla de tarifasTokens de contexto, más deTokens de contexto, hasta inclusiveCargo
ConfiguraciónTarifas base por tokenTabla de tarifasTarifa baseTokens de contexto, más de—Tokens de contexto, hasta inclusiveSin límite superiorCargo
Entrada · Tokens de entrada $0.0002 / 1K tokens
Salida · Tokens de salida $0.0006 / 1K tokens
Entrada · Lectura de caché $0.00002 / 1K tokens
Entrada · Escritura en caché — / 1K tokens
Entrada · Escritura en caché, 1 hora — / 1K tokens
ConfiguraciónNivel 1 por longitud de la solicitudTabla de tarifas—Tokens de contexto, más de0Tokens de contexto, hasta inclusiveSin límite superiorCargo
Entrada · Tokens de entrada $0.0002 / 1K tokens
Salida · Tokens de salida $0.0006 / 1K tokens
Entrada · Lectura de caché $0.00002 / 1K tokens
Entrada · Escritura en caché — / 1K tokens
Entrada · Escritura en caché, 1 hora — / 1K tokens

Ailoot reserva un monto estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. Cómo funcionan la reserva y la liquidación →

Solicitudes de ejemplo

Ailoot Ultra · Anthropic Messages

Cuerpo JSON mínimo completocurl · usa tu documento en UTF-8Python · guarda el resultado completo
{
  "model": "mistralai/mistral-small-3.2-24b-instruct",
  "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': 'mistralai/mistral-small-3.2-24b-instruct', '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': 'mistralai/mistral-small-3.2-24b-instruct', '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))

Recibir y guardar resultados

Ailoot Ultra · Anthropic Messages

JSON o SSE

Conserva todos los resultados completados

Conserva todas las respuestas, archivos y partes de contenido completos recibidos.

Conserva todos los bloques de contenido, las firmas de razonamiento y los ID reales de uso de herramientas. Ensambla todos los fragmentos incrementales de los bloques SSE; el primer bloque de texto no constituye la salida completa.

Si es necesario revisar la respuesta original

Conserva los ID de solicitud y respuesta y los encabezados. No se proporciona una URL genérica para recuperar tareas de texto.

Campos de respuesta
CampoTipo
CampoidTipostring
CampomodelTipostring
Campocontent[]Tipotext|thinking|tool_use|other content block
Campostop_reasonTipostring|null
CampousageTipoobject
Errores y siguientes pasos
RespuestaCondiciónSiguiente paso
Respuesta400 · invalid_request_errorCondiciónCampos obligatorios, representación del material o valor del parámetro no válidosSiguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación.

Alias

Alias del modelo

Ailoot Ultra mistralai/mistral-small-3.2-24b-instruct

Alias de rutas de métodos

Usa las rutas de método indicadas arriba.

ID de modelo relacionados

mistralai/mistral-small-3.2-24b-instruct

FAQ · Mistral: Mistral Small 3.2 24B
¿Qué entradas y resultados están disponibles?

POST /v1/chat/completions · mistralai/mistral-small-3.2-24b-instruct: text → text

POST /v1/messages · mistralai/mistral-small-3.2-24b-instruct: text → json, sse

¿Qué campos utiliza la solicitud?

POST /v1/chat/completions · mistralai/mistral-small-3.2-24b-instruct: model, messages, stream, modalities, provider

POST /v1/messages · mistralai/mistral-small-3.2-24b-instruct: model, messages, max_tokens, stream

¿Qué límites se aplican?

POST /v1/chat/completions · mistralai/mistral-small-3.2-24b-instruct: messages.min_items: 1

Más detalles

Conecta Ailoot a Claude Code, OpenCode, Hermes o tu aplicación.

La empresa y su cartera de proyectos

La empresa y su cartera de proyectos: millones de clientes; ventas por miles de millones al mes.

Compra tokens con descuento.

Ahorro por suscripción para trabajo habitual. Códigos promocionales: hasta el 50% al comprar tokens.

Suscripción
Elige un plan con descuento para tus peticiones habituales.
Código de hasta el 50%
Introduce el código al comprar. El precio se recalcula según la promoción vigente.
Gasto en el historial
Modelo, tokens e importe quedan guardados por cada petición.

Elegir suscripción · Consultar precios de modelos

Conecta la API al producto que vendes.

SaaS, aplicaciones y bots bajo la oferta y el acuerdo de licencia Ailoot. Solicita una licencia de reventa para redistribuir el acceso.

Aplicación comercial
Integra generación de texto, imágenes, vídeo y sonido en funciones de pago de tu servicio.
Licencia para revendedores
Envía descripción del proyecto y esquema de acceso. Solicita condiciones escritas de uso y reventa.
Documentos en la web
La oferta, el acuerdo de licencia y la política de datos están disponibles antes de conectar.

Solicitar licencia de reventa · Oferta y acuerdo de licencia