Qwen: Qwen3.5-35B-A3B
Qwen3.5-35B-A3B es el modelo de visión y lenguaje con mezcla de expertos de Qwen, con 35 mil millones de parámetros totales y 3 mil millones activados. Acepta texto, imágenes y vídeo para razonamiento, programación y trabajo asistido por herramientas, con modos de pensamiento y respuesta directa y un contexto nativo de 262,144 tokens.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsqwen/qwen3.5-35b-a3b - Ailoot Ultra · Anthropic Messages
POST /v1/messagesqwen/qwen3.5-35b-a3b
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.
Aspectos destacados de Qwen3.5: un punto de control disperso de visión y lenguaje
Qwen3.5-35B-A3B es un modelo de visión y lenguaje con posentrenamiento que combina comprensión de texto, imágenes y vídeo con respuestas textuales. La familia se entrena con fusión temprana de texto y visión y aprendizaje por refuerzo en tareas progresivamente complejas, y admite razonamiento, programación, agentes y análisis visual. También describe cobertura de 201 idiomas y dialectos. Esa cobertura es una capacidad de la familia, en lugar de una promesa de igual calidad para todos los idiomas o tareas.
El punto de control abierto exacto es independiente de Qwen3.5-35B-A3B-Base y de la versión posterior Qwen3.6. El desarrollador también describe una oferta Flash gestionada con funciones adicionales; esas funciones de interfaz no deben atribuirse automáticamente a este punto de control abierto. Conserva la identidad 35B-A3B solicitada al comparar resultados o mantener una selección reproducible del modelo.
Descripción general del modelo
El modelo de mezcla de expertos tiene 35 mil millones de parámetros en total y activa tres mil millones. Su disposición híbrida de 40 capas repite tres capas de expertos Gated DeltaNet seguidas de una capa de expertos de atención con compuertas. Tiene 256 expertos enrutados, con ocho expertos enrutados y un experto compartido activos en la disposición documentada. Un codificador visual y la predicción de múltiples tokens forman parte del modelo. El recuento activado no describe el tamaño del punto de control completo, y la arquitectura por sí sola no garantiza la latencia en una aplicación concreta.
El contexto nativo es de 262,144 tokens, con ampliación condicional a 1,010,000. Qwen aconseja conservar al menos un contexto de 128K cuando sea posible para tareas de pensamiento complejas, aunque una ventana menor reduzca la presión de memoria. El texto, el material visual representado, el historial, el razonamiento y la respuesta final necesitan espacio en la secuencia configurada.
Uso de entradas y modos de respuesta
Para una solicitud de programación basada en una captura, proporciona la referencia visual, el contexto de código existente, los requisitos de interacción y el artefacto editable esperado. Para un gráfico o documento, conserva las etiquetas y las unidades y pide una tabla de valores con pruebas de apoyo. Para una explicación multilingüe, indica el idioma objetivo y los términos que se deben conservar.
El pensamiento está habilitado de forma predeterminada y produce un bloque de razonamiento antes de la respuesta final. El control enable_thinking del desarrollador puede desactivarlo para una respuesta directa. Qwen3.5 no admite oficialmente los antiguos conmutadores textuales /think y /nothink. Su orientación de historial conserva las respuestas finales sin contenido de pensamiento. Esto debe mantenerse diferenciado de las opciones de conservación posteriores de Qwen3.6 o de la conservación predeterminada del razonamiento histórico de Qwen3.8.
Uso como agente
El desarrollador documenta llamadas a herramientas y recomienda Qwen-Agent con herramientas configuradas o conectadas mediante MCP, junto con Qwen Code para trabajo orientado a repositorios. Define las operaciones permitidas, las pruebas pertinentes y el entregable final. La aplicación ejecuta herramientas y proporciona sus observaciones; el modelo puede utilizar esa retroalimentación para revisar su análisis. Un comando planificado o un parche generado no es una acción ejecutada, y el nombre del modelo por sí solo no establece acceso a información actual o archivos.
Contexto ultralargo
La receta de ampliación del desarrollador utiliza YaRN con los ajustes posicionales intercalados del punto de control. Un factor de cuatro se dirige al flujo de aproximadamente un millón de tokens; se sugiere un factor de dos para tareas de 524,288 tokens. El escalado estático puede reducir el rendimiento con textos más cortos, por lo que debe configurarse cuando se necesite el contexto mayor. Organiza el material largo con límites entre documentos, identificadores de código y una pregunta clara, en lugar de llenar la ventana con pruebas no relacionadas.
Recomendaciones de generación
En las buenas prácticas, el pensamiento general utiliza temperatura 1.0, top_p 0.95, top_k 20, min_p 0, penalización de presencia 1.5 y penalización de repetición 1.0. La programación precisa utiliza temperatura 0.6 y penalización de presencia cero. Las respuestas directas generales utilizan temperatura 0.7, top_p 0.8 y penalización de presencia 1.5; top_k es 20, min_p es 0 y la penalización de repetición es 1.0. Para razonamiento en modo directo, las buenas prácticas indican temperatura 1.0, top_p 1.0, top_k 40 y penalización de presencia 2.0. Mantén diferenciados estos preajustes específicos de tarea; las penalizaciones de presencia mayores pueden provocar mezcla de idiomas o una ligera reducción de calidad.
Las capacidades de generación recomendadas son de 32,768 tokens para la mayoría de las preguntas y de 81,920 para matemáticas o programación excepcionalmente complejas. No son límites estrictos de salida establecidos por separado. Define expresamente la forma de la respuesta final y comprueba los cálculos o el código generado frente a las condiciones proporcionadas.
Vídeo y límites sustanciales
El ejemplo de vídeo compatible utiliza de forma predeterminada dos fotogramas por segundo. La orientación del desarrollador para vídeos de una duración del orden de horas amplía el presupuesto del procesador a unos 224K tokens de vídeo para muestreo de mayor frecuencia. Esto requiere configuración y consume contexto junto con la tarea y la respuesta; no es una garantía incondicional de duración o recuerdo perfecto de eventos. Conserva las transiciones pertinentes de escena y la escritura pequeña, y pide un resultado vinculado a las pruebas visibles. El valor práctico es el ámbito conjunto de texto y visión del punto de control y su modo de respuesta seleccionable, con un artefacto concreto que se pueda revisar.
Tarea práctica
Tarea práctica
Ejemplo técnico en inglés
Audit a transcribed experiment table
Use this transcribed experiment table: baseline, 100 trials, 12 failures; revision A, 80 trials, 8 failures; revision B, 40 trials, 2 failures. Calculate the observed failure rates and compare them. Explain what these counts establish and what would require additional statistical analysis; do not claim that the smallest observed rate proves the best underlying system.Resultado esperado
A rate table and a qualified comparison separating observed proportions from unperformed statistical inference.Comprobar el resultado
Each rate uses its own trial count, and the conclusion does not treat unequal sample sizes as equivalent proof.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions qwen/qwen3.5-35b-a3b
qwen/qwen3.5-35b-a3bPrimeros pasos
Qwen3.5-35B-A3B es el modelo de visión y lenguaje con mezcla de expertos de Qwen, con 35 mil millones de parámetros totales y 3 mil millones activados. Acepta texto, imágenes y vídeo para razonamiento, programación y trabajo asistido por herramientas, con modos de pensamiento y respuesta directa y un contexto nativo de 262,144 tokens.
- Entradas aceptadas
- Texto
- Resultados
- Texto
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
- Tipos de entrada
text- Tipos de salida
text- Formato de salida
- json o SSE
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites qwen/qwen3.5-35b-a3b | Predeterminado— |
Campomessages | Tipomessage[] | RequisitoObligatorio | Valores y límites Número mínimo de elementos: 1 | Predeterminado— |
Campomessages[].role | Tipostring | RequisitoObligatorio | Valores 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[].content | Tipostring|content_part[]|null | RequisitoOpcional | Valores y límites | Predeterminado— |
Campomessages[].tool_calls | Tipotool_call[] | RequisitoOpcional | Valores y límites | Predeterminado— |
Campomessages[].tool_call_id | Tipostring | RequisitoOpcional | Valores y límites Se aplica cuando: role=tool; utiliza el ID real devuelto | Predeterminado— |
Campomessages[].name | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
Campomessages[].reasoning_content | Tipostring | RequisitoOpcional | Valores y límites Se aplica cuando: Devuelve en los turnos siguientes el razonamiento realmente recibido cuando este modelo lo utilice | Predeterminado— |
Campomessages[].reasoning_details | Tipoobject|array | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campomax_tokens | Tipointeger | RequisitoOpcional | Valores y límites Mínimo: 1 Depende del modelo | Predeterminado— |
Campomax_completion_tokens | Tipointeger | RequisitoOpcional | Valores y límites Mínimo: 1 Depende del modelo | Predeterminado— |
Campostream | Tipoboolean | RequisitoOpcional | Valores y límites | Predeterminadofalse |
Campostream_options.include_usage | Tipoboolean | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campotemperature | Tiponumber | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campotop_p | Tiponumber | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campostop | Tipostring|string[] | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campotools | Tipofunction_tool[] | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campotools[].type | Tipostring | RequisitoOpcional | Valores y límites function Depende del modelo | Predeterminado— |
Campotools[].function.name | Tipostring | RequisitoObligatorio | Valores y límites Se aplica cuando: herramienta de función proporcionada | Predeterminado— |
Campotools[].function.description | Tipostring | RequisitoOpcional | Valores y límites | Predeterminado— |
Campotools[].function.parameters | TipoJSON_schema | RequisitoOpcional | Valores y límites | Predeterminado— |
Campotool_choice | Tipostring|object | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campoparallel_tool_calls | Tipoboolean | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Camporesponse_format | Tipoobject | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Camporeasoning_effort | Tipostring | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Camporeasoning | Tipoobject | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Camposervice_tier | Tipostring | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campoinstructions | Tipostring | RequisitoOpcional | Valores y límites Campo de compatibilidad | Predeterminado— |
Campofunctions | Tipofunction[] | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campofunction_call | Tipostring|object | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campoprompt_cache_options | Tipoobject | RequisitoOpcional | Valores y límites Depende del modelo | Predeterminado— |
Campomodalities | Tipostring[] | RequisitoOpcional | Valores y límites text | Predeterminado— |
Campoprovider | Tipoobject | RequisitoOpcional | Valores y límites Condiciones: provider.options se rechaza en esta ruta de texto Ultra | Predeterminado— |
Campocache_control.ttl | Tipostring | RequisitoOpcional | Valores 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ámetro | Contrato |
|---|---|
Parámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, messages |
Parámetromaterial_types | Contratotext |
Parámetromessages | Contratomatriz de mensajes con estructura role/content |
Parámetrofile_material | Contratodocumento real en UTF-8 insertado como texto literal; no se deduce ningún ID de archivo |
Parámetrooptional_controls | Contratostream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Parámetrocontrol_scope | Contratodepende del modelo; las herramientas de funciones del usuario difieren de las herramientas alojadas |
Parámetrooutput_modalities | Contratotext |
Parámetrohosted_operations | Contratofalse |
Parámetromultimodal_input_binding | Contratonull |
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.
Planes
Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.
- Modo rápido
- Tarifa estándar Cuando se selecciona el modo rápido
- 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 utiliza el ajuste predeterminado (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ón | Tabla de tarifas | Tokens de contexto, más de | Tokens de contexto, hasta inclusive | Cargo |
|---|---|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Tokens de contexto, más de— | Tokens de contexto, hasta inclusiveSin límite superior | Cargo Entrada · Tokens de entrada $0.00046 / 1K tokens Salida · Tokens de salida $0.00366 / 1K tokens Entrada · Lectura de caché $0 / 1K tokens Entrada · Escritura en caché $0 / 1K tokens Entrada · Escritura en caché, 1 hora — / 1K tokens |
| ConfiguraciónTramo 1 por longitud de la solicitud | Tabla de tarifas— | Tokens de contexto, más de0 | Tokens de contexto, hasta inclusiveSin límite superior | Cargo Entrada · Tokens de entrada $0.00046 / 1K tokens Salida · Tokens de salida $0.00366 / 1K tokens Entrada · Lectura de caché $0 / 1K tokens Entrada · Escritura en caché $0 / 1K tokens Entrada · Escritura en caché, 1 hora — / 1K tokens |
Ailoot reserva un importe 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
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "qwen/qwen3.5-35b-a3b", "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='qwen/qwen3.5-35b-a3b',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='qwen/qwen3.5-35b-a3b',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 las cabeceras. No se proporciona una URL genérica para recuperar tareas de texto.
Campos de respuesta
| Campo | Tipo |
|---|---|
Campochoices[].index | Tipointeger |
Campochoices[].message.content | Tipostring|null |
Campochoices[].message.tool_calls | Tipotool_call[] |
Campochoices[].message.reasoning_content | Tipostring |
Campochoices[].message.reasoning_details | Tipoobject|array |
Campochoices[].finish_reason | Tipostring|null |
Campousage | Tipoobject |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta400 · invalid_request_error | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |
Alias
Alias del modelo
Ailoot Ultra qwen/qwen3.5-35b-a3b
Alias de rutas de métodos
Usa las rutas de método indicadas arriba.
ID de modelo relacionados
Ailoot Ultra · Anthropic Messages POST /v1/messages qwen/qwen3.5-35b-a3b
qwen/qwen3.5-35b-a3bPrimeros pasos
Qwen3.5-35B-A3B es el modelo de visión y lenguaje con mezcla de expertos de Qwen, con 35 mil millones de parámetros totales y 3 mil millones activados. Acepta texto, imágenes y vídeo para razonamiento, programación y trabajo asistido por herramientas, con modos de pensamiento y respuesta directa y un contexto nativo de 262,144 tokens.
- Entradas aceptadas
- Texto
- Resultados
- json · sse
Disponible en Ailoot · entradas y métodos
Ailoot Ultra · Anthropic Messages POST /v1/messages
- Tipos de entrada
text- Tipos de salida
json,sse- Formato de salida
- JSON o SSE
| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
|---|---|---|---|---|
Campomodel | Tipostring | RequisitoObligatorio | Valores y límites qwen/qwen3.5-35b-a3b | Predeterminado— |
Campomessages | Tipomessage[] | RequisitoObligatorio | Valores y límites | Predeterminado— |
Campomessages[].role | Tipostring | RequisitoObligatorio | Valores y límites user, assistant | Predeterminado— |
Campomessages[].content | Tipostring | RequisitoObligatorio | Valores y límites | Predeterminado— |
Campomax_tokens | Tipointeger | RequisitoObligatorio | Valores y límites | Predeterminado— |
Campostream | Tipoboolean | RequisitoOpcional | Valores y límites | Predeterminadofalse |
Combinaciones de materiales de entrada
Texto · Texto UTF-8
cadena messages[].content
Parámetros del método y ciclo de vida
| Parámetro | Contrato |
|---|---|
Parámetrocontent_type | Contratoapplication/json |
Parámetrorequired | Contratomodel, messages, max_tokens |
Parámetrooptional_controls | Contratostream |
Parámetromaterial_types | Contratotext |
Parámetrotext_file_material | ContratoLee 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
Planes
Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.
- Modo rápido
- Tarifa estándar Cuando se selecciona el modo rápido
- 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 utiliza el ajuste predeterminado (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ón | Tabla de tarifas | Tokens de contexto, más de | Tokens de contexto, hasta inclusive | Cargo |
|---|---|---|---|---|
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Tokens de contexto, más de— | Tokens de contexto, hasta inclusiveSin límite superior | Cargo Entrada · Tokens de entrada $0.00046 / 1K tokens Salida · Tokens de salida $0.00366 / 1K tokens Entrada · Lectura de caché $0 / 1K tokens Entrada · Escritura en caché $0 / 1K tokens Entrada · Escritura en caché, 1 hora — / 1K tokens |
| ConfiguraciónTramo 1 por longitud de la solicitud | Tabla de tarifas— | Tokens de contexto, más de0 | Tokens de contexto, hasta inclusiveSin límite superior | Cargo Entrada · Tokens de entrada $0.00046 / 1K tokens Salida · Tokens de salida $0.00366 / 1K tokens Entrada · Lectura de caché $0 / 1K tokens Entrada · Escritura en caché $0 / 1K tokens Entrada · Escritura en caché, 1 hora — / 1K tokens |
Ailoot reserva un importe 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
{
"model": "qwen/qwen3.5-35b-a3b",
"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': 'qwen/qwen3.5-35b-a3b', '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': 'qwen/qwen3.5-35b-a3b', '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 las cabeceras. No se proporciona una URL genérica para recuperar tareas de texto.
Campos de respuesta
| Campo | Tipo |
|---|---|
Campoid | Tipostring |
Campomodel | Tipostring |
Campocontent[] | Tipotext|thinking|tool_use|other content block |
Campostop_reason | Tipostring|null |
Campousage | Tipoobject |
Errores y siguientes pasos
| Respuesta | Condición | Siguiente paso |
|---|---|---|
Respuesta400 · invalid_request_error | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |
Alias
Alias del modelo
Ailoot Ultra qwen/qwen3.5-35b-a3b
Alias de rutas de métodos
Usa las rutas de método indicadas arriba.
ID de modelo relacionados
FAQ · Qwen: Qwen3.5-35B-A3B
- ¿Qué entradas y resultados están disponibles?
POST /v1/chat/completions·qwen/qwen3.5-35b-a3b:text→textPOST /v1/messages·qwen/qwen3.5-35b-a3b:text→json,sse- ¿Qué campos utiliza la solicitud?
POST /v1/chat/completions·qwen/qwen3.5-35b-a3b:model,messages,stream,modalities,providerPOST /v1/messages·qwen/qwen3.5-35b-a3b:model,messages,max_tokens,stream- ¿Qué límites se aplican?
POST /v1/chat/completions·qwen/qwen3.5-35b-a3b:messages.min_items:1