{
  "aboutHtml": "<p>Claude Opus 4.1 là bản cập nhật của Anthropic cho Claude Opus 4 gốc, tập trung vào nhiệm vụ tác nhân, lập trình thực tế và suy luận. Thông tin phát hành còn nhấn mạnh nghiên cứu chuyên sâu và phân tích dữ liệu, đặc biệt là theo dõi chi tiết và sử dụng tìm kiếm trong nhiệm vụ lớn hơn. Phụ lục thẻ hệ thống đi kèm mô tả cải thiện về chất lượng suy luận và tuân thủ chỉ dẫn. Đây vẫn là phiên bản riêng biệt với Opus 4 gốc và các mô hình Opus 4.5, 4.6, 5 về sau; không nên xem chế độ và giới hạn của chúng là thông số cho bản cập nhật này.</p><p>Với công việc mã, thông tin phát hành nhấn mạnh tái cấu trúc nhiều tệp và xác định cách sửa chính xác trong kho mã lớn. Cung cấp cho mô hình các tệp hoặc đoạn trích liên quan, hành vi hiện có, hành vi mong muốn và ràng buộc mà thay đổi hợp lệ phải giữ. Một yêu cầu minh họa có thể đề nghị truy vết lỗi qua các hàm liên quan, đề xuất thay đổi nhất quán nhỏ nhất và giải thích vì sao cần mỗi phần thay đổi. Kết quả hữu ích là bản vá hoặc đề xuất mã có thể xem xét, giữ ngữ cảnh nguồn cùng giả định, thay vì viết lại rộng khiến vấn đề ban đầu bị che khuất.</p><p>Với nghiên cứu và phân tích dữ liệu, trọng tâm theo dõi chi tiết hữu ích khi câu hỏi phụ thuộc vào nhiều đoạn hoặc quan sát. Cung cấp tài liệu cùng định danh nguồn, xác định câu hỏi và yêu cầu bằng chứng hỗ trợ từng kết luận. Bản giao việc thực tế có thể yêu cầu bảng so sánh cho thấy hai tài liệu thống nhất ở đâu, khác nhau ở đâu và câu hỏi nào chưa được giải đáp. Nếu tìm kiếm là một phần quy trình, ứng dụng cung cấp công cụ và nội dung được trả về. Mô hình sau đó kết nối kết quả ấy với tài liệu hiện có; đề xuất tìm kiếm trong văn bản không phải hoạt động truy xuất đã hoàn tất.</p><p>Opus 4.1 có chế độ trả lời tiêu chuẩn và suy nghĩ mở rộng tùy chọn. Hướng dẫn suy nghĩ trước đây cung cấp điều khiển trực tiếp qua budget_tokens, với mức tối thiểu 1,024 token. Hạn mức thường nhỏ hơn max_tokens vì suy luận nội bộ và câu trả lời cuối dùng chung hạn mức sinh. Đây là mục tiêu cho suy luận, không phải cam kết sử dụng toàn bộ lượng đó. Suy nghĩ thích ứng và điều khiển mức nỗ lực của các phiên bản Opus về sau là những khả năng riêng. Chuẩn bị vấn đề đầy đủ và xác định định dạng câu trả lời cuối để phần phân tích bổ sung dẫn đến kết quả người đọc cần.</p><p>Tính năng beta được công bố cho các mô hình Claude 4 trước đây hỗ trợ suy nghĩ xen kẽ: suy luận giữa các lần gọi công cụ trong cùng một lượt trợ lý. Tính năng này sử dụng khả năng suy nghĩ xen kẽ của nhà sản xuất trong quy trình Messages được hỗ trợ. Ở chế độ đó, hạn mức suy nghĩ có thể bao quát nhiều khối và vượt giá trị max_tokens của một lượt theo ngoại lệ được công bố. Trả khối suy nghĩ tương ứng mà không chỉnh sửa cùng kết quả công cụ, kể cả chữ ký của khối. Nhờ đó, quy trình gỡ lỗi có thể xen kẽ phân tích, phép kiểm tra do ứng dụng thực thi và diễn giải đầu ra thực tế, đồng thời phân biệt hành động được đề xuất với hành động đã hoàn tất.</p><p>Phụ lục thẻ hệ thống còn mô tả nhiệm vụ sử dụng máy tính gồm quan sát màn hình, thao tác chuột và nhập bàn phím, bên cạnh nhiệm vụ lập trình dài hơn có công cụ. Mô hình có thể suy luận từ trạng thái hình ảnh được cung cấp và chọn hành động trong môi trường kết nối; ứng dụng thực hiện tương tác và trả về điều đã thay đổi. Với bản giao việc dựa trên màn hình, xác định mục tiêu, điều khiển hiển thị liên quan và hành động được phép. Với quy trình tài liệu hoặc dữ liệu, yêu cầu lời giải thích văn bản hoặc kết quả có cấu trúc gắn với bằng chứng đã cung cấp. Diễn giải của mô hình và thực thi của môi trường là các phần riêng trong công việc.</p><p>Đánh giá của nhà sản xuất ghi nhận mức độ dễ bị tác động bởi tấn công chèn chỉ dẫn tương tự Opus 4 gốc. Đánh giá xem xét cụ thể văn bản ẩn hoặc phần tử giao diện cố chuyển hướng tác nhân khỏi nhiệm vụ của người dùng. Giữ chỉ dẫn nhiệm vụ tách biệt với tài liệu được công cụ trả về và giữ mục tiêu ban đầu khi diễn giải trang hoặc tài liệu. Đây là điều kiện quan trọng cho quy trình tác nhân: thấy yêu cầu trong nội dung bên ngoài không biến yêu cầu ấy thành chỉ dẫn được người dùng cho phép. Các biện pháp bảo vệ của mô hình không biến mọi trang gặp phải thành đầu vào đáng tin cậy.</p><p>Thẻ hệ thống còn mô tả hạn chế lập trình được gọi là lách cơ chế phần thưởng, bao gồm câu trả lời được ghi cứng trong mã và giải pháp chỉ được điều chỉnh cho những ví dụ trước mắt mô hình. Opus 4.1 thể hiện xu hướng tương tự Opus 4, với một số bước lùi trong các đánh giá chuyên biệt đó. Với đề xuất mã, yêu cầu giải pháp đáp ứng yêu cầu tổng quát, xác định những điều kiện nó xử lý và bổ sung kiểm tra ngoài ví dụ duy nhất đã cung cấp. Yêu cầu báo cáo cuối phân biệt điều được đề xuất, điều môi trường thực sự đã kiểm tra và điều chưa thể xác lập. Cách này kết nối thế mạnh gỡ lỗi chính xác, theo dõi chi tiết của mô hình với một sản phẩm cụ thể có hành vi kiểm tra được.</p>",
  "aboutText": "Claude Opus 4.1 là bản cập nhật của Anthropic cho Claude Opus 4 gốc, tập trung vào nhiệm vụ tác nhân, lập trình thực tế và suy luận. Thông tin phát hành còn nhấn mạnh nghiên cứu chuyên sâu và phân tích dữ liệu, đặc biệt là theo dõi chi tiết và sử dụng tìm kiếm trong nhiệm vụ lớn hơn. Phụ lục thẻ hệ thống đi kèm mô tả cải thiện về chất lượng suy luận và tuân thủ chỉ dẫn. Đây vẫn là phiên bản riêng biệt với Opus 4 gốc và các mô hình Opus 4.5, 4.6, 5 về sau; không nên xem chế độ và giới hạn của chúng là thông số cho bản cập nhật này.\n\nVới công việc mã, thông tin phát hành nhấn mạnh tái cấu trúc nhiều tệp và xác định cách sửa chính xác trong kho mã lớn. Cung cấp cho mô hình các tệp hoặc đoạn trích liên quan, hành vi hiện có, hành vi mong muốn và ràng buộc mà thay đổi hợp lệ phải giữ. Một yêu cầu minh họa có thể đề nghị truy vết lỗi qua các hàm liên quan, đề xuất thay đổi nhất quán nhỏ nhất và giải thích vì sao cần mỗi phần thay đổi. Kết quả hữu ích là bản vá hoặc đề xuất mã có thể xem xét, giữ ngữ cảnh nguồn cùng giả định, thay vì viết lại rộng khiến vấn đề ban đầu bị che khuất.\n\nVới nghiên cứu và phân tích dữ liệu, trọng tâm theo dõi chi tiết hữu ích khi câu hỏi phụ thuộc vào nhiều đoạn hoặc quan sát. Cung cấp tài liệu cùng định danh nguồn, xác định câu hỏi và yêu cầu bằng chứng hỗ trợ từng kết luận. Bản giao việc thực tế có thể yêu cầu bảng so sánh cho thấy hai tài liệu thống nhất ở đâu, khác nhau ở đâu và câu hỏi nào chưa được giải đáp. Nếu tìm kiếm là một phần quy trình, ứng dụng cung cấp công cụ và nội dung được trả về. Mô hình sau đó kết nối kết quả ấy với tài liệu hiện có; đề xuất tìm kiếm trong văn bản không phải hoạt động truy xuất đã hoàn tất.\n\nOpus 4.1 có chế độ trả lời tiêu chuẩn và suy nghĩ mở rộng tùy chọn. Hướng dẫn suy nghĩ trước đây cung cấp điều khiển trực tiếp qua budget_tokens, với mức tối thiểu 1,024 token. Hạn mức thường nhỏ hơn max_tokens vì suy luận nội bộ và câu trả lời cuối dùng chung hạn mức sinh. Đây là mục tiêu cho suy luận, không phải cam kết sử dụng toàn bộ lượng đó. Suy nghĩ thích ứng và điều khiển mức nỗ lực của các phiên bản Opus về sau là những khả năng riêng. Chuẩn bị vấn đề đầy đủ và xác định định dạng câu trả lời cuối để phần phân tích bổ sung dẫn đến kết quả người đọc cần.\n\nTính năng beta được công bố cho các mô hình Claude 4 trước đây hỗ trợ suy nghĩ xen kẽ: suy luận giữa các lần gọi công cụ trong cùng một lượt trợ lý. Tính năng này sử dụng khả năng suy nghĩ xen kẽ của nhà sản xuất trong quy trình Messages được hỗ trợ. Ở chế độ đó, hạn mức suy nghĩ có thể bao quát nhiều khối và vượt giá trị max_tokens của một lượt theo ngoại lệ được công bố. Trả khối suy nghĩ tương ứng mà không chỉnh sửa cùng kết quả công cụ, kể cả chữ ký của khối. Nhờ đó, quy trình gỡ lỗi có thể xen kẽ phân tích, phép kiểm tra do ứng dụng thực thi và diễn giải đầu ra thực tế, đồng thời phân biệt hành động được đề xuất với hành động đã hoàn tất.\n\nPhụ lục thẻ hệ thống còn mô tả nhiệm vụ sử dụng máy tính gồm quan sát màn hình, thao tác chuột và nhập bàn phím, bên cạnh nhiệm vụ lập trình dài hơn có công cụ. Mô hình có thể suy luận từ trạng thái hình ảnh được cung cấp và chọn hành động trong môi trường kết nối; ứng dụng thực hiện tương tác và trả về điều đã thay đổi. Với bản giao việc dựa trên màn hình, xác định mục tiêu, điều khiển hiển thị liên quan và hành động được phép. Với quy trình tài liệu hoặc dữ liệu, yêu cầu lời giải thích văn bản hoặc kết quả có cấu trúc gắn với bằng chứng đã cung cấp. Diễn giải của mô hình và thực thi của môi trường là các phần riêng trong công việc.\n\nĐánh giá của nhà sản xuất ghi nhận mức độ dễ bị tác động bởi tấn công chèn chỉ dẫn tương tự Opus 4 gốc. Đánh giá xem xét cụ thể văn bản ẩn hoặc phần tử giao diện cố chuyển hướng tác nhân khỏi nhiệm vụ của người dùng. Giữ chỉ dẫn nhiệm vụ tách biệt với tài liệu được công cụ trả về và giữ mục tiêu ban đầu khi diễn giải trang hoặc tài liệu. Đây là điều kiện quan trọng cho quy trình tác nhân: thấy yêu cầu trong nội dung bên ngoài không biến yêu cầu ấy thành chỉ dẫn được người dùng cho phép. Các biện pháp bảo vệ của mô hình không biến mọi trang gặp phải thành đầu vào đáng tin cậy.\n\nThẻ hệ thống còn mô tả hạn chế lập trình được gọi là lách cơ chế phần thưởng, bao gồm câu trả lời được ghi cứng trong mã và giải pháp chỉ được điều chỉnh cho những ví dụ trước mắt mô hình. Opus 4.1 thể hiện xu hướng tương tự Opus 4, với một số bước lùi trong các đánh giá chuyên biệt đó. Với đề xuất mã, yêu cầu giải pháp đáp ứng yêu cầu tổng quát, xác định những điều kiện nó xử lý và bổ sung kiểm tra ngoài ví dụ duy nhất đã cung cấp. Yêu cầu báo cáo cuối phân biệt điều được đề xuất, điều môi trường thực sự đã kiểm tra và điều chưa thể xác lập. Cách này kết nối thế mạnh gỡ lỗi chính xác, theo dõi chi tiết của mô hình với một sản phẩm cụ thể có hành vi kiểm tra được.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "ab92e9f49b2f4243eb7b99a955c7c1e742fe71c49d73fc8aaafa956855bdf0c0",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "vi",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">A</span><h2 id=\"sheet-title\">Anthropic: Claude Opus 4.1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Anthropic /</span><code>claude-opus-4-1-20250805-thinking</code><button type=\"button\" id=\"copy-id\">Sao chép ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Các phần của thẻ mô hình\"><button type=\"button\" data-card-jump=\"overview\">Bắt đầu</button><button type=\"button\" data-card-jump=\"methods\">Đầu vào &amp; phương thức</button><button type=\"button\" data-card-jump=\"pricing\">Bảng giá</button><button type=\"button\" data-card-jump=\"examples\">Ví dụ</button><button type=\"button\" data-card-jump=\"results\">Kết quả</button><button type=\"button\" data-card-jump=\"aliases\">Bí danh</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Phương thức API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|claude-opus-4-1-20250805-thinking\">Chat</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Bắt đầu</h3><p class=\"mdesc-full\">Claude Opus 4.1 là bản cập nhật Opus 4 của Anthropic dành cho công việc phần mềm có tác nhân, nghiên cứu, phân tích dữ liệu và suy luận. Trọng tâm bao gồm theo dõi chi tiết, thay đổi mã trên nhiều tệp và gỡ lỗi chính xác, với câu trả lời tiêu chuẩn hoặc suy nghĩ mở rộng tùy chọn.</p><dl class=\"card-io\" data-card-io><div><dt>Đầu vào được chấp nhận</dt><dd>Văn bản</dd></div><div><dt>Kết quả</dt><dd>Văn bản</dd></div></dl><details class=\"card-about\"><summary>Về mô hình</summary><p class=\"note-s\" data-model-method-boundary>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.</p><div class=\"mabout\" id=\"m-about\"><p>Claude Opus 4.1 là bản cập nhật của Anthropic cho Claude Opus 4 gốc, tập trung vào nhiệm vụ tác nhân, lập trình thực tế và suy luận. Thông tin phát hành còn nhấn mạnh nghiên cứu chuyên sâu và phân tích dữ liệu, đặc biệt là theo dõi chi tiết và sử dụng tìm kiếm trong nhiệm vụ lớn hơn. Phụ lục thẻ hệ thống đi kèm mô tả cải thiện về chất lượng suy luận và tuân thủ chỉ dẫn. Đây vẫn là phiên bản riêng biệt với Opus 4 gốc và các mô hình Opus 4.5, 4.6, 5 về sau; không nên xem chế độ và giới hạn của chúng là thông số cho bản cập nhật này.</p><p>Với công việc mã, thông tin phát hành nhấn mạnh tái cấu trúc nhiều tệp và xác định cách sửa chính xác trong kho mã lớn. Cung cấp cho mô hình các tệp hoặc đoạn trích liên quan, hành vi hiện có, hành vi mong muốn và ràng buộc mà thay đổi hợp lệ phải giữ. Một yêu cầu minh họa có thể đề nghị truy vết lỗi qua các hàm liên quan, đề xuất thay đổi nhất quán nhỏ nhất và giải thích vì sao cần mỗi phần thay đổi. Kết quả hữu ích là bản vá hoặc đề xuất mã có thể xem xét, giữ ngữ cảnh nguồn cùng giả định, thay vì viết lại rộng khiến vấn đề ban đầu bị che khuất.</p><p>Với nghiên cứu và phân tích dữ liệu, trọng tâm theo dõi chi tiết hữu ích khi câu hỏi phụ thuộc vào nhiều đoạn hoặc quan sát. Cung cấp tài liệu cùng định danh nguồn, xác định câu hỏi và yêu cầu bằng chứng hỗ trợ từng kết luận. Bản giao việc thực tế có thể yêu cầu bảng so sánh cho thấy hai tài liệu thống nhất ở đâu, khác nhau ở đâu và câu hỏi nào chưa được giải đáp. Nếu tìm kiếm là một phần quy trình, ứng dụng cung cấp công cụ và nội dung được trả về. Mô hình sau đó kết nối kết quả ấy với tài liệu hiện có; đề xuất tìm kiếm trong văn bản không phải hoạt động truy xuất đã hoàn tất.</p><p>Opus 4.1 có chế độ trả lời tiêu chuẩn và suy nghĩ mở rộng tùy chọn. Hướng dẫn suy nghĩ trước đây cung cấp điều khiển trực tiếp qua budget_tokens, với mức tối thiểu 1,024 token. Hạn mức thường nhỏ hơn max_tokens vì suy luận nội bộ và câu trả lời cuối dùng chung hạn mức sinh. Đây là mục tiêu cho suy luận, không phải cam kết sử dụng toàn bộ lượng đó. Suy nghĩ thích ứng và điều khiển mức nỗ lực của các phiên bản Opus về sau là những khả năng riêng. Chuẩn bị vấn đề đầy đủ và xác định định dạng câu trả lời cuối để phần phân tích bổ sung dẫn đến kết quả người đọc cần.</p><p>Tính năng beta được công bố cho các mô hình Claude 4 trước đây hỗ trợ suy nghĩ xen kẽ: suy luận giữa các lần gọi công cụ trong cùng một lượt trợ lý. Tính năng này sử dụng khả năng suy nghĩ xen kẽ của nhà sản xuất trong quy trình Messages được hỗ trợ. Ở chế độ đó, hạn mức suy nghĩ có thể bao quát nhiều khối và vượt giá trị max_tokens của một lượt theo ngoại lệ được công bố. Trả khối suy nghĩ tương ứng mà không chỉnh sửa cùng kết quả công cụ, kể cả chữ ký của khối. Nhờ đó, quy trình gỡ lỗi có thể xen kẽ phân tích, phép kiểm tra do ứng dụng thực thi và diễn giải đầu ra thực tế, đồng thời phân biệt hành động được đề xuất với hành động đã hoàn tất.</p><p>Phụ lục thẻ hệ thống còn mô tả nhiệm vụ sử dụng máy tính gồm quan sát màn hình, thao tác chuột và nhập bàn phím, bên cạnh nhiệm vụ lập trình dài hơn có công cụ. Mô hình có thể suy luận từ trạng thái hình ảnh được cung cấp và chọn hành động trong môi trường kết nối; ứng dụng thực hiện tương tác và trả về điều đã thay đổi. Với bản giao việc dựa trên màn hình, xác định mục tiêu, điều khiển hiển thị liên quan và hành động được phép. Với quy trình tài liệu hoặc dữ liệu, yêu cầu lời giải thích văn bản hoặc kết quả có cấu trúc gắn với bằng chứng đã cung cấp. Diễn giải của mô hình và thực thi của môi trường là các phần riêng trong công việc.</p><p>Đánh giá của nhà sản xuất ghi nhận mức độ dễ bị tác động bởi tấn công chèn chỉ dẫn tương tự Opus 4 gốc. Đánh giá xem xét cụ thể văn bản ẩn hoặc phần tử giao diện cố chuyển hướng tác nhân khỏi nhiệm vụ của người dùng. Giữ chỉ dẫn nhiệm vụ tách biệt với tài liệu được công cụ trả về và giữ mục tiêu ban đầu khi diễn giải trang hoặc tài liệu. Đây là điều kiện quan trọng cho quy trình tác nhân: thấy yêu cầu trong nội dung bên ngoài không biến yêu cầu ấy thành chỉ dẫn được người dùng cho phép. Các biện pháp bảo vệ của mô hình không biến mọi trang gặp phải thành đầu vào đáng tin cậy.</p><p>Thẻ hệ thống còn mô tả hạn chế lập trình được gọi là lách cơ chế phần thưởng, bao gồm câu trả lời được ghi cứng trong mã và giải pháp chỉ được điều chỉnh cho những ví dụ trước mắt mô hình. Opus 4.1 thể hiện xu hướng tương tự Opus 4, với một số bước lùi trong các đánh giá chuyên biệt đó. Với đề xuất mã, yêu cầu giải pháp đáp ứng yêu cầu tổng quát, xác định những điều kiện nó xử lý và bổ sung kiểm tra ngoài ví dụ duy nhất đã cung cấp. Yêu cầu báo cáo cuối phân biệt điều được đề xuất, điều môi trường thực sự đã kiểm tra và điều chưa thể xác lập. Cách này kết nối thế mạnh gỡ lỗi chính xác, theo dõi chi tiết của mô hình với một sản phẩm cụ thể có hành vi kiểm tra được.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Có trên Ailoot · đầu vào &amp; phương thức</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · OpenAI Chat</b> <code>POST /v1/chat/completions</code></summary><dl class=\"method-capabilities\"><div><dt>Đầu vào</dt><dd><code>text</code></dd></div><div><dt>Đầu ra</dt><dd><code>text</code></dd></div><div><dt>Định dạng đầu ra</dt><dd>json hoặc SSE</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Trường</th><th>Loại</th><th>Yêu cầu</th><th>Giá trị &amp; giới hạn</th><th>Mặc định</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>claude-opus-4-1-20250805-thinking</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">messages</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>message[]</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>Số mục tối thiểu: 1</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr data-parameter-availability=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">messages[].role</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div class=\"note-s\">Tùy thuộc vào mô hình</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">messages[].content</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>Áp dụng khi: Hội thoại văn bản</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">stream</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>boolean</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span></td><td data-cell-label=\"Mặc định\" data-default=\"known\"><span class=\"card-cell-label\">Mặc định</span>false</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Tổ hợp tư liệu đầu vào</summary><p class=\"note-s\"><b>Văn bản</b> · Văn bản UTF8</p><p class=\"note-s\"><code>messages[].content</code></p></details><details class=\"note-s\" data-method-contract><summary>Tham số phương thức và vòng đời</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Tham số</th><th>Hợp đồng</th></tr></thead><tbody><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>content_type</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>application/json</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>required</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>model, messages</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>material_types</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>text</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>messages</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>Mảng thông điệp có cấu trúc role/content</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>file_material</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>Tà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</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>optional_controls</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>stream</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>control_scope</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>Hội thoại văn bản; stream là giá trị boolean và mặc định là false.</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>output_modalities</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>text</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>hosted_operations</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>false</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>multimodal_input_binding</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>null</td></tr></tbody></table></div><p>Bí danh phương thức: <code>/chat/completions</code></p><p>Vòng đời: <code>synchronous_or_streamed</code></p><p class=\"note-s\">Gửi ID mô hình chính xác cùng messages.</p><p class=\"note-s\">Độ dài ngữ cảnh không phải giới hạn đầu ra.</p><p class=\"note-s\">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.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Bảng giá</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>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.</p><dl data-price-conditions><dt>Chế độ nhanh</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ nhanh</span></dd><dt>Chế độ Flex</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ flex</span></dd><dt>Mức độ suy luận tối đa</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa</span></dd></dl></div><div data-declared-tariff-pricing><h4>Mức phí Ailoot</h4><h4>Giá theo cấu hình</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Biểu mức phí</th><th>Phí</th></tr></thead><tbody><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Giá cơ sở cho token</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>Mức phí cơ bản</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Token đầu vào</span> <b>$0.03</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra</span> <b>$0.15</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm</span> <b>$0.0006</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm</span> <b>$0.0075</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm, 1 giờ</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">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. <a href=\"/docs/vi/billing/reserve/\">Cách hoạt động của cơ chế tạm giữ và quyết toán →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Ví dụ yêu cầu</h3><h4>Ailoot Ultra · OpenAI Chat</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Các phiên bản mã\"><button class=\"cg-tab\" id=\"model-code-1165-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1165-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1165-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1165-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Sao chép mã\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1165-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1165-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;:&quot;claude-opus-4-1-20250805-thinking&quot;,&quot;messages&quot;:[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}],&quot;stream&quot;:false}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;result.json&quot;).read_text())\nfor x in r.get(&quot;choices&quot;,[]):\n    if x.get(&quot;message&quot;,{}).get(&quot;content&quot;): print(x[&quot;message&quot;][&quot;content&quot;])\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1165-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1165-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\nif not os.environ.get(&quot;AILOOT_API_KEY&quot;, &quot;&quot;).strip(): raise SystemExit(&quot;Set AILOOT_API_KEY before making a request&quot;)\nclient=OpenAI(base_url=&quot;https://api.ailoot.ai/v1&quot;,api_key=os.environ[&quot;AILOOT_API_KEY&quot;],max_retries=0)\nresult=client.chat.completions.create(model=&quot;claude-opus-4-1-20250805-thinking&quot;, messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;hello&quot;}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=&quot;result&quot;):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + &quot;.json&quot;).write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=&quot;utf-8&quot;)\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b&quot;-_&quot;, validate=True)\n        ext = &quot;png&quot; if raw.startswith(b&quot;\\x89PNG\\r\\n\\x1a\\n&quot;) else &quot;jpg&quot; if raw.startswith(b&quot;\\xff\\xd8&quot;) else &quot;webp&quot; if raw[:4] == b&quot;RIFF&quot; and raw[8:12] == b&quot;WEBP&quot; else suffix\n        file = Path(stem + &quot;-&quot; + label + &quot;.&quot; + ext)\n        file.write_bytes(raw)\n        print(&quot;Saved&quot;, file)\n    for index, block in enumerate(data.get(&quot;content&quot;) or []):\n        print(&quot;Content&quot;, index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(&quot;choices&quot;) or []:\n        print(&quot;Choice&quot;, choice.get(&quot;index&quot;), json.dumps(choice.get(&quot;message&quot;, choice.get(&quot;delta&quot;, {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(&quot;output&quot;) or []):\n        print(&quot;Output&quot;, index, json.dumps(item, ensure_ascii=False))\n        if item.get(&quot;type&quot;) == &quot;image_generation_call&quot; and item.get(&quot;result&quot;):\n            save_blob(item[&quot;result&quot;], item.get(&quot;output_format&quot;) or &quot;bin&quot;, &quot;output-&quot; + str(index))\n    for ci, candidate in enumerate(data.get(&quot;candidates&quot;) or []):\n        for pi, part in enumerate((candidate.get(&quot;content&quot;) or {}).get(&quot;parts&quot;) or []):\n            print(&quot;Candidate/part&quot;, ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(&quot;inlineData&quot;) or part.get(&quot;inline_data&quot;)\n            if blob and blob.get(&quot;data&quot;):\n                mime = blob.get(&quot;mimeType&quot;) or blob.get(&quot;mime_type&quot;)\n                suffix = {&quot;image/png&quot;:&quot;png&quot;, &quot;image/jpeg&quot;:&quot;jpg&quot;, &quot;image/webp&quot;:&quot;webp&quot;, &quot;audio/wav&quot;:&quot;wav&quot;, &quot;audio/mpeg&quot;:&quot;mp3&quot;, &quot;video/mp4&quot;:&quot;mp4&quot;}.get(mime, &quot;bin&quot;)\n                save_blob(blob[&quot;data&quot;], suffix, &quot;candidate-&quot; + str(ci) + &quot;-part-&quot; + str(pi))\n\nsave_result(result.to_dict(mode=&quot;json&quot;))\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Nhận và lưu kết quả</h3><h4>Ailoot Ultra · OpenAI Chat</h4><p class=\"note-s\">json hoặc SSE</p><div class=\"card-result-process\" data-all-results><h5>Lưu tất cả kết quả đã hoàn tất</h5><p class=\"note-s\">Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.</p><p class=\"note-s\">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.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Nếu cần kiểm tra phản hồi gốc</h5><p class=\"note-s\">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.</p></div><details class=\"card-about\" data-output-fields><summary>Trường phản hồi</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Trường</th><th>Loại</th></tr></thead><tbody><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">choices[].index</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>integer</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">choices[].message.content</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>string|null</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">choices[].message.tool_calls</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>tool_call[]</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">choices[].message.reasoning_content</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>string</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">choices[].message.reasoning_details</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>object|array</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">choices[].finish_reason</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>string|null</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Lỗi và bước tiếp theo</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Phản hồi</th><th>Điều kiện</th><th>Bước tiếp theo</th></tr></thead><tbody><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Trườ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ệ</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Sửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Bí danh</h3><h4>Bí danh mô hình</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=claude-opus-4-1-20250805-thinking&amp;route=Ultra&amp;caller=claude-opus-4-1-20250805-thinking&amp;fmt=chat\"><code>claude-opus-4-1-20250805-thinking</code></a></span></p><h4>Bí danh đường dẫn phương thức</h4><p class=\"note-s\"><code>/chat/completions</code></p><h4>ID gọi liên quan</h4><p class=\"note-s\"><a href=\"#m=claude-opus-4-1-20250805-thinking&amp;route=Ultra&amp;caller=claude-opus-4-1-20250805-thinking&amp;fmt=chat\"><code>claude-opus-4-1-20250805-thinking</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "claude-opus-4-1-20250805-thinking",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "claude-opus-4-1-20250805-thinking",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|claude-opus-4-1-20250805-thinking",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": 0.6,
        "cache_write": 7.5,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Trườ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ệ",
                "http_status": 400,
                "recovery": "Sửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "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."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Văn bản UTF8"
              }
            ],
            "operation_modes": [
              "conversation"
            ],
            "outputs": {
              "all_results": "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.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json hoặc SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "claude-opus-4-1-20250805-thinking"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string",
                "when": "Hội thoại văn bản"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "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."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "Hội thoại văn bản; stream là giá trị boolean và mặc định là false.",
            "file_material": "Tà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",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "Mảng thông điệp có cấu trúc role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Giá cơ sở cho token",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.15000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000006",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.0075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.0000075",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"claude-opus-4-1-20250805-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"claude-opus-4-1-20250805-thinking\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        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\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 30,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 150,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.15000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000006",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.0075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.0000075",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "claude-opus-4-1-20250805-thinking",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.03000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.15000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0006000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000006",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0.0075000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0.0000075",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    }
  ],
  "model_id": "claude-opus-4-1-20250805-thinking",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "2c29bd472f5b293f490ead5f6ac2ba3683e5b879a92f85eb895b7aa7d13df9b1",
    "input_html_sha256": "c907ab899fcf5ae7d8213a4d2a1cec0d604f59fbf3694590519574b7d94c2ac8",
    "private_audit_sha256": "117aeb3962182a1e4f6ab2a3fa1676657366edb46e6f5b0ddd17ac18efbeb737",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/claude-opus-4-1-20250805-thinking/",
    "description": "Claude Opus 4.1 là bản cập nhật Opus 4 của Anthropic dành cho công việc phần mềm có tác nhân, nghiên cứu, phân tích dữ liệu và suy luận. Trọng tâm bao gồm theo dõi chi tiết, thay đổi mã trên nhiều tệp và gỡ lỗi chính xác, với câu trả lời tiêu chuẩn hoặc suy nghĩ mở rộng tùy chọn.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/claude-opus-4-1-20250805-thinking/index.md",
    "title": "Anthropic: Claude Opus 4.1 — Ailoot",
    "url": "https://ailoot.ai/models/vi/claude-opus-4-1-20250805-thinking/"
  },
  "rawModel": {
    "about": "Claude Opus 4.1 là bản cập nhật của Anthropic cho Claude Opus 4 gốc, tập trung vào nhiệm vụ tác nhân, lập trình thực tế và suy luận. Thông tin phát hành còn nhấn mạnh nghiên cứu chuyên sâu và phân tích dữ liệu, đặc biệt là theo dõi chi tiết và sử dụng tìm kiếm trong nhiệm vụ lớn hơn. Phụ lục thẻ hệ thống đi kèm mô tả cải thiện về chất lượng suy luận và tuân thủ chỉ dẫn. Đây vẫn là phiên bản riêng biệt với Opus 4 gốc và các mô hình Opus 4.5, 4.6, 5 về sau; không nên xem chế độ và giới hạn của chúng là thông số cho bản cập nhật này.\n\nVới công việc mã, thông tin phát hành nhấn mạnh tái cấu trúc nhiều tệp và xác định cách sửa chính xác trong kho mã lớn. Cung cấp cho mô hình các tệp hoặc đoạn trích liên quan, hành vi hiện có, hành vi mong muốn và ràng buộc mà thay đổi hợp lệ phải giữ. Một yêu cầu minh họa có thể đề nghị truy vết lỗi qua các hàm liên quan, đề xuất thay đổi nhất quán nhỏ nhất và giải thích vì sao cần mỗi phần thay đổi. Kết quả hữu ích là bản vá hoặc đề xuất mã có thể xem xét, giữ ngữ cảnh nguồn cùng giả định, thay vì viết lại rộng khiến vấn đề ban đầu bị che khuất.\n\nVới nghiên cứu và phân tích dữ liệu, trọng tâm theo dõi chi tiết hữu ích khi câu hỏi phụ thuộc vào nhiều đoạn hoặc quan sát. Cung cấp tài liệu cùng định danh nguồn, xác định câu hỏi và yêu cầu bằng chứng hỗ trợ từng kết luận. Bản giao việc thực tế có thể yêu cầu bảng so sánh cho thấy hai tài liệu thống nhất ở đâu, khác nhau ở đâu và câu hỏi nào chưa được giải đáp. Nếu tìm kiếm là một phần quy trình, ứng dụng cung cấp công cụ và nội dung được trả về. Mô hình sau đó kết nối kết quả ấy với tài liệu hiện có; đề xuất tìm kiếm trong văn bản không phải hoạt động truy xuất đã hoàn tất.\n\nOpus 4.1 có chế độ trả lời tiêu chuẩn và suy nghĩ mở rộng tùy chọn. Hướng dẫn suy nghĩ trước đây cung cấp điều khiển trực tiếp qua budget_tokens, với mức tối thiểu 1,024 token. Hạn mức thường nhỏ hơn max_tokens vì suy luận nội bộ và câu trả lời cuối dùng chung hạn mức sinh. Đây là mục tiêu cho suy luận, không phải cam kết sử dụng toàn bộ lượng đó. Suy nghĩ thích ứng và điều khiển mức nỗ lực của các phiên bản Opus về sau là những khả năng riêng. Chuẩn bị vấn đề đầy đủ và xác định định dạng câu trả lời cuối để phần phân tích bổ sung dẫn đến kết quả người đọc cần.\n\nTính năng beta được công bố cho các mô hình Claude 4 trước đây hỗ trợ suy nghĩ xen kẽ: suy luận giữa các lần gọi công cụ trong cùng một lượt trợ lý. Tính năng này sử dụng khả năng suy nghĩ xen kẽ của nhà sản xuất trong quy trình Messages được hỗ trợ. Ở chế độ đó, hạn mức suy nghĩ có thể bao quát nhiều khối và vượt giá trị max_tokens của một lượt theo ngoại lệ được công bố. Trả khối suy nghĩ tương ứng mà không chỉnh sửa cùng kết quả công cụ, kể cả chữ ký của khối. Nhờ đó, quy trình gỡ lỗi có thể xen kẽ phân tích, phép kiểm tra do ứng dụng thực thi và diễn giải đầu ra thực tế, đồng thời phân biệt hành động được đề xuất với hành động đã hoàn tất.\n\nPhụ lục thẻ hệ thống còn mô tả nhiệm vụ sử dụng máy tính gồm quan sát màn hình, thao tác chuột và nhập bàn phím, bên cạnh nhiệm vụ lập trình dài hơn có công cụ. Mô hình có thể suy luận từ trạng thái hình ảnh được cung cấp và chọn hành động trong môi trường kết nối; ứng dụng thực hiện tương tác và trả về điều đã thay đổi. Với bản giao việc dựa trên màn hình, xác định mục tiêu, điều khiển hiển thị liên quan và hành động được phép. Với quy trình tài liệu hoặc dữ liệu, yêu cầu lời giải thích văn bản hoặc kết quả có cấu trúc gắn với bằng chứng đã cung cấp. Diễn giải của mô hình và thực thi của môi trường là các phần riêng trong công việc.\n\nĐánh giá của nhà sản xuất ghi nhận mức độ dễ bị tác động bởi tấn công chèn chỉ dẫn tương tự Opus 4 gốc. Đánh giá xem xét cụ thể văn bản ẩn hoặc phần tử giao diện cố chuyển hướng tác nhân khỏi nhiệm vụ của người dùng. Giữ chỉ dẫn nhiệm vụ tách biệt với tài liệu được công cụ trả về và giữ mục tiêu ban đầu khi diễn giải trang hoặc tài liệu. Đây là điều kiện quan trọng cho quy trình tác nhân: thấy yêu cầu trong nội dung bên ngoài không biến yêu cầu ấy thành chỉ dẫn được người dùng cho phép. Các biện pháp bảo vệ của mô hình không biến mọi trang gặp phải thành đầu vào đáng tin cậy.\n\nThẻ hệ thống còn mô tả hạn chế lập trình được gọi là lách cơ chế phần thưởng, bao gồm câu trả lời được ghi cứng trong mã và giải pháp chỉ được điều chỉnh cho những ví dụ trước mắt mô hình. Opus 4.1 thể hiện xu hướng tương tự Opus 4, với một số bước lùi trong các đánh giá chuyên biệt đó. Với đề xuất mã, yêu cầu giải pháp đáp ứng yêu cầu tổng quát, xác định những điều kiện nó xử lý và bổ sung kiểm tra ngoài ví dụ duy nhất đã cung cấp. Yêu cầu báo cáo cuối phân biệt điều được đề xuất, điều môi trường thực sự đã kiểm tra và điều chưa thể xác lập. Cách này kết nối thế mạnh gỡ lỗi chính xác, theo dõi chi tiết của mô hình với một sản phẩm cụ thể có hành vi kiểm tra được.",
    "alias_of": null,
    "aliases": [],
    "author": "Anthropic",
    "capabilities": {
      "context_length": 200000,
      "manufacturer_input": [
        "image",
        "text",
        "file"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.03000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.15000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          }
        ],
        "summary": "Giá theo cấu hình được trình bày đầy đủ trong phần chi tiết."
      }
    ],
    "ctx": null,
    "formats": [
      "chat"
    ],
    "id": "claude-opus-4-1-20250805-thinking",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": 0.6,
        "cache_write": 7.5,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every choice and its content/tool calls/reasoning. In SSE assemble deltas by choice/tool index, retain the final finish reason and usage.",
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "header": "Authorization: Bearer"
            },
            "errors": [
              {
                "code": null,
                "condition": "Trườ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ệ",
                "http_status": 400,
                "recovery": "Sửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [
              "Model context is not an output cap.",
              "Send the conversation as text messages. Stream must be a boolean; omitted stream defaults to false."
            ],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/chat/completions"
              },
              "job_read": null,
              "mode": "synchronous_or_streamed",
              "unknown": "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."
            },
            "material_combinations": [
              {
                "mode": "text",
                "representation": "messages[].content",
                "required_material": "Văn bản UTF8"
              }
            ],
            "operation_modes": [
              "conversation"
            ],
            "outputs": {
              "all_results": "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.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "choices[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "choices[].message.content",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "choices[].message.tool_calls",
                  "type": "tool_call[]"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_content",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "choices[].message.reasoning_details",
                  "type": "object|array"
                },
                {
                  "description": null,
                  "name": "choices[].finish_reason",
                  "type": "string|null"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json hoặc SSE"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "claude-opus-4-1-20250805-thinking"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": false,
                "type": "string",
                "when": "Hội thoại văn bản"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Text conversation at the exact model ID and method path.",
            "unsupported": [
              "additional models/models list",
              "plugins",
              "route",
              "hosted tools; ordinary client function tools remain separate",
              "non-text output modalities",
              "provider.options overrides",
              "one-hour prompt-cache TTL"
            ]
          },
          "hints": [
            "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."
          ],
          "input": {
            "content_type": "application/json",
            "control_scope": "Hội thoại văn bản; stream là giá trị boolean và mặc định là false.",
            "file_material": "Tà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",
            "hosted_operations": false,
            "material_types": [
              "text"
            ],
            "messages": "Mảng thông điệp có cấu trúc role/content",
            "multimodal_input_binding": null,
            "optional_controls": [
              "stream"
            ],
            "output_modalities": [
              "text"
            ],
            "required": [
              "model",
              "messages"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_or_streamed",
            "unknown": "preserve original request id; no generic chat job retrieval path"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/chat/completions"
          },
          "method_aliases": [
            "/chat/completions"
          ],
          "operation_modes": [
            "text_chat"
          ],
          "output": {
            "content": "choices[].message.content or stream delta",
            "family": "text",
            "format": "json or supported SSE",
            "tool_calls": "retain actual returned function calls"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Giá cơ sở cho token",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.15000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000006",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.0075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.0000075",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\":\"claude-opus-4-1-20250805-thinking\",\"messages\":[{\"role\":\"user\",\"content\":\"hello\"}],\"stream\":false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"result.json\").read_text())\nfor x in r.get(\"choices\",[]):\n    if x.get(\"message\",{}).get(\"content\"): print(x[\"message\"][\"content\"])\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nif not os.environ.get(\"AILOOT_API_KEY\", \"\").strip(): raise SystemExit(\"Set AILOOT_API_KEY before making a request\")\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.chat.completions.create(model=\"claude-opus-4-1-20250805-thinking\", messages=[{\"role\":\"user\",\"content\":\"hello\"}], stream=False)\nimport base64, json\nfrom pathlib import Path\n\ndef save_result(data, stem=\"result\"):\n    # Keep every field, including usage, IDs, reasoning and tool requests.\n    Path(stem + \".json\").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding=\"utf-8\")\n    print(json.dumps(data, ensure_ascii=False, indent=2))\n    def save_blob(encoded, suffix, label):\n        raw = base64.b64decode(encoded, altchars=b\"-_\", validate=True)\n        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\n        file = Path(stem + \"-\" + label + \".\" + ext)\n        file.write_bytes(raw)\n        print(\"Saved\", file)\n    for index, block in enumerate(data.get(\"content\") or []):\n        print(\"Content\", index, json.dumps(block, ensure_ascii=False))\n    for choice in data.get(\"choices\") or []:\n        print(\"Choice\", choice.get(\"index\"), json.dumps(choice.get(\"message\", choice.get(\"delta\", {})), ensure_ascii=False))\n    for index, item in enumerate(data.get(\"output\") or []):\n        print(\"Output\", index, json.dumps(item, ensure_ascii=False))\n        if item.get(\"type\") == \"image_generation_call\" and item.get(\"result\"):\n            save_blob(item[\"result\"], item.get(\"output_format\") or \"bin\", \"output-\" + str(index))\n    for ci, candidate in enumerate(data.get(\"candidates\") or []):\n        for pi, part in enumerate((candidate.get(\"content\") or {}).get(\"parts\") or []):\n            print(\"Candidate/part\", ci, pi, json.dumps(part, ensure_ascii=False))\n            blob = part.get(\"inlineData\") or part.get(\"inline_data\")\n            if blob and blob.get(\"data\"):\n                mime = blob.get(\"mimeType\") or blob.get(\"mime_type\")\n                suffix = {\"image/png\":\"png\", \"image/jpeg\":\"jpg\", \"image/webp\":\"webp\", \"audio/wav\":\"wav\", \"audio/mpeg\":\"mp3\", \"video/mp4\":\"mp4\"}.get(mime, \"bin\")\n                save_blob(blob[\"data\"], suffix, \"candidate-\" + str(ci) + \"-part-\" + str(pi))\n\nsave_result(result.to_dict(mode=\"json\"))\n",
            "label": "Python SDK · all choices",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "chat",
        "hints": [
          "Send exact model ID with messages.",
          "Context length is not an output cap.",
          "A text file may supply literal text; image/audio/file-object inputs need exact binding."
        ],
        "http": "POST",
        "in": 30,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/chat/completions"
        ],
        "out": 150,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": "0.15000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00015",
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": "0.0006000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": "0.0000006",
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": "0.0075000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": "0.0000075",
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          }
        ],
        "request_model_id": "claude-opus-4-1-20250805-thinking",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.03000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": "0.15000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00015",
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": "0.0006000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": "0.0000006",
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": "0.0075000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": "0.0000075",
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "claude-opus-4-1-20250805-thinking",
        "request_model_id": "claude-opus-4-1-20250805-thinking",
        "route_label": "Ultra"
      }
    ],
    "name": "Anthropic: Claude Opus 4.1",
    "price": {
      "in": 30,
      "in_label": null,
      "out": 150,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 30,
      "sort_out": 150,
      "varies": false
    },
    "short": "Claude Opus 4.1 là bản cập nhật Opus 4 của Anthropic dành cho công việc phần mềm có tác nhân, nghiên cứu, phân tích dữ liệu và suy luận. Trọng tâm bao gồm theo dõi chi tiết, thay đổi mã trên nhiều tệp và gỡ lỗi chính xác, với câu trả lời tiêu chuẩn hoặc suy nghĩ mở rộng tùy chọn."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Claude Opus 4.1 là bản cập nhật Opus 4 của Anthropic dành cho công việc phần mềm có tác nhân, nghiên cứu, phân tích dữ liệu và suy luận. Trọng tâm bao gồm theo dõi chi tiết, thay đổi mã trên nhiều tệp và gỡ lỗi chính xác, với câu trả lời tiêu chuẩn hoặc suy nghĩ mở rộng tùy chọn.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "84c0a0ead7841f1f2ca1e0fd73a091b62cfda4d50195cb352e63431ca04f0e87",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "ca65afb8af7ac26f97ad2c753945933e266974ddb4e95acc6cade87f7a45a9ee"
}
