OpenAI: GPT-5.4
GPT-5.4 kết hợp suy luận, lập trình, hiểu hình ảnh và thao tác máy tính tích hợp cho công việc chuyên môn phức tạp. Cung cấp văn bản, hình ảnh và đề bài rõ ràng để xây dựng tài liệu, mã hoặc kết quả nhiều bước trong môi trường có công cụ kết nối.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsgpt-5.4 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesgpt-5.4 - Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsopenai/gpt-5.4 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesopenai/gpt-5.4
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.
GPT-5.4 là mô hình suy luận đa dụng của OpenAI dành cho công việc chuyên môn phức tạp. Bản phát hành kết hợp lập trình, suy luận và quy trình tác nhân với nhiệm vụ tài liệu, bảng tính và bài trình bày. Mô hình nhận văn bản, hình ảnh và tạo văn bản. Nhà sản xuất cũng tài liệu hóa khả năng thao tác máy tính tích hợp của mô hình trong môi trường làm việc được kết nối.
Với công việc tri thức, cung cấp tài liệu liên quan, đối tượng đọc dự kiến và yêu cầu của sản phẩm cuối cùng. Nhiệm vụ ví dụ là chuyển nhiều tài liệu dự án thành bản tóm lược quyết định, với dữ kiện đã cung cấp, quan hệ giữa chúng và điều kiện làm cơ sở cho khuyến nghị. Nhiệm vụ bảng tính hoặc bài trình bày cũng cần dữ liệu nguồn và cấu trúc hoặc mẫu mà kết quả phải theo. Công cụ của môi trường tạo hoặc sửa tệp thực tế; phản hồi bằng văn bản của mô hình giải thích hoặc hướng dẫn công việc đó.
Với lập trình, cung cấp hành vi dự kiến, tệp dự án liên quan và ràng buộc mà thay đổi phải giữ nguyên. Yêu cầu phần triển khai đề xuất hoặc lượt rà soát có trọng tâm gắn với hành vi đó. Bản giới thiệu mô tả quy trình dài kết hợp sử dụng công cụ, lặp lại để cải thiện kết quả và kiểm tra. Với nhiệm vụ trực quan hoặc thao tác máy tính, cung cấp ảnh chụp màn hình hoặc tham chiếu thực tế và mục tiêu. Mô hình có thể diễn giải màn hình và chọn thao tác; môi trường được kết nối thực hiện hành động và trả về trạng thái mới.
Thông số GPT-5.4 của OpenAI liệt kê cửa sổ ngữ cảnh 1,050,000 token và đầu ra tối đa 128,000 token, với mốc kiến thức ngày 31 tháng Tám năm 2025. Các mức suy luận là none, low, medium, high và xhigh; mặc định là none. Ngữ cảnh chứa tài liệu được cung cấp, kết quả công cụ liên quan, suy luận và câu trả lời cuối cùng. Giữ định nghĩa nhiệm vụ và tiêu chí thành công rõ ràng, nhất là khi nhiều bước phụ thuộc bằng chứng trước đó.
Nhà sản xuất liệt kê giao diện Responses, Chat Completions và Batch, truyền phát, Structured Outputs, gọi hàm, đầu vào tệp và hình ảnh, tìm kiếm web và tệp, cùng bộ nhớ đệm prompt. Công cụ gồm tạo hình ảnh, thông dịch mã, thao tác shell và áp dụng bản vá trong môi trường do nhà cung cấp vận hành, kỹ năng, thao tác máy tính, kết nối MCP và tìm kiếm công cụ. Bản giới thiệu giải thích tìm kiếm công cụ là tìm định nghĩa công cụ cần dùng khi nó trở nên liên quan, thay vì yêu cầu mọi định nghĩa đầy đủ ngay trong ngữ cảnh ban đầu. Ứng dụng quản lý thao tác của mình và cung cấp kết quả thực tế.
Bản giới thiệu mô hình cũng mô tả khả năng phân tích tài liệu được cải thiện, hiểu hình ảnh độ phân giải cao và nhiệm vụ chuyên môn rộng hơn kết hợp thông tin từ nhiều nguồn web. Chuẩn bị đầu vào dễ đọc và chỉ ra chi tiết quan trọng với câu hỏi. Chọn kết quả cuối cùng cụ thể và bằng chứng để kiểm tra: thay đổi đề xuất cùng hành vi chịu ảnh hưởng, tập phát hiện có cấu trúc hoặc tài liệu theo yêu cầu đã cung cấp. Phân biệt kết quả của hành động công cụ đã hoàn tất với bước vẫn cần thực hiện, để sản phẩm cuối cùng hữu ích cho việc tiếp tục công việc.
Tác vụ thực tế
Tác vụ thực tế
Ví dụ kỹ thuật bằng tiếng Anh
Outline a decision presentation
Prepare a four-slide outline for an operations decision from this supplied data: manual checks take 9 hours weekly; a proposed scanner would reduce checking to 3 hours; purchase cost is 1,200; monthly support cost is unknown. Include the current problem, expected operational change, missing cost information and a conditional recommendation. Do not claim a payback period.Kết quả mong đợi
Four slide titles with concise bullets and a conditional decision tied to the supplied data.Kiểm tra kết quả
Check that the unknown support cost prevents an asserted payback calculation and that hours remain weekly.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions gpt-5.4
gpt-5.4gpt-5.4openai/gpt-5.4
Bắt đầu
GPT-5.4 kết hợp suy luận, lập trình, hiểu hình ảnh và thao tác máy tính tích hợp cho công việc chuyên môn phức tạp. Cung cấp văn bản, hình ảnh và đề bài rõ ràng để xây dựng tài liệu, mã hoặc kết quả nhiều bước trong môi trường có công cụ kết nối.
- Đầ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ường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn gpt-5.4 | Mặc định— |
Trườngmessages | Loạimessage[] | Yêu cầuBắt buộc | Giá trị & giới hạn Số mục tối thiểu: 1 | Mặc định— |
Trườngmessages[].role | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngmessages[].content | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Áp dụng khi: Hội thoại văn bản | Mặc định— |
Trườngstream | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc địnhfalse |
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_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngmodel, messages |
Tham sốmaterial_types | Hợp đồngtext |
Tham sốmessages | Hợp đồngMảng thông điệp có cấu trúc role/content |
Tham sốfile_material | Hợ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_controls | Hợp đồngstream |
Tham sốcontrol_scope | Hợp đồngHội thoại văn bản; stream là giá trị boolean và mặc định là false. |
Tham sốoutput_modalities | Hợp đồngtext |
Tham sốhosted_operations | Hợp đồngfalse |
Tham sốmultimodal_input_binding | Hợp đồngnull |
Bí danh phương thức: /chat/completions
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 · trung bình
- Mức giá tiêu chuẩn Khi mức độ suy luận trung bình
- Mức độ suy luận · không suy luận
- Mức giá tiêu chuẩn Khi không sử dụng suy luận
- Mức độ suy luận · xhigh
- Mức giá tiêu chuẩn Khi mức độ suy luận là xhigh
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ình | Biểu mức phí | Token ngữ cảnh, lớn hơn | Token ngữ cảnh, tối đa và bao gồm | Phí |
|---|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Token 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ên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 1 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn0 | Token ngữ cảnh, tối đa và bao gồm272.000 | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 2 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn272.000 | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model":"gpt-5.4","messages":[{"role":"user","content":"hello"}],"stream":false}')
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="gpt-5.4", messages=[{"role":"user","content":"hello"}], stream=False)
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"))
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ường | Loại |
|---|---|
Trườngchoices[].index | Loạiinteger |
Trườngchoices[].message.content | Loạistring|null |
Trườngchoices[].message.tool_calls | Loạitool_call[] |
Trườngchoices[].message.reasoning_content | Loạistring |
Trườngchoices[].message.reasoning_details | Loạiobject|array |
Trườngchoices[].finish_reason | Loạistring|null |
Trườngusage | Loạiobject |
Lỗi và bước tiếp theo
| Phản hồi | Điều kiện | Bước tiếp theo |
|---|---|---|
Phản hồi400 · invalid_request_error | Điều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới. |
Bí danh
Bí danh mô hình
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Bí danh đường dẫn phương thức
/chat/completions
ID gọi liên quan
Ailoot Ultra · Anthropic Messages POST /v1/messages gpt-5.4
gpt-5.4gpt-5.4openai/gpt-5.4
Bắt đầu
GPT-5.4 kết hợp suy luận, lập trình, hiểu hình ảnh và thao tác máy tính tích hợp cho công việc chuyên môn phức tạp. Cung cấp văn bản, hình ảnh và đề bài rõ ràng để xây dựng tài liệu, mã hoặc kết quả nhiều bước trong môi trường có công cụ kết nối.
- Đầ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ường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn gpt-5.4 | Mặc định— |
Trườngmessages | Loạimessage[] | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngmessages[].role | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn user, assistant | Mặc định— |
Trườngmessages[].content | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngmax_tokens | Loạiinteger | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngstream | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặ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_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngmodel, messages, max_tokens |
Tham sốoptional_controls | Hợp đồngstream |
Tham sốmaterial_types | Hợp đồngtext |
Tham sốtext_file_material | Hợ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 · trung bình
- Mức giá tiêu chuẩn Khi mức độ suy luận trung bình
- Mức độ suy luận · không suy luận
- Mức giá tiêu chuẩn Khi không sử dụng suy luận
- Mức độ suy luận · xhigh
- Mức giá tiêu chuẩn Khi mức độ suy luận là xhigh
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ình | Biểu mức phí | Token ngữ cảnh, lớn hơn | Token ngữ cảnh, tối đa và bao gồm | Phí |
|---|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Token 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ên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 1 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn0 | Token ngữ cảnh, tối đa và bao gồm272.000 | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 2 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn272.000 | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · Anthropic Messages
{
"model": "gpt-5.4",
"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': 'gpt-5.4', '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': 'gpt-5.4', '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ường | Loại |
|---|---|
Trườngid | Loạistring |
Trườngmodel | Loạistring |
Trườngcontent[] | Loạitext|thinking|tool_use|other content block |
Trườngstop_reason | Loạistring|null |
Trườngusage | Loạiobject |
Lỗi và bước tiếp theo
| Phản hồi | Điều kiện | Bước tiếp theo |
|---|---|---|
Phản hồi400 · invalid_request_error | Điều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới. |
Bí danh
Bí danh mô hình
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Bí danh đường dẫn phương thức
/chat/completions
ID gọi liên quan
Ailoot Ultra · OpenAI Chat POST /v1/chat/completions openai/gpt-5.4
openai/gpt-5.4gpt-5.4openai/gpt-5.4
Bắt đầu
GPT-5.4 kết hợp suy luận, lập trình, hiểu hình ảnh và thao tác máy tính tích hợp cho công việc chuyên môn phức tạp. Cung cấp văn bản, hình ảnh và đề bài rõ ràng để xây dựng tài liệu, mã hoặc kết quả nhiều bước trong môi trường có công cụ kết nối.
- Đầ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ường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn openai/gpt-5.4 | Mặc định— |
Trườngmessages | Loạimessage[] | Yêu cầuBắt buộc | Giá trị & giới hạn Số mục tối thiểu: 1 | Mặc định— |
Trườngmessages[].role | Loạistring | Yêu cầuBắt buộc | Giá 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[].content | Loạistring|content_part[]|null | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngmessages[].tool_calls | Loạitool_call[] | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngmessages[].tool_call_id | Loạistring | Yêu cầuKhông bắt buộc | Giá 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[].name | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngmessages[].reasoning_content | Loạistring | Yêu cầuKhông bắt buộc | Giá 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_details | Loạiobject|array | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngmax_tokens | Loạiinteger | Yêu cầuKhông bắt buộc | Giá 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_tokens | Loạiinteger | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tối thiểu: 1 Tùy thuộc vào mô hình | Mặc định— |
Trườngstream | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc địnhfalse |
Trườngstream_options.include_usage | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngtemperature | Loạinumber | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngtop_p | Loạinumber | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngstop | Loạistring|string[] | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngtools | Loạifunction_tool[] | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngtools[].type | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn function Tùy thuộc vào mô hình | Mặc định— |
Trườngtools[].function.name | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn Áp dụng khi: Có cung cấp công cụ hàm | Mặc định— |
Trườngtools[].function.description | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngtools[].function.parameters | LoạiJSON_schema | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngtool_choice | Loạistring|object | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngparallel_tool_calls | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngresponse_format | Loạiobject | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngreasoning_effort | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngreasoning | Loạiobject | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngservice_tier | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườnginstructions | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Trường tương thích | Mặc định— |
Trườngfunctions | Loạifunction[] | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngfunction_call | Loạistring|object | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngprompt_cache_options | Loạiobject | Yêu cầuKhông bắt buộc | Giá trị & giới hạn Tùy thuộc vào mô hình | Mặc định— |
Trườngmodalities | Loạistring[] | Yêu cầuKhông bắt buộc | Giá trị & giới hạn text | Mặc định— |
Trườngprovider | Loạiobject | Yêu cầuKhông bắt buộc | Giá 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.ttl | Loạistring | Yêu cầuKhông bắt buộc | Giá 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_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngmodel, messages |
Tham sốmaterial_types | Hợp đồngtext |
Tham sốmessages | Hợp đồngMảng thông điệp có cấu trúc role/content |
Tham sốfile_material | Hợ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_controls | Hợp đồngstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice |
Tham sốcontrol_scope | Hợ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_modalities | Hợp đồngtext |
Tham sốhosted_operations | Hợp đồngfalse |
Tham sốmultimodal_input_binding | Hợ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 · trung bình
- Mức giá tiêu chuẩn Khi mức độ suy luận trung bình
- Mức độ suy luận · không suy luận
- Mức giá tiêu chuẩn Khi không sử dụng suy luận
- Mức độ suy luận · xhigh
- Mức giá tiêu chuẩn Khi mức độ suy luận là xhigh
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ình | Biểu mức phí | Token ngữ cảnh, lớn hơn | Token ngữ cảnh, tối đa và bao gồm | Phí |
|---|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Token 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ên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 1 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn0 | Token ngữ cảnh, tối đa và bao gồm272.000 | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 2 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn272.000 | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · OpenAI Chat
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "openai/gpt-5.4", "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='openai/gpt-5.4',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='openai/gpt-5.4',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ường | Loại |
|---|---|
Trườngchoices[].index | Loạiinteger |
Trườngchoices[].message.content | Loạistring|null |
Trườngchoices[].message.tool_calls | Loạitool_call[] |
Trườngchoices[].message.reasoning_content | Loạistring |
Trườngchoices[].message.reasoning_details | Loạiobject|array |
Trườngchoices[].finish_reason | Loạistring|null |
Trườngusage | Loạiobject |
Lỗi và bước tiếp theo
| Phản hồi | Điều kiện | Bước tiếp theo |
|---|---|---|
Phản hồi400 · invalid_request_error | Điều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới. |
Bí danh
Bí danh mô hình
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Bí danh đường dẫn phương thức
/chat/completions
ID gọi liên quan
Ailoot Ultra · Anthropic Messages POST /v1/messages openai/gpt-5.4
openai/gpt-5.4gpt-5.4openai/gpt-5.4
Bắt đầu
GPT-5.4 kết hợp suy luận, lập trình, hiểu hình ảnh và thao tác máy tính tích hợp cho công việc chuyên môn phức tạp. Cung cấp văn bản, hình ảnh và đề bài rõ ràng để xây dựng tài liệu, mã hoặc kết quả nhiều bước trong môi trường có công cụ kết nối.
- Đầ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ường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn openai/gpt-5.4 | Mặc định— |
Trườngmessages | Loạimessage[] | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngmessages[].role | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn user, assistant | Mặc định— |
Trườngmessages[].content | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngmax_tokens | Loạiinteger | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngstream | Loạiboolean | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặ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_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngmodel, messages, max_tokens |
Tham sốoptional_controls | Hợp đồngstream |
Tham sốmaterial_types | Hợp đồngtext |
Tham sốtext_file_material | Hợ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 · trung bình
- Mức giá tiêu chuẩn Khi mức độ suy luận trung bình
- Mức độ suy luận · không suy luận
- Mức giá tiêu chuẩn Khi không sử dụng suy luận
- Mức độ suy luận · xhigh
- Mức giá tiêu chuẩn Khi mức độ suy luận là xhigh
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ình | Biểu mức phí | Token ngữ cảnh, lớn hơn | Token ngữ cảnh, tối đa và bao gồm | Phí |
|---|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Token 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ên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 1 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn0 | Token ngữ cảnh, tối đa và bao gồm272.000 | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 2 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn272.000 | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào $0.005 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0005 / 1K token Đầu vào · Ghi bộ nhớ đệm $0 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · Anthropic Messages
{
"model": "openai/gpt-5.4",
"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': 'openai/gpt-5.4', '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': 'openai/gpt-5.4', '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ường | Loại |
|---|---|
Trườngid | Loạistring |
Trườngmodel | Loạistring |
Trườngcontent[] | Loạitext|thinking|tool_use|other content block |
Trườngstop_reason | Loạistring|null |
Trườngusage | Loạiobject |
Lỗi và bước tiếp theo
| Phản hồi | Điều kiện | Bước tiếp theo |
|---|---|---|
Phản hồi400 · invalid_request_error | Điều kiệnTrường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới. |
Bí danh
Bí danh mô hình
Ailoot Ultra gpt-5.4, openai/gpt-5.4
Bí danh đường dẫn phương thức
/chat/completions
ID gọi liên quan
FAQ · OpenAI: GPT-5.4
- Có những đầu vào và kết quả nào?
POST /v1/chat/completions·gpt-5.4:text→textPOST /v1/messages·gpt-5.4:text→json,ssePOST /v1/chat/completions·openai/gpt-5.4:text→textPOST /v1/messages·openai/gpt-5.4:text→json,sse- Yêu cầu sử dụng những trường nào?
POST /v1/chat/completions·gpt-5.4:model,messages,streamPOST /v1/messages·gpt-5.4:model,messages,max_tokens,streamPOST /v1/chat/completions·openai/gpt-5.4:model,messages,stream,modalities,providerPOST /v1/messages·openai/gpt-5.4:model,messages,max_tokens,stream- Áp dụng những giới hạn nào?
POST /v1/chat/completions·gpt-5.4:messages.min_items:1POST /v1/chat/completions·openai/gpt-5.4:messages.min_items:1