mô hình

DeepSeek: DeepSeek V4 Flash 0731

Markdown · JSON

DeepSeek: DeepSeek V4 Flash 0731

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

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.

DeepSeek V4 Flash 0731 là bản phát hành chính thức của nhánh Flash, thay thế phiên bản xem trước. Trọng tâm thực tế gồm lập trình và công việc tác nhân: diễn giải kho mã được cung cấp, đề xuất thay đổi, sử dụng quan sát từ công cụ và trả về sản phẩm để bên gọi kiểm tra. Gắn phiên bản 0731 với kết quả đã lưu khi so sánh với Flash Preview, Pro 0813 hoặc V4.1 Flash.

Bắt đầu từ tài liệu và sản phẩm cần có

Cung cấp tác vụ thực tế, các tệp hoặc đoạn tài liệu liên quan, ràng buộc và kết quả mong đợi. Với thay đổi kho mã, đưa vào đoạn mã chịu ảnh hưởng, hành vi quan sát được và lệnh hoặc yêu cầu tái hiện vấn đề. Xác định sản phẩm cần giao là lời giải thích, bản patch đề xuất, danh sách phát hiện hay kế hoạch có cấu trúc.

Một yêu cầu gỡ lỗi hữu ích là: “Sử dụng trình xử lý tuyến, lược đồ xác thực và yêu cầu thất bại được cung cấp. Giải thích đầu vào lệch khỏi lược đồ ở đâu, đề xuất thay đổi nhỏ nhất và chỉ ra phép kiểm tra hiện có có thể phân biệt kết quả đã được sửa.” Với tác vụ tài liệu, nêu các phần được cung cấp và yêu cầu bảng yêu cầu, bằng chứng cùng câu hỏi chưa giải quyết. Đây là các ví dụ về cách giao việc; hãy kèm tài liệu nguồn thật trong yêu cầu.

Chọn trò chuyện trực tiếp hoặc thinking

Định dạng của nhà sản xuất hỗ trợ trò chuyện trực tiếp và thinking. Trò chuyện trực tiếp trả ngay nội dung phản hồi. Thinking tách trường suy luận của mô hình khỏi câu trả lời cuối cùng. Trong chế độ thinking, các mức nỗ lực được tài liệu mô tả là low, high và max, mặc định low. Phiên bản này dùng những mức có tên đó thay cho thang nỗ lực bằng số nguyên của V4.1 Flash.

Chọn chế độ theo công việc. Một thay đổi câu chữ ngắn có thể nêu dữ kiện cần giữ và giọng văn thay thế. Một tác vụ kho mã phức tạp có thể xác định bước điều tra, bằng chứng liên quan và báo cáo cuối gọn. Dù dùng mức thinking cao hơn, vẫn nêu rõ sản phẩm cuối mong muốn: chẳng hạn một diff đề xuất, lời giải thích ngắn và các lệnh để kiểm tra.

Kết nối công cụ qua quy trình ứng dụng

Định dạng gốc hỗ trợ tin nhắn nhiều lượt và định nghĩa công cụ có tham số mang tên, kèm lược đồ. Mô hình có thể trả về lời gọi công cụ được yêu cầu; ứng dụng thực thi thao tác và cung cấp quan sát thu được ở lượt sau. Gắn kết quả công cụ với đúng lời gọi và giữ nguyên thứ tự khi trả nhiều quan sát.

Với quy trình kiểm tra tệp, cung cấp thao tác đọc tệp thực tế, mô tả đường dẫn đầu vào và trả về nội dung quan sát được. Yêu cầu mô hình dựa đề xuất tiếp theo trên nội dung đó. Với quy trình dữ liệu, cung cấp thao tác truy vấn và trả về bản ghi thực tế; yêu cầu phép tính hoặc bản tóm tắt trên những bản ghi đó. Lời gọi được trả về và thao tác đã thực thi là hai bước riêng trên đường đạt kết quả yêu cầu.

Bộ mã hóa của nhà sản xuất giữ ngữ cảnh suy luận qua các cuộc hội thoại dùng công cụ. Trong trò chuyện thông thường, bộ mã hóa thường bỏ suy luận ở các lượt trước tin nhắn người dùng gần nhất. Dùng các trường tin nhắn và cách xử lý hội thoại được tài liệu quy định khi duy trì quy trình nhiều bước. Trình phân tích cú pháp tham chiếu cần đầu ra đúng cấu trúc, vì vậy kiểm tra tên và tham số của lời gọi đã phân tích trước khi thực thi, đồng thời giữ lại kết quả không hợp lệ để xem xét.

Lập ngân sách cho hội thoại và câu trả lời

Cấu hình mô hình theo ngày quy định 1,048,576 vị trí chuỗi. Tính cả tài liệu được cung cấp, lịch sử hội thoại, định nghĩa công cụ, quan sát trả về và phản hồi được tạo khi chuẩn bị một chuỗi. Đưa ra mục tiêu trả lời hữu ích như patch nhỏ, bảng bằng chứng hoặc kế hoạch đánh số, thay vì lấp đầy dung lượng bằng tệp không liên quan.

Công thức chạy cục bộ của nhà sản xuất khuyến nghị temperature 1.0, với top_p 0.95 cho công việc tác nhân và 1.0 trong trường hợp khác. Với mức thinking high và max, công thức khuyến nghị đặt độ dài đầu ra tối đa 384K token. Đây là các thiết lập được công bố và khuyến nghị về ngân sách tạo; ngân sách chuỗi vẫn phải chứa phần còn lại của yêu cầu.

Phân biệt bản phát hành với kiến trúc

Bản 0731 dùng cấu trúc Flash DSpark, bao gồm mô-đun giải mã suy đoán được gắn thêm. Phần lõi Flash là mô hình hỗn hợp chuyên gia được mô tả có tổng cộng 284 tỷ tham số và 13 tỷ tham số kích hoạt mỗi token. Phân biệt số lượng của phần lõi với mọi trọng số mô-đun bổ sung. Cấu hình đúng theo ngày này có 43 lớp, 256 chuyên gia định tuyến, một chuyên gia dùng chung và sáu chuyên gia được chọn mỗi token.

Đầu ra hữu ích vẫn là câu trả lời, mã đề xuất, phát hiện có cấu trúc hoặc bước quy trình tiếp theo mà bên gọi yêu cầu. Kiểm tra thay đổi mã với tệp được cung cấp và lỗi quan sát được. Kiểm tra kết luận tài liệu với đoạn trích hoặc bản ghi trả về. Lưu phiên bản mô hình, bản giao việc và quan sát liên quan cùng kết quả để phép so sánh sau dùng cùng vấn đề và bằng chứng.

Tác vụ thực tế

Tác vụ thực tế

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

Repair a required-field check

A route rejects only if not payload.get("quantity"). The contract requires quantity to be an integer greater than zero, excluding booleans. Explain why inputs {"quantity": -2} and {"quantity": true} expose a problem. Propose a small Python validation patch and cases for missing, zero, negative, boolean and positive values.

Kết quả mong đợi

A diagnosis, a focused validation patch and five input cases with accept or reject expectations.

Kiểm tra kết quả

Check that Python booleans are not accepted as integers and positive whole quantities still pass.
Ailoot · Anthropic Messages POST /v1/messages deepseek-v4-flash-0731

deepseek-v4-flash-0731

DeepSeek /deepseek-v4-flash-0731

Bắt đầu

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

Đầ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 · Anthropic Messages POST /v1/messages
Đầu vào
text
Đầu ra
text
Ngữ cảnh
1.000.000 tokens
Đầu ra tối đa
393.216 tokens
Đị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
deepseek-v4-flash-0731
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
user, assistant
Mặc định—
Trườngmessages[].contentLoạistring|content_block[]Yêu cầuBắt buộcGiá trị & giới hạnMặc định—
TrườngsystemLoạistring|content_block[]Yêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngmax_tokensLoạiintegerYêu cầuBắt buộcGiá trị & giới hạn
Tối thiểu: 1
Giới hạn áp dụng cho: Giới hạn trên chính xác của mô hình hoặc thẻ được chọn
Mặc định—
TrườngstreamLoạibooleanYêu cầuKhông bắt buộcGiá trị & giới hạnMặc địnhfalse
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ườngstop_sequencesLoạistring[]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ạitool[]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[].nameLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Áp dụng khi: Có cung cấp công cụ
Mặc định—
Trườngtools[].descriptionLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngtools[].input_schemaLoạiJSON_schemaYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngtool_choiceLoạ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ườngthinking.typeLoạ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ườngthinking.budget_tokensLoạiintegerYê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ườngoutput_config.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ườngmetadataLoạiobjectYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườngcache_controlLoạ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—
Tổ hợp tư liệu đầu vào

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

messages[].content hoặc khối type=text

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốmaterial_typesHợp đồngtext
Tham sốrequiredHợp đồngmodel, messages, max_tokens
Tham sốoptional_controlsHợp đồngnull
Tham sốcontent_typeHợp đồngapplication/json
Tham sốtext_file_materialHợp đồngNội dung UTF-8 thực tế được chèn dưới dạng văn bản; ID tệp/URLs cần được hỗ trợ chính xác riêng

Vòng đời: exact retained published method

Cấu trúc phương thức và ID là chính xác; khả năng của nhà cung cấp tách biệt với việc cho phép tiếp nhận yêu cầu.

Bảng giá

Mức phí phương thức Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Đầu vào
0,00044 US$ / 1K
Đầu ra
0,00132 US$ / 1K
Đọc bộ nhớ đệm
0,000044 US$ / 1K
Ghi bộ nhớ đệm
0,00044 US$ / 1K
Ghi bộ nhớ đệm, 5 phút
0,00044 US$ / 1K tokens

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 →

Chi tiết giá cước tham chiếu

Biểu tham chiếu cấp mô hình không thay đổi việc chọn phương thức, báo giá hoặc khoản phí. Khoản phí đang áp dụng dùng mức phí phương thức Ailoot đã chọn.

Biểu tham chiếu của mô hình

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ìnhOpenAI Chat · Đơn giá token cơ bảnBiể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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhOpenAI Chat · Bậ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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhAnthropic Messages · Đơn giá token cơ bảnBiể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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhAnthropic Messages · Bậ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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token

Ví dụ yêu cầu

Ailoot · Anthropic Messages

Ví dụ văn bảnPython SDKNode.js SDKLuồng Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "deepseek-v4-flash-0731", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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/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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="deepseek-v4-flash-0731",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "deepseek-v4-flash-0731",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,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=anthropic.Anthropic(base_url="https://api.ailoot.ai",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.messages.stream(model='deepseek-v4-flash-0731',max_tokens=1024,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_message()
    save_result(final.to_dict(mode="json"),"stream-result")

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

Ailoot · 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 deepseek-v4-flash-0731
Ailoot Ultra deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest

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

deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest, deepseek-v4-flash-0731

Ailoot · OpenAI Responses POST /v1/responses deepseek-v4-flash-0731

deepseek-v4-flash-0731

DeepSeek /deepseek-v4-flash-0731

Bắt đầu

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

Đầ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 · OpenAI Responses POST /v1/responses
Đầu vào
text
Đầu ra
text
Ngữ cảnh
1.000.000 tokens
Đầu ra tối đa
393.216 tokens
Đị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
deepseek-v4-flash-0731
Mặc định—
TrườnginputLoạistring|input_item[]Yêu cầuBắt buộcGiá trị & giới hạnMặc định—
TrườnginstructionsLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườnginput[].typeLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
message, reasoning, function_call, function_call_output
Mặc định—
Trườnginput[].contentLoạistring|content_part[]Yêu cầuKhông bắt buộcGiá trị & giới hạnMặc định—
Trườnginput[].call_idLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Áp dụng khi: function_call_output; giữ call_id thực tế được trả về
Mặc định—
Trườnginput[].outputLoạistring|content_part[]Yêu cầuKhông bắt buộcGiá trị & giới hạn
Áp dụng khi: function_call_output
Mặc định—
Trườngmax_output_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ườ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ườngtoolsLoạitool[]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ườ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ườ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ườngreasoning.summaryLoạ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ườngtext.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ườngtext.verbosityLoạ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ườngincludeLoạistring[]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ườngstoreLoạ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ườngprevious_response_idLoạistringYêu cầuKhông bắt buộcGiá trị & giới hạn
Yêu cầu về ID: Chỉ ID phản hồi thực tế từ một lượt tiếp tục được hỗ trợ
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ườngprompt_cache_keyLoạ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ườ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—
Tổ hợp tư liệu đầu vào

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

Văn bản đầu vào hoặc phần input_text

Tham số phương thức và vòng đời
Tham sốHợp đồng
Tham sốmaterial_typesHợp đồngtext
Tham sốrequiredHợp đồngmodel, input
Tham sốoptional_controlsHợp đồngnull
Tham sốcontent_typeHợp đồngapplication/json
Tham sốtext_file_materialHợp đồngNội dung UTF-8 thực tế được chèn dưới dạng văn bản; ID tệp/URLs cần được hỗ trợ chính xác riêng

Vòng đời: exact retained published method

Cấu trúc phương thức và ID là chính xác; khả năng của nhà cung cấp tách biệt với việc cho phép tiếp nhận yêu cầu.

Bảng giá

Mức phí phương thức Ailoot

Ailoot OpenAI ResponsesPOST /v1/responses
Đầu vào
0,00044 US$ / 1K
Đầu ra
0,00132 US$ / 1K
Đọc bộ nhớ đệm
0,000044 US$ / 1K
Ghi bộ nhớ đệm
0,00044 US$ / 1K
Ghi bộ nhớ đệm, 5 phút
0,00044 US$ / 1K tokens

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 →

Chi tiết giá cước tham chiếu

Biểu tham chiếu cấp mô hình không thay đổi việc chọn phương thức, báo giá hoặc khoản phí. Khoản phí đang áp dụng dùng mức phí phương thức Ailoot đã chọn.

Biểu tham chiếu của mô hình

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ìnhOpenAI Chat · Đơn giá token cơ bảnBiể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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhOpenAI Chat · Bậ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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhAnthropic Messages · Đơn giá token cơ bảnBiể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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhAnthropic Messages · Bậ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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token

Ví dụ yêu cầu

Ailoot · OpenAI Responses

Ví dụ văn bảnPython SDKNode.js SDKLuồng Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "deepseek-v4-flash-0731", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
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/responses \
  -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 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(json.loads(Path("result.json").read_text(encoding="utf-8")))
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)
resp = client.responses.create(model="deepseek-v4-flash-0731", input="Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "deepseek-v4-flash-0731", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path
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))

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)
with client.responses.stream(model="deepseek-v4-flash-0731", input="Explain the difference between an observation and a hypothesis 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_response()
    save_result(final.to_dict(mode="json"),"stream-result")

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

Ailoot · OpenAI Responses

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ữ từng mục đầu ra và phần nội dung, call_id hàm thực tế, dữ liệu suy luận được mã hóa và dữ liệu sử dụng. Khi truyền luồng, giữ đầy đủ thông tin định danh của sự kiện và mục.

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ườngstatusLoạistring
Trườngoutput[]Loạimessage|reasoning|function_call|other item
Trườngoutput[].content[]Loạicontent part
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 deepseek-v4-flash-0731
Ailoot Ultra deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest

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

deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest, deepseek-v4-flash-0731

Ailoot · OpenAI Chat POST /v1/chat/completions deepseek-v4-flash-0731

deepseek-v4-flash-0731

DeepSeek /deepseek-v4-flash-0731

Bắt đầu

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

Đầ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 · OpenAI Chat POST /v1/chat/completions
Đầu vào
text
Đầu ra
text
Ngữ cảnh
1.000.000 tokens
Đầu ra tối đa
393.216 tokens
Đị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
deepseek-v4-flash-0731
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
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—
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ốmaterial_typesHợp đồngtext
Tham sốrequiredHợp đồngmodel, messages
Tham sốoptional_controlsHợp đồngnull
Tham sốcontent_typeHợp đồngapplication/json
Tham sốtext_file_materialHợp đồngNội dung UTF-8 thực tế được chèn dưới dạng văn bản; ID tệp/URLs cần được hỗ trợ chính xác riêng

Vòng đời: exact retained published method

Cấu trúc phương thức và ID là chính xác; khả năng của nhà cung cấp tách biệt với việc cho phép tiếp nhận yêu cầu.

Bảng giá

Mức phí phương thức Ailoot

Ailoot OpenAI ChatPOST /v1/chat/completions
Đầu vào
0,00044 US$ / 1K
Đầu ra
0,00132 US$ / 1K
Đọc bộ nhớ đệm
0,000044 US$ / 1K
Ghi bộ nhớ đệm
0,00044 US$ / 1K
Ghi bộ nhớ đệm, 5 phút
0,00044 US$ / 1K tokens

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 →

Chi tiết giá cước tham chiếu

Biểu tham chiếu cấp mô hình không thay đổi việc chọn phương thức, báo giá hoặc khoản phí. Khoản phí đang áp dụng dùng mức phí phương thức Ailoot đã chọn.

Biểu tham chiếu của mô hình

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ìnhOpenAI Chat · Đơn giá token cơ bảnBiể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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhOpenAI Chat · Bậ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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhAnthropic Messages · Đơn giá token cơ bảnBiể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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token
Cấu hìnhAnthropic Messages · Bậ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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 1K token
Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token

Ví dụ yêu cầu

Ailoot · OpenAI Chat

Ví dụ văn bảnPython SDKNode.js SDKLuồng Python
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "deepseek-v4-flash-0731", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
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
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
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)
resp = client.chat.completions.create(
    model="deepseek-v4-flash-0731",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis 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(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "deepseek-v4-flash-0731",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
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='deepseek-v4-flash-0731',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 · 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 deepseek-v4-flash-0731
Ailoot Ultra deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest

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

deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest, deepseek-v4-flash-0731

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions deepseek/deepseek-v4-flash-0731

deepseek/deepseek-v4-flash-0731

DeepSeek /deepseek/deepseek-v4-flash-0731
ID mô hình
  • deepseek/deepseek-v4-flash-0731
  • ~deepseek/deepseek-v4-flash-latest

Bắt đầu

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

Đầ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
deepseek/deepseek-v4-flash-0731
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 độ suy luận · cao
Mức giá tiêu chuẩn Khi mức độ suy luận cao
Mức độ suy luận · thấp
Mức giá tiêu chuẩn Khi mức độ suy luận thấp
Mức độ suy luận · tối đa
Mức giá tiêu chuẩn Khi 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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": "deepseek/deepseek-v4-flash-0731", "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='deepseek/deepseek-v4-flash-0731',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='deepseek/deepseek-v4-flash-0731',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 deepseek-v4-flash-0731
Ailoot Ultra deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest

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

deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest, deepseek-v4-flash-0731

Ailoot Ultra · Anthropic Messages POST /v1/messages deepseek/deepseek-v4-flash-0731

deepseek/deepseek-v4-flash-0731

DeepSeek /deepseek/deepseek-v4-flash-0731
ID mô hình
  • deepseek/deepseek-v4-flash-0731
  • ~deepseek/deepseek-v4-flash-latest

Bắt đầu

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

Đầ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
deepseek/deepseek-v4-flash-0731
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 độ suy luận · cao
Mức giá tiêu chuẩn Khi mức độ suy luận cao
Mức độ suy luận · thấp
Mức giá tiêu chuẩn Khi mức độ suy luận thấp
Mức độ suy luận · tối đa
Mức giá tiêu chuẩn Khi 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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": "deepseek/deepseek-v4-flash-0731",
  "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': 'deepseek/deepseek-v4-flash-0731', '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': 'deepseek/deepseek-v4-flash-0731', '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 deepseek-v4-flash-0731
Ailoot Ultra deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest

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

deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest, deepseek-v4-flash-0731

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions ~deepseek/deepseek-v4-flash-latest

~deepseek/deepseek-v4-flash-latest

DeepSeek /~deepseek/deepseek-v4-flash-latest
ID mô hình
  • deepseek/deepseek-v4-flash-0731
  • ~deepseek/deepseek-v4-flash-latest

Bắt đầu

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

Đầ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
~deepseek/deepseek-v4-flash-latest
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 độ suy luận · cao
Mức giá tiêu chuẩn Khi mức độ suy luận cao
Mức độ suy luận · thấp
Mức giá tiêu chuẩn Khi mức độ suy luận thấp
Mức độ suy luận · tối đa
Mức giá tiêu chuẩn Khi 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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": "~deepseek/deepseek-v4-flash-latest", "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='~deepseek/deepseek-v4-flash-latest',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='~deepseek/deepseek-v4-flash-latest',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 deepseek-v4-flash-0731
Ailoot Ultra deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest

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

deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest, deepseek-v4-flash-0731

Ailoot Ultra · Anthropic Messages POST /v1/messages ~deepseek/deepseek-v4-flash-latest

~deepseek/deepseek-v4-flash-latest

DeepSeek /~deepseek/deepseek-v4-flash-latest
ID mô hình
  • deepseek/deepseek-v4-flash-0731
  • ~deepseek/deepseek-v4-flash-latest

Bắt đầu

DeepSeek V4 Flash 0731 là bản Flash chính thức cho văn bản, lập trình và quy trình tác tử. Mô hình cung cấp chế độ trò chuyện trực tiếp và suy nghĩ, đầu ra lời gọi công cụ có cấu trúc cùng ngữ cảnh mô hình một triệu token; phiên bản có ngày này bao gồm mô-đun giải mã suy đoán DSpark.

Đầ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
~deepseek/deepseek-v4-flash-latest
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 độ suy luận · cao
Mức giá tiêu chuẩn Khi mức độ suy luận cao
Mức độ suy luận · thấp
Mức giá tiêu chuẩn Khi mức độ suy luận thấp
Mức độ suy luận · tối đa
Mức giá tiêu chuẩn Khi 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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.00088 / 1K token
Đầu ra · Token đầu ra $0.00264 / 1K token
Đầu vào · Đọc bộ nhớ đệm $0.000056 / 1K token
Đầu vào · Ghi bộ nhớ đệm — / 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": "~deepseek/deepseek-v4-flash-latest",
  "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': '~deepseek/deepseek-v4-flash-latest', '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': '~deepseek/deepseek-v4-flash-latest', '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 deepseek-v4-flash-0731
Ailoot Ultra deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest

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

deepseek/deepseek-v4-flash-0731, ~deepseek/deepseek-v4-flash-latest, deepseek-v4-flash-0731

FAQ · DeepSeek: DeepSeek V4 Flash 0731
Có những đầu vào và kết quả nào?

POST /v1/messages · deepseek-v4-flash-0731: text → text

POST /v1/responses · deepseek-v4-flash-0731: text → text

POST /v1/chat/completions · deepseek-v4-flash-0731: text → text

POST /v1/chat/completions · deepseek/deepseek-v4-flash-0731: text → text

POST /v1/messages · deepseek/deepseek-v4-flash-0731: text → json, sse

POST /v1/chat/completions · ~deepseek/deepseek-v4-flash-latest: text → text

POST /v1/messages · ~deepseek/deepseek-v4-flash-latest: text → json, sse

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

POST /v1/messages · deepseek-v4-flash-0731: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · deepseek-v4-flash-0731: model, input, instructions, stream

POST /v1/chat/completions · deepseek-v4-flash-0731: model, messages, stream

POST /v1/chat/completions · deepseek/deepseek-v4-flash-0731: model, messages, stream, modalities, provider

POST /v1/messages · deepseek/deepseek-v4-flash-0731: model, messages, max_tokens, stream

POST /v1/chat/completions · ~deepseek/deepseek-v4-flash-latest: model, messages, stream, modalities, provider

POST /v1/messages · ~deepseek/deepseek-v4-flash-latest: model, messages, max_tokens, stream

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

POST /v1/messages · deepseek-v4-flash-0731: ctx: 1000000; max_out: 393216; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · deepseek-v4-flash-0731: ctx: 1000000; max_out: 393216

POST /v1/chat/completions · deepseek-v4-flash-0731: ctx: 1000000; max_out: 393216; messages.min_items: 1

POST /v1/chat/completions · deepseek/deepseek-v4-flash-0731: messages.min_items: 1

POST /v1/chat/completions · ~deepseek/deepseek-v4-flash-latest: 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