Anthropic: Claude Sonnet 4.5
Claude Sonnet 4.5 là mô hình văn bản và hình ảnh của Anthropic dành cho phát triển phần mềm, tác nhân phức tạp, sử dụng máy tính và công việc phân tích. Mô hình hỗ trợ trả lời trực tiếp hoặc suy nghĩ mở rộng được điều khiển thủ công, với suy luận giữa các lần gọi công cụ trong quy trình beta được công bố.
- Ailoot Ultra · OpenAI Chat
POST /v1/chat/completionsanthropic/claude-sonnet-4.5 - Ailoot Ultra · Anthropic Messages
POST /v1/messagesanthropic/claude-sonnet-4.5
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.
Claude Sonnet 4.5 là phiên bản Sonnet của Anthropic tập trung vào phát triển phần mềm, nhiệm vụ tác nhân phức tạp và sử dụng máy tính, với cải thiện về suy luận và toán học. Mô hình nhận văn bản, hình ảnh và tạo văn bản. Thông tin phát hành mô tả công việc kéo dài qua nhiều bước, khả năng hiểu mã và những thay đổi liên quan đến phạm vi dự án rộng hơn thay vì một hàm riêng lẻ. Bản giao việc hữu ích xác định hành vi cần có, tài liệu nguồn liên quan và sản phẩm cần tạo: bản vá được đề xuất, lời giải thích phần triển khai, bản phân tích tài liệu hoặc câu trả lời có cấu trúc.
Với công việc phần mềm, cung cấp các ràng buộc của dự án, tệp hoặc đoạn trích liên quan, lỗi đã quan sát được và ví dụ cụ thể về kết quả mong muốn. Yêu cầu phần mã bị tác động và lời giải thích cách thay đổi được đề xuất xử lý ví dụ đó. Nhà sản xuất giới thiệu mô hình phù hợp để xây dựng tác nhân và thực hiện nhiệm vụ phát triển bằng công cụ. Ứng dụng bao quanh mô hình đọc, sửa tệp, chạy lệnh hoặc phép kiểm tra và trả về đầu ra thực tế; mô hình suy luận dựa trên bằng chứng đó. Trong báo cáo cuối, phân biệt thay đổi được đề xuất với phép kiểm tra đã hoàn tất.
Sử dụng máy tính là một ứng dụng riêng của khả năng thị giác và tác nhân. Thông tin phát hành của Anthropic minh họa tương tác trình duyệt, điều hướng trang và làm việc với bảng tính qua môi trường được kết nối. Bản giao việc về hình ảnh có thể cung cấp ảnh chụp màn hình, xác định mục tiêu và quy định hành động nào ứng dụng cho phép. Ứng dụng sau đó thực hiện tương tác được chọn và trả về màn hình đã thay đổi hoặc kết quả khác. Tương tự, mô hình có thể chuẩn bị nội dung và mã cho tài liệu, bảng tính, trang trình chiếu, còn môi trường tạo tệp hoàn chỉnh. Khả năng hiểu văn bản và hình ảnh không biến mô hình thành bộ tạo hình ảnh hoặc âm thanh vốn có.
Thông số chính xác của nhà sản xuất liệt kê cửa sổ ngữ cảnh 200K token và đầu ra tối đa 64K token. Mốc giới hạn kiến thức đáng tin cậy là tháng Một năm 2025, khác với mốc dữ liệu huấn luyện muộn hơn được liệt kê trên trang. Trong đầu vào dài, giữ rõ ranh giới tài liệu, nhãn trang, đơn vị và định danh mã, đồng thời chừa chỗ cho câu trả lời được yêu cầu và phần suy luận. Nhà sản xuất còn công bố khả năng nhận biết ngữ cảnh cho phiên bản này, nên quy trình được hỗ trợ theo dõi dung lượng còn lại trong hội thoại. Điều đó giúp quản lý nhiệm vụ kéo dài trong cửa sổ của mô hình; không thay cửa sổ này bằng dung lượng lớn hơn của một phiên bản Sonnet về sau.
Sonnet 4.5 hỗ trợ câu trả lời thông thường và suy nghĩ mở rộng được điều khiển thủ công. Ở chế độ sau, budget_tokens đặt mục tiêu cho phần suy luận nội bộ trước câu trả lời hiển thị. Mức tối thiểu được công bố là 1,024 token và hạn mức thường phải nhỏ hơn max_tokens vì phần suy nghĩ cùng câu trả lời cuối dùng chung hạn mức sinh. Hạn mức này là mục tiêu, không phải cam kết sử dụng đúng từng ấy token. Phiên bản này không có chế độ suy nghĩ thích ứng hoặc điều khiển mức nỗ lực được mô tả cho các mô hình Sonnet về sau. Chọn độ sâu phân tích mong muốn và chừa đủ hạn mức cho câu trả lời cuối có thể sử dụng.
Tính năng beta suy nghĩ xen kẽ của nhà sản xuất cho phép Sonnet 4.5 suy luận giữa các lần gọi công cụ trong cùng một lượt, sử dụng quan sát được trả về để quyết định bước tiếp theo. Tính năng này yêu cầu khả năng beta được công bố trong quy trình Messages được hỗ trợ. Trong trường hợp này, hạn mức suy nghĩ có thể vượt max_tokens vì bao quát nhiều khối suy nghĩ trong cùng một lượt của trợ lý. Trả kết quả công cụ cùng nội dung suy nghĩ liên quan mà không chỉnh sửa, kể cả chữ ký; chỉnh sửa nội dung đó sẽ làm nó mất hiệu lực. Vì vậy, nhiệm vụ nghiên cứu hoặc gỡ lỗi có thể xen kẽ phép kiểm tra được đề xuất, kết quả thực tế trả về và phân tích cập nhật mà không xem đề xuất bằng văn bản là hành động đã hoàn tất.
Với tài liệu hình ảnh, nhà sản xuất hỗ trợ JPEG, PNG, GIF và WebP, đồng thời chỉ sử dụng khung hình đầu của ảnh động. Cấp hình ảnh tiêu chuẩn vốn có được phiên bản này sử dụng có giới hạn cạnh dài 1,568 pixel và giới hạn 1,568 token thị giác; hình ảnh lớn hơn được thu nhỏ. Hướng dẫn hình ảnh của nhà sản xuất liệt kê tối đa 100 hình ảnh mỗi yêu cầu API cho mô hình có ngữ cảnh 200K, nhưng các điều kiện về hình ảnh và tổng kích thước yêu cầu có thể chạm giới hạn trước. Khi thuận tiện, đặt hình ảnh trước câu hỏi, ghi nhãn nhiều hình ảnh và giữ rõ chữ nhỏ hoặc nhãn biểu đồ. Hướng dẫn khuyến nghị hình ảnh rõ ràng và giữ đủ ngữ cảnh xung quanh để diễn giải chi tiết nhìn thấy.
Chỉnh sửa ngữ cảnh và công cụ bộ nhớ được giới thiệu cùng mô hình này để hỗ trợ quy trình tác nhân dài hơn. Đây là các cách do ứng dụng hỗ trợ để giữ trạng thái hữu ích hoặc loại bỏ nội dung công cụ cũ; chúng không phải bộ nhớ mô hình vô hạn hay tính năng nén ngữ cảnh phía máy chủ về sau. Với nhiệm vụ nhiều giai đoạn, giữ quyết định đã chốt, câu hỏi còn mở và bằng chứng cần cho bước tiếp theo. Anthropic còn mô tả khả năng chống chỉ dẫn ẩn trong nội dung bên ngoài tốt hơn, đồng thời lưu ý rằng bộ phân loại riêng của mô hình đôi khi có thể gắn cờ tài liệu vô hại. Kết quả hữu ích vẫn là sản phẩm có thể xem xét, gắn với bằng chứng được cung cấp, trong đó chế độ và giới hạn chính xác của Sonnet 4.5 được tách biệt với các phiên bản phát hành về sau.
Tác vụ thực tế
Tác vụ thực tế
Ví dụ kỹ thuật bằng tiếng Anh
Repair an empty-cart total
Review this Python function: def total(items): return sum(x['price'] * x['qty'] for x in items) / len(items). It crashes for an empty cart and incorrectly averages nonempty carts. Return a minimal correction preserving the function signature, plus assertions for empty, one-line and two-line carts. Explain the changed behavior briefly.Kết quả mong đợi
Corrected Python function, three concrete assertions and a brief explanation of sum versus average.Kiểm tra kết quả
The proposed tests cover empty input and verify that two cart lines are added rather than averaged.Ailoot Ultra · OpenAI Chat POST /v1/chat/completions anthropic/claude-sonnet-4.5
anthropic/claude-sonnet-4.5Bắt đầu
Claude Sonnet 4.5 là mô hình văn bản và hình ảnh của Anthropic dành cho phát triển phần mềm, tác nhân phức tạp, sử dụng máy tính và công việc phân tích. Mô hình hỗ trợ trả lời trực tiếp hoặc suy nghĩ mở rộng được điều khiển thủ công, với suy luận giữa các lần gọi công cụ trong quy trình beta được công bố.
- Đầ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 anthropic/claude-sonnet-4.5 | 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 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.0132 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0006 / 1K token Đầu vào · Ghi bộ nhớ đệm $0.0075 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ $0.012 / 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ồm200.000 | Phí Đầu vào · Token đầu vào $0.0132 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0006 / 1K token Đầu vào · Ghi bộ nhớ đệm $0.0075 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ $0.012 / 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ơn200.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.0132 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0006 / 1K token Đầu vào · Ghi bộ nhớ đệm $0.0075 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ $0.024 / 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": "anthropic/claude-sonnet-4.5", "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='anthropic/claude-sonnet-4.5',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='anthropic/claude-sonnet-4.5',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 anthropic/claude-sonnet-4.5
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
Ailoot Ultra · Anthropic Messages POST /v1/messages anthropic/claude-sonnet-4.5
anthropic/claude-sonnet-4.5Bắt đầu
Claude Sonnet 4.5 là mô hình văn bản và hình ảnh của Anthropic dành cho phát triển phần mềm, tác nhân phức tạp, sử dụng máy tính và công việc phân tích. Mô hình hỗ trợ trả lời trực tiếp hoặc suy nghĩ mở rộng được điều khiển thủ công, với suy luận giữa các lần gọi công cụ trong quy trình beta được công bố.
- Đầ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 anthropic/claude-sonnet-4.5 | 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 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.0132 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0006 / 1K token Đầu vào · Ghi bộ nhớ đệm $0.0075 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ $0.012 / 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ồm200.000 | Phí Đầu vào · Token đầu vào $0.0132 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0006 / 1K token Đầu vào · Ghi bộ nhớ đệm $0.0075 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ $0.012 / 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ơn200.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.0132 / 1K token Đầu ra · Token đầu ra $0.03 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.0006 / 1K token Đầu vào · Ghi bộ nhớ đệm $0.0075 / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ $0.024 / 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": "anthropic/claude-sonnet-4.5",
"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': 'anthropic/claude-sonnet-4.5', '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': 'anthropic/claude-sonnet-4.5', '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 anthropic/claude-sonnet-4.5
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
FAQ · Anthropic: Claude Sonnet 4.5
- Có những đầu vào và kết quả nào?
POST /v1/chat/completions·anthropic/claude-sonnet-4.5:text→textPOST /v1/messages·anthropic/claude-sonnet-4.5:text→json,sse- Yêu cầu sử dụng những trường nào?
POST /v1/chat/completions·anthropic/claude-sonnet-4.5:model,messages,stream,modalities,providerPOST /v1/messages·anthropic/claude-sonnet-4.5:model,messages,max_tokens,stream- Áp dụng những giới hạn nào?
POST /v1/chat/completions·anthropic/claude-sonnet-4.5:messages.min_items:1