mô hình

Qwen: Qwen3.5-35B-A3B

Markdown · JSON

Qwen: Qwen3.5-35B-A3B

Qwen3.5-35B-A3B là mô hình thị giác-ngôn ngữ hỗn hợp chuyên gia của Qwen, có tổng cộng 35 tỷ tham số và 3 tỷ tham số được kích hoạt. Mô hình nhận văn bản, hình ảnh và video cho suy luận, lập trình và công việc có công cụ hỗ trợ, với chế độ suy nghĩ và trả lời trực tiếp cùng ngữ cảnh gốc 262,144 token.

Về mô hình

Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.

Điểm nổi bật của Qwen3.5: checkpoint thị giác-ngôn ngữ thưa

Qwen3.5-35B-A3B là mô hình thị giác-ngôn ngữ đã qua hậu huấn luyện, kết hợp hiểu văn bản, hình ảnh và video với phản hồi văn bản. Dòng mô hình được huấn luyện bằng hợp nhất văn bản-thị giác từ giai đoạn sớm và học tăng cường trên các nhiệm vụ phức tạp dần, hỗ trợ suy luận, lập trình, tác tử và phân tích thị giác. Dòng mô hình còn mô tả phạm vi 201 ngôn ngữ và phương ngữ. Phạm vi đó là khả năng của dòng mô hình thay vì lời hứa về chất lượng đồng đều cho mọi ngôn ngữ hoặc nhiệm vụ.

Checkpoint mở cụ thể này tách biệt với Qwen3.5-35B-A3B-Base và bản phát hành Qwen3.6 sau đó. Nhà phát triển còn mô tả dịch vụ Flash được quản lý có tính năng bổ sung; không nên tự động gán các tính năng giao diện đó cho checkpoint mở này. Giữ đúng định danh 35B-A3B được yêu cầu khi so sánh kết quả hoặc lưu lựa chọn mô hình có thể tái lập.

Tổng quan mô hình

Mô hình hỗn hợp chuyên gia có tổng cộng 35 tỷ tham số và kích hoạt ba tỷ. Bố cục lai 40 lớp lặp lại ba lớp chuyên gia Gated DeltaNet, tiếp theo là một lớp chuyên gia chú ý có cổng. Mô hình có 256 chuyên gia định tuyến, với tám chuyên gia định tuyến và một chuyên gia dùng chung hoạt động trong bố cục được mô tả. Bộ mã hóa thị giác và dự đoán nhiều token là các thành phần của mô hình. Số tham số được kích hoạt không mô tả kích thước toàn bộ checkpoint, và chỉ kiến trúc không bảo đảm độ trễ trong ứng dụng cụ thể.

Ngữ cảnh gốc là 262,144 token, với khả năng mở rộng có điều kiện lên 1,010,000. Qwen khuyên giữ ngữ cảnh tối thiểu 128K khi có thể cho nhiệm vụ suy nghĩ phức tạp, ngay cả khi cửa sổ nhỏ hơn sẽ giảm áp lực bộ nhớ. Văn bản, biểu diễn tư liệu thị giác, lịch sử, suy luận và câu trả lời cuối cùng đều cần không gian trong chuỗi đã cấu hình.

Sử dụng đầu vào và các chế độ phản hồi

Với yêu cầu lập trình dựa trên ảnh chụp màn hình, cung cấp tham chiếu thị giác, ngữ cảnh mã nguồn hiện có, yêu cầu tương tác và sản phẩm có thể chỉnh sửa mong đợi. Với biểu đồ hoặc tài liệu, giữ nhãn và đơn vị, rồi yêu cầu bảng giá trị kèm bằng chứng hỗ trợ. Với giải thích đa ngôn ngữ, nêu ngôn ngữ đích và thuật ngữ cần giữ.

Chế độ suy nghĩ được bật mặc định, tạo khối suy luận trước phản hồi cuối cùng. Tùy chọn enable_thinking của nhà phát triển có thể tắt chế độ này để trả lời trực tiếp. Qwen3.5 không chính thức hỗ trợ các công tắc prompt mềm /think và /nothink cũ. Hướng dẫn lịch sử của nó giữ câu trả lời cuối cùng không kèm nội dung suy nghĩ. Điều này cần được phân biệt với các tùy chọn lưu giữ của Qwen3.6 sau đó hoặc việc giữ suy luận lịch sử mặc định của Qwen3.8.

Sử dụng tác tử

Nhà phát triển mô tả gọi công cụ và khuyến nghị Qwen-Agent với công cụ được cấu hình hoặc kết nối qua MCP, cùng Qwen Code cho công việc hướng kho mã. Xác định thao tác được phép, bằng chứng liên quan và sản phẩm cuối cùng. Ứng dụng thực thi công cụ và cung cấp các quan sát; mô hình có thể dùng phản hồi đó để điều chỉnh phân tích. Lệnh đã lập kế hoạch hoặc bản vá được sinh không phải hành động đã thực hiện, và riêng tên mô hình không xác lập quyền truy cập thông tin hiện thời hay tệp.

Ngữ cảnh cực dài

Công thức mở rộng của nhà phát triển dùng YaRN với các thiết lập vị trí đan xen của checkpoint. Hệ số bốn hướng đến quy trình khoảng một triệu token; hệ số hai được gợi ý cho nhiệm vụ 524,288 token. Việc co giãn tĩnh có thể làm giảm hiệu năng trên văn bản ngắn hơn, vì vậy nên cấu hình khi cần ngữ cảnh lớn hơn. Tổ chức tư liệu dài với ranh giới tài liệu, định danh mã và câu hỏi rõ ràng, thay vì lấp đầy cửa sổ bằng bằng chứng không liên quan.

Khuyến nghị sinh nội dung

Trong Best Practices, suy nghĩ thông thường dùng temperature 1.0, top_p 0.95, top_k 20, min_p 0, presence penalty 1.5 và repetition penalty 1.0. Lập trình chính xác dùng temperature 0.6 và presence penalty bằng không. Phản hồi trực tiếp thông thường dùng temperature 0.7, top_p 0.8 và presence penalty 1.5; top_k là 20, min_p là 0 và repetition penalty là 1.0. Với suy luận ở chế độ trực tiếp, Best Practices đưa ra temperature 1.0, top_p 1.0, top_k 40 và presence penalty 2.0. Giữ riêng các bộ thiết lập theo nhiệm vụ này; mức phạt hiện diện lớn hơn có thể làm lẫn ngôn ngữ hoặc giảm nhẹ chất lượng.

Hạn mức sinh được khuyến nghị là 32,768 token cho phần lớn câu hỏi và 81,920 cho toán học hoặc lập trình đặc biệt phức tạp. Đây không phải các mức trần đầu ra cứng được xác lập riêng. Nêu rõ dạng câu trả lời cuối cùng và đối chiếu phép tính hoặc mã được sinh với các điều kiện đã cung cấp.

Video và giới hạn thực chất

Ví dụ video được hỗ trợ mặc định dùng hai khung hình mỗi giây. Hướng dẫn video dài hàng giờ của nhà phát triển mở rộng hạn mức bộ xử lý lên khoảng 224K token video để lấy mẫu ở tốc độ cao hơn. Điều đó cần cấu hình và tiêu tốn ngữ cảnh bên cạnh nhiệm vụ cùng câu trả lời; đây không phải bảo đảm vô điều kiện về thời lượng hoặc nhớ lại hoàn hảo các sự kiện. Giữ các chuyển cảnh liên quan và chữ nhỏ, đồng thời yêu cầu kết quả gắn với bằng chứng nhìn thấy. Giá trị thực tế nằm ở phạm vi kết hợp văn bản/thị giác và chế độ phản hồi có thể lựa chọn của checkpoint, cùng sản phẩm cụ thể có thể xem xét.

Tác vụ thực tế

Tác vụ thực tế

Ví dụ kỹ thuật bằng tiếng Anh

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.

Kết quả mong đợi

A rate table and a qualified comparison separating observed proportions from unperformed statistical inference.

Kiểm tra kết quả

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-a3b

Alibaba /qwen/qwen3.5-35b-a3b

Bắt đầu

Qwen3.5-35B-A3B là mô hình thị giác-ngôn ngữ hỗn hợp chuyên gia của Qwen, có tổng cộng 35 tỷ tham số và 3 tỷ tham số được kích hoạt. Mô hình nhận văn bản, hình ảnh và video cho suy luận, lập trình và công việc có công cụ hỗ trợ, với chế độ suy nghĩ và trả lời trực tiếp cùng ngữ cảnh gốc 262,144 token.

Đầu vào được chấp nhận
Văn bản
Kết quả
Văn bản

Có trên Ailoot · đầu vào & phương thức

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Đầu vào
text
Đầu ra
text
Định dạng đầu ra
json hoặc SSE
TrườngLoạiYêu cầuGiá trị & giới hạnMặc định
TrườngmodelLoạistringYêu cầuBắt buộcGiá trị & giới hạn
qwen/qwen3.5-35b-a3b
Mặc định—
TrườngmessagesLoạimessage[]Yêu cầuBắt buộcGiá trị & giới hạn
Số mục tối thiểu: 1
Mặc định—
Trườngmessages[].roleLoạistringYêu cầuBắt buộcGiá trị & giới hạn
Ví dụ: system, user, assistant, tool, function
Điều kiện: Các vai trò này được biểu diễn rõ trong các kiểu tương thích của mã nguồn; tập vai trò chính xác vẫn tùy từng mô hình.
Tùy thuộc vào mô hình
Mặc định—
Trườngmessages[].contentLoạistring|content_part[]|nullYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngmessages[].tool_callsLoạitool_call[]Yêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngmessages[].tool_call_idLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Áp dụng khi: role=tool; dùng ID thực tế được trả về
Mặc định—
Trườngmessages[].nameLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngmessages[].reasoning_contentLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Áp dụng khi: Gửi lại dữ liệu suy luận thực tế đã được trả về khi mô hình này sử dụng dữ liệu đó
Mặc định—
Trườngmessages[].reasoning_detailsLoạiobject|arrayYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngmax_tokensLoạiintegerYêu cầuKhông bắt buộcGiá trị & giới hạn
Tối thiểu: 1
Tùy thuộc vào mô hình
Mặc định—
Trườngmax_completion_tokensLoạiintegerYêu cầuKhông bắt buộcGiá trị & giới hạn
Tối thiểu: 1
Tùy thuộc vào mô hình
Mặc định—
TrườngstreamLoạibooleanYêu cầuKhông bắt buộcGiá trị & giới hạnMặc địnhfalse
Trườngstream_options.include_usageLoạibooleanYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
TrườngtemperatureLoạinumberYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngtop_pLoạinumberYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
TrườngstopLoạistring|string[]Yêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
TrườngtoolsLoạifunction_tool[]Yêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngtools[].typeLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
function
Tùy thuộc vào mô hình
Mặc định—
Trườngtools[].function.nameLoạistringYêu cầuBắt buộcGiá trị & giới hạn
Áp dụng khi: Có cung cấp công cụ hàm
Mặc định—
Trườngtools[].function.descriptionLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngtools[].function.parametersLoạiJSON_schemaYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngtool_choiceLoạistring|objectYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngparallel_tool_callsLoạibooleanYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngresponse_formatLoạiobjectYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngreasoning_effortLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
TrườngreasoningLoạiobjectYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngservice_tierLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
TrườnginstructionsLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Trường tương thích
Mặc định—
TrườngfunctionsLoạifunction[]Yêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngfunction_callLoạistring|objectYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
Trườngprompt_cache_optionsLoạiobjectYêu cầuKhông bắt buộcGiá trị & giới hạn
Tùy thuộc vào mô hình
Mặc định—
TrườngmodalitiesLoạistring[]Yêu cầuKhông bắt buộcGiá trị & giới hạn
text
Mặc định—
TrườngproviderLoạiobjectYêu cầuKhông bắt buộcGiá trị & giới hạn
Điều kiện: provider.options bị từ chối trên tuyến văn bản Ultra này
Mặc định—
Trườngcache_control.ttlLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Điều kiện: 1h bị từ chối tại các vị trí lưu đệm prompt thực tế
Mặc định—
Tổ hợp tư liệu đầu vào

Văn bản · Văn bản UTF8

messages[].content

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốcontent_typeHợp đồngapplication/json
Tham sốrequiredHợp đồngmodel, messages
Tham sốmaterial_typesHợp đồngtext
Tham sốmessagesHợp đồngMảng thông điệp có cấu trúc role/content
Tham sốfile_materialHợp đồngTài liệu UTF-8 thực tế được chèn nguyên dạng văn bản; không suy ra ID tệp
Tham sốoptional_controlsHợp đồngstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Tham sốcontrol_scopeHợp đồngTùy từng mô hình; công cụ hàm của người dùng khác với công cụ do dịch vụ cung cấp
Tham sốoutput_modalitiesHợp đồngtext
Tham sốhosted_operationsHợp đồngfalse
Tham sốmultimodal_input_bindingHợp đồngnull

Vòng đời: synchronous_or_streamed

Gửi ID mô hình chính xác cùng messages.

Độ dài ngữ cảnh không phải giới hạn đầu ra.

Tệp văn bản có thể cung cấp nguyên văn nội dung; đầu vào hình ảnh, âm thanh hoặc đối tượng tệp cần có liên kết chính xác.

Bảng giá

Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.

Chế độ nhanh
Mức giá tiêu chuẩn Khi chọn chế độ nhanh
Chế độ Flex
Mức giá tiêu chuẩn Khi chọn chế độ flex
Mức độ suy luận tối đa
Mức giá tiêu chuẩn Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa

Mức phí Ailoot

Giá theo cấu hình

Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.

Cấu hìnhBiểu mức phíToken ngữ cảnh, lớn hơnToken ngữ cảnh, tối đa và bao gồmPhí
Cấu hìnhGiá cơ sở cho tokenBiểu mức phíMức phí cơ bảnToken ngữ cảnh, lớn hơn—Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trênPhí
Đầu vào · Token đầu vào $0.00046 / 1K token
Đầu ra · Token đầu ra $0.00366 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhBậc 1 theo độ dài yêu cầuBiểu mức phí—Token ngữ cảnh, lớn hơn0Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trênPhí
Đầu vào · Token đầu vào $0.00046 / 1K token
Đầu ra · Token đầu ra $0.00366 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →

Ví dụ yêu cầu

Ailoot Ultra · OpenAI Chat

curlPython SDKLuồng 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": "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")

Nhận và lưu kết quả

Ailoot Ultra · OpenAI Chat

json hoặc SSE

Lưu tất cả kết quả đã hoàn tất

Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.

Giữ mọi phương án trả lời cùng nội dung, lệnh gọi công cụ và dữ liệu suy luận của phương án đó. Với SSE, ghép các phần thay đổi theo chỉ số phương án và công cụ, giữ lý do kết thúc cuối cùng cùng dữ liệu sử dụng.

Nếu cần kiểm tra phản hồi gốc

Giữ ID và header của yêu cầu, phản hồi. Không cung cấp URL chung để truy xuất tác vụ văn bản.

Trường phản hồi
TrườngLoại
Trườngchoices[].indexLoạiinteger
Trườngchoices[].message.contentLoạistring|null
Trườngchoices[].message.tool_callsLoạitool_call[]
Trườngchoices[].message.reasoning_contentLoạistring
Trườngchoices[].message.reasoning_detailsLoạiobject|array
Trườngchoices[].finish_reasonLoạistring|null
TrườngusageLoạiobject
Lỗi và bước tiếp theo
Phản hồiĐiều kiệnBước tiếp theo
Phản hồi400 · invalid_request_errorĐiều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệBước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.

Bí danh

Bí danh mô hình

Ailoot Ultra qwen/qwen3.5-35b-a3b

Bí danh đường dẫn phương thức

Dùng các đường dẫn phương thức hiển thị ở trên.

ID gọi liên quan

qwen/qwen3.5-35b-a3b

Ailoot Ultra · Anthropic Messages POST /v1/messages qwen/qwen3.5-35b-a3b

qwen/qwen3.5-35b-a3b

Alibaba /qwen/qwen3.5-35b-a3b

Bắt đầu

Qwen3.5-35B-A3B là mô hình thị giác-ngôn ngữ hỗn hợp chuyên gia của Qwen, có tổng cộng 35 tỷ tham số và 3 tỷ tham số được kích hoạt. Mô hình nhận văn bản, hình ảnh và video cho suy luận, lập trình và công việc có công cụ hỗ trợ, với chế độ suy nghĩ và trả lời trực tiếp cùng ngữ cảnh gốc 262,144 token.

Đầu vào được chấp nhận
Văn bản
Kết quả
json · sse

Có trên Ailoot · đầu vào & phương thức

Ailoot Ultra · Anthropic Messages POST /v1/messages
Đầu vào
text
Đầu ra
json, sse
Định dạng đầu ra
JSON hoặc SSE
TrườngLoạiYêu cầuGiá trị & giới hạnMặc định
TrườngmodelLoạistringYêu cầuBắt buộcGiá trị & giới hạn
qwen/qwen3.5-35b-a3b
Mặc định—
TrườngmessagesLoạimessage[]Yêu cầuBắt buộcGiá trị & giới hạnMặc định—
Trườngmessages[].roleLoạistringYêu cầuBắt buộcGiá trị & giới hạn
user, assistant
Mặc định—
Trườngmessages[].contentLoạistringYêu cầuBắt buộcGiá trị & giới hạnMặc định—
Trườngmax_tokensLoạiintegerYêu cầuBắt buộcGiá trị & giới hạnMặc định—
TrườngstreamLoạibooleanYêu cầuKhông bắt buộcGiá trị & giới hạnMặc địnhfalse
Tổ hợp tư liệu đầu vào

Văn bản · Văn bản UTF-8

Chuỗi messages[].content

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốcontent_typeHợp đồngapplication/json
Tham sốrequiredHợp đồngmodel, messages, max_tokens
Tham sốoptional_controlsHợp đồngstream
Tham sốmaterial_typesHợp đồngtext
Tham sốtext_file_materialHợp đồngĐọc tài liệu UTF-8 thực tế và đặt nội dung văn bản vào chuỗi đầu vào hoặc nội dung thông điệp được chỉ định.

Vòng đời: synchronous_or_streamed

Bảng giá

Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.

Chế độ nhanh
Mức giá tiêu chuẩn Khi chọn chế độ nhanh
Chế độ Flex
Mức giá tiêu chuẩn Khi chọn chế độ flex
Mức độ suy luận tối đa
Mức giá tiêu chuẩn Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa

Mức phí Ailoot

Giá theo cấu hình

Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.

Cấu hìnhBiểu mức phíToken ngữ cảnh, lớn hơnToken ngữ cảnh, tối đa và bao gồmPhí
Cấu hìnhGiá cơ sở cho tokenBiểu mức phíMức phí cơ bảnToken ngữ cảnh, lớn hơn—Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trênPhí
Đầu vào · Token đầu vào $0.00046 / 1K token
Đầu ra · Token đầu ra $0.00366 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhBậc 1 theo độ dài yêu cầuBiểu mức phí—Token ngữ cảnh, lớn hơn0Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trênPhí
Đầu vào · Token đầu vào $0.00046 / 1K token
Đầu ra · Token đầu ra $0.00366 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm $0 / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token

Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →

Ví dụ yêu cầu

Ailoot Ultra · Anthropic Messages

Nội dung yêu cầu JSON tối thiểu, đầy đủcurl · dùng tài liệu UTF-8 của bạnPython · lưu kết quả đầy đủ
{
  "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))

Nhận và lưu kết quả

Ailoot Ultra · Anthropic Messages

JSON hoặc SSE

Lưu tất cả kết quả đã hoàn tất

Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.

Giữ mọi khối nội dung, chữ ký suy nghĩ và ID sử dụng công cụ thực tế. Ghép tất cả các phần thay đổi của khối SSE; khối văn bản đầu tiên không phải toàn bộ đầu ra.

Nếu cần kiểm tra phản hồi gốc

Giữ ID và header của yêu cầu, phản hồi. Không cung cấp URL chung để truy xuất tác vụ văn bản.

Trường phản hồi
TrườngLoại
TrườngidLoạistring
TrườngmodelLoạistring
Trườngcontent[]Loạitext|thinking|tool_use|other content block
Trườngstop_reasonLoạistring|null
TrườngusageLoạiobject
Lỗi và bước tiếp theo
Phản hồiĐiều kiệnBước tiếp theo
Phản hồi400 · invalid_request_errorĐiều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệBước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.

Bí danh

Bí danh mô hình

Ailoot Ultra qwen/qwen3.5-35b-a3b

Bí danh đường dẫn phương thức

Dùng các đường dẫn phương thức hiển thị ở trên.

ID gọi liên quan

qwen/qwen3.5-35b-a3b

FAQ · Qwen: Qwen3.5-35B-A3B
Có những đầu vào và kết quả nào?

POST /v1/chat/completions · qwen/qwen3.5-35b-a3b: text → text

POST /v1/messages · qwen/qwen3.5-35b-a3b: text → json, sse

Yêu cầu sử dụng những trường nào?

POST /v1/chat/completions · qwen/qwen3.5-35b-a3b: model, messages, stream, modalities, provider

POST /v1/messages · qwen/qwen3.5-35b-a3b: model, messages, max_tokens, stream

Áp dụng những giới hạn nào?

POST /v1/chat/completions · qwen/qwen3.5-35b-a3b: messages.min_items: 1

Xem thêm chi tiết

Kết nối Ailoot với Claude Code, OpenCode, Hermes hoặc ứng dụng của bạn.

Công ty và danh mục dự án của công ty

Công ty và danh mục dự án của công ty: hàng triệu khách hàng; doanh số hàng tỷ mỗi tháng.

Mua token với giá ưu đãi.

Ưu đãi thuê bao cho nhu cầu thường xuyên. Mã khuyến mãi giảm đến 50% khi mua token.

Thuê bao
Chọn gói ưu đãi cho các yêu cầu thường xuyên của bạn.
Mã giảm đến 50%
Nhập mã khi mua. Giá được tính lại theo chương trình đang áp dụng.
Chi phí trong lịch sử
Mô hình, token và số tiền được lưu cho mỗi yêu cầu.

Chọn gói thuê bao · Xem giá mô hình

Kết nối API vào sản phẩm bạn đang bán.

SaaS, ứng dụng và bot — theo đề nghị giao kết chính thức và thỏa thuận cấp phép Ailoot. Muốn bán lại, hãy yêu cầu giấy phép bán lại.

Ứng dụng thương mại
Tích hợp tạo văn bản, ảnh, video và âm thanh vào các tính năng trả phí của dịch vụ.
Giấy phép bán lại
Gửi mô tả dự án và cách cung cấp quyền truy cập. Yêu cầu điều khoản sử dụng và bán lại bằng văn bản.
Tài liệu trên website
Đề nghị giao kết, thỏa thuận cấp phép và chính sách xử lý dữ liệu có sẵn trước khi kết nối.

Yêu cầu giấy phép bán lại · Đề nghị giao kết và thỏa thuận cấp phép