{
  "aboutHtml": "<p>Amazon Nova Micro là mô hình Nova thế hệ đầu chỉ văn bản của Amazon, dành cho phản hồi độ trễ thấp trong quy trình ngôn ngữ thường ngày. Mô hình nhận và trả văn bản. Ví dụ của Amazon gồm tóm tắt thông tin đã cung cấp, dịch, phân loại văn bản, trả lời câu hỏi và tạo nội dung viết gọn. Micro hữu ích khi ứng dụng đã thu thập dữ kiện và cần biến đổi tập trung, như chuyển thuộc tính sản phẩm thành đoạn danh mục hoặc biến ghi chú họp thành danh sách hành động.</p><p>Hướng dẫn Nova thế hệ đầu nêu cửa sổ ngữ cảnh 128K token và đầu ra tối đa 10K token. Mốc kiến thức được ghi nhận là tháng 10 năm 2024. Ngữ cảnh làm việc này nhỏ hơn cửa sổ 300K của Nova Lite, Pro hoặc 1 triệu token của Premier. Dùng dung lượng sẵn có cho văn bản mà câu trả lời thực sự phụ thuộc: đoạn nguồn, ví dụ và hội thoại liên quan. Xác định tạo phẩm mong muốn là phản hồi ngắn, nhãn danh mục, bản dịch hay tập trường trích xuất. Hạn mức ngữ cảnh rộng không đòi hỏi câu trả lời dài; độ dài và cấu trúc đầu ra rõ ràng giúp kết quả hữu ích.</p><p>Phạm vi của Micro là văn bản, không phải hiểu hình ảnh, video hay âm thanh nguyên bản. Với thông tin ban đầu nằm trong tài liệu hoặc tệp media, đưa văn bản trích xuất hoặc bản chép lời. Bản yêu cầu nội dung sản phẩm có thể chứa tên, kích thước, vật liệu, biến thể và phong cách bắt buộc, rồi yêu cầu một đoạn chỉ dùng các thuộc tính ấy. Ví dụ cụ thể có thể yêu cầu mô tả trung tính và danh sách thông số còn thiếu riêng. Cách này dùng mô hình như người viết và biến đổi bằng chứng được cung cấp thay vì yêu cầu suy ra đặc điểm sản phẩm không được nhìn thấy.</p><p>Amazon ghi nhận các vai system, user và assistant cho lời nhắc văn bản Nova. Chỉ dẫn system có thể xác lập vai viết và ràng buộc định kỳ; tin nhắn user đưa nhiệm vụ và tài liệu nguồn; vài ví dụ tiêu biểu cho thấy định dạng mong muốn. Tổ chức đầu vào dày bằng nhãn rõ, chia chỉ dẫn kết hợp thành bước riêng nếu mô hình khó xử lý quan hệ phụ thuộc. Khi dịch, nêu ngôn ngữ đích, có giữ tên riêng không và thuật ngữ nào phải giữ nguyên. Họ version1 được huấn luyện cho hơn 200 ngôn ngữ, tối ưu tập nhỏ hơn, nên không mặc định chất lượng giống nhau ở mọi phương ngữ.</p><p>Micro hỗ trợ truyền phát phản hồi và gọi công cụ phía khách. Mô hình cũng hỗ trợ đệm lời nhắc trong hồ sơ phục vụ Amazon ghi nhận. Lưu đệm tường minh cần ít nhất 1K token mỗi điểm kiểm tra và cho phép tối đa bốn điểm giữ năm phút. Nhà cung cấp giới hạn đệm lời nhắc ở 20K token, chủ yếu cho lời nhắc văn bản; hạn mức đệm khác toàn bộ cửa sổ ngữ cảnh. Với trợ lý dựa trên nguồn, ứng dụng có thể truy xuất văn bản liên quan hoặc thực thi hàm yêu cầu, rồi gửi kết quả quan sát lại để tạo câu trả lời cuối. Bản thân mô hình không phải công cụ truy xuất thông tin trực tiếp. Khi phản hồi phụ thuộc chính sách hiện hành hay kho tri thức riêng, đưa nguồn liên quan thực tế. Định dạng JSON yêu cầu có thể hữu ích cho phân loại hoặc trích xuất, nhưng hồ sơ nhà cung cấp không liệt kê cưỡng chế đầu ra có cấu trúc là tính năng hỗ trợ; nêu cách xử lý giá trị thiếu và kiểm tra các trường trả về.</p><p>Vai trò khác ở thế hệ đầu là tùy chỉnh: Amazon ghi nhận tinh chỉnh Micro bằng ví dụ có nhãn và chưng cất kiến thức nhiệm vụ vào nó từ Nova Pro hoặc Premier. Biến thể tùy chỉnh là quy trình riêng, không phải năng lực âm thầm thay đổi bản cơ sở. Với mô hình thường, đánh giá tạo phẩm hoàn tất theo bản yêu cầu: dữ kiện cung cấp phải nguyên vẹn, thuộc tính quan trọng không biến mất và văn phong khớp yêu cầu. Micro cũng có thể tạo mã, nhưng các kết quả ấy không kèm quét bảo mật hoặc kết quả thực thi tự động.</p>",
  "aboutText": "Amazon Nova Micro là mô hình Nova thế hệ đầu chỉ văn bản của Amazon, dành cho phản hồi độ trễ thấp trong quy trình ngôn ngữ thường ngày. Mô hình nhận và trả văn bản. Ví dụ của Amazon gồm tóm tắt thông tin đã cung cấp, dịch, phân loại văn bản, trả lời câu hỏi và tạo nội dung viết gọn. Micro hữu ích khi ứng dụng đã thu thập dữ kiện và cần biến đổi tập trung, như chuyển thuộc tính sản phẩm thành đoạn danh mục hoặc biến ghi chú họp thành danh sách hành động.\n\nHướng dẫn Nova thế hệ đầu nêu cửa sổ ngữ cảnh 128K token và đầu ra tối đa 10K token. Mốc kiến thức được ghi nhận là tháng 10 năm 2024. Ngữ cảnh làm việc này nhỏ hơn cửa sổ 300K của Nova Lite, Pro hoặc 1 triệu token của Premier. Dùng dung lượng sẵn có cho văn bản mà câu trả lời thực sự phụ thuộc: đoạn nguồn, ví dụ và hội thoại liên quan. Xác định tạo phẩm mong muốn là phản hồi ngắn, nhãn danh mục, bản dịch hay tập trường trích xuất. Hạn mức ngữ cảnh rộng không đòi hỏi câu trả lời dài; độ dài và cấu trúc đầu ra rõ ràng giúp kết quả hữu ích.\n\nPhạm vi của Micro là văn bản, không phải hiểu hình ảnh, video hay âm thanh nguyên bản. Với thông tin ban đầu nằm trong tài liệu hoặc tệp media, đưa văn bản trích xuất hoặc bản chép lời. Bản yêu cầu nội dung sản phẩm có thể chứa tên, kích thước, vật liệu, biến thể và phong cách bắt buộc, rồi yêu cầu một đoạn chỉ dùng các thuộc tính ấy. Ví dụ cụ thể có thể yêu cầu mô tả trung tính và danh sách thông số còn thiếu riêng. Cách này dùng mô hình như người viết và biến đổi bằng chứng được cung cấp thay vì yêu cầu suy ra đặc điểm sản phẩm không được nhìn thấy.\n\nAmazon ghi nhận các vai system, user và assistant cho lời nhắc văn bản Nova. Chỉ dẫn system có thể xác lập vai viết và ràng buộc định kỳ; tin nhắn user đưa nhiệm vụ và tài liệu nguồn; vài ví dụ tiêu biểu cho thấy định dạng mong muốn. Tổ chức đầu vào dày bằng nhãn rõ, chia chỉ dẫn kết hợp thành bước riêng nếu mô hình khó xử lý quan hệ phụ thuộc. Khi dịch, nêu ngôn ngữ đích, có giữ tên riêng không và thuật ngữ nào phải giữ nguyên. Họ version1 được huấn luyện cho hơn 200 ngôn ngữ, tối ưu tập nhỏ hơn, nên không mặc định chất lượng giống nhau ở mọi phương ngữ.\n\nMicro hỗ trợ truyền phát phản hồi và gọi công cụ phía khách. Mô hình cũng hỗ trợ đệm lời nhắc trong hồ sơ phục vụ Amazon ghi nhận. Lưu đệm tường minh cần ít nhất 1K token mỗi điểm kiểm tra và cho phép tối đa bốn điểm giữ năm phút. Nhà cung cấp giới hạn đệm lời nhắc ở 20K token, chủ yếu cho lời nhắc văn bản; hạn mức đệm khác toàn bộ cửa sổ ngữ cảnh. Với trợ lý dựa trên nguồn, ứng dụng có thể truy xuất văn bản liên quan hoặc thực thi hàm yêu cầu, rồi gửi kết quả quan sát lại để tạo câu trả lời cuối. Bản thân mô hình không phải công cụ truy xuất thông tin trực tiếp. Khi phản hồi phụ thuộc chính sách hiện hành hay kho tri thức riêng, đưa nguồn liên quan thực tế. Định dạng JSON yêu cầu có thể hữu ích cho phân loại hoặc trích xuất, nhưng hồ sơ nhà cung cấp không liệt kê cưỡng chế đầu ra có cấu trúc là tính năng hỗ trợ; nêu cách xử lý giá trị thiếu và kiểm tra các trường trả về.\n\nVai trò khác ở thế hệ đầu là tùy chỉnh: Amazon ghi nhận tinh chỉnh Micro bằng ví dụ có nhãn và chưng cất kiến thức nhiệm vụ vào nó từ Nova Pro hoặc Premier. Biến thể tùy chỉnh là quy trình riêng, không phải năng lực âm thầm thay đổi bản cơ sở. Với mô hình thường, đánh giá tạo phẩm hoàn tất theo bản yêu cầu: dữ kiện cung cấp phải nguyên vẹn, thuộc tính quan trọng không biến mất và văn phong khớp yêu cầu. Micro cũng có thể tạo mã, nhưng các kết quả ấy không kèm quét bảo mật hoặc kết quả thực thi tự động.",
  "editorialOverlay": {
    "copy_fields": {
      "practical_html": "<h3>Tác vụ thực tế</h3><p>Ví dụ kỹ thuật bằng tiếng Anh</p><pre><code>Product copy from supplied specifications\n\nTurn these attributes into a neutral 45-word catalog paragraph: folding desk, oak veneer, steel frame, 90 × 50 cm top, two height positions, flat-pack delivery. Follow it with missing specifications a buyer might need. Use only the supplied attributes and avoid claims about durability, sustainability or maximum load.</code></pre><h4>Kết quả mong đợi</h4><pre><code>One short product paragraph followed by a separate missing-specifications list.</code></pre><h4>Kiểm tra kết quả</h4><pre><code>Every stated product feature is in the supplied attributes; unknown load capacity stays in the missing list.</code></pre>"
    },
    "copy_sha256": "943ae4da022e83a0e03aa1ca292a4a90fd033f6efb1275d1ce3964df0452fab9",
    "copy_source": {
      "locale": "vi",
      "pack_sha256": "0f56d90ba41881e1134accf82e57338f246f8753ca4c0cee929aaffada5d10e7",
      "record_model_id": "amazon/nova-micro-v1",
      "source_facts_sha256": "fb8f33d8c4a91ba38587cf5a1412fad2779487875160235f89041c662aa603e8",
      "validation_sha256": "a2ac2f28056280fc0b2ea34a501bf156d5ce155406e57e708edf30bfdf6bfdc6"
    },
    "html_sha256": "c1f7b3bb8632478e9e60175e4ad0810ae4d5b1e2a217a1236c1ecc616bcd2087",
    "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\">•</span><h2 id=\"sheet-title\">Amazon: Nova Micro 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Amazon /</span><code>amazon/nova-micro-v1</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|amazon%2Fnova-micro-v1\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|amazon%2Fnova-micro-v1\">Messages</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\">Amazon Nova Micro là mô hình chỉ văn bản trong họ Nova thế hệ đầu. Mô hình dành cho nhiệm vụ ngôn ngữ độ trễ thấp như tóm tắt, dịch, phân loại, hỏi đáp và biến dữ kiện đã cung cấp thành nội dung ngắn gọ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>Amazon Nova Micro là mô hình Nova thế hệ đầu chỉ văn bản của Amazon, dành cho phản hồi độ trễ thấp trong quy trình ngôn ngữ thường ngày. Mô hình nhận và trả văn bản. Ví dụ của Amazon gồm tóm tắt thông tin đã cung cấp, dịch, phân loại văn bản, trả lời câu hỏi và tạo nội dung viết gọn. Micro hữu ích khi ứng dụng đã thu thập dữ kiện và cần biến đổi tập trung, như chuyển thuộc tính sản phẩm thành đoạn danh mục hoặc biến ghi chú họp thành danh sách hành động.</p><p>Hướng dẫn Nova thế hệ đầu nêu cửa sổ ngữ cảnh 128K token và đầu ra tối đa 10K token. Mốc kiến thức được ghi nhận là tháng 10 năm 2024. Ngữ cảnh làm việc này nhỏ hơn cửa sổ 300K của Nova Lite, Pro hoặc 1 triệu token của Premier. Dùng dung lượng sẵn có cho văn bản mà câu trả lời thực sự phụ thuộc: đoạn nguồn, ví dụ và hội thoại liên quan. Xác định tạo phẩm mong muốn là phản hồi ngắn, nhãn danh mục, bản dịch hay tập trường trích xuất. Hạn mức ngữ cảnh rộng không đòi hỏi câu trả lời dài; độ dài và cấu trúc đầu ra rõ ràng giúp kết quả hữu ích.</p><p>Phạm vi của Micro là văn bản, không phải hiểu hình ảnh, video hay âm thanh nguyên bản. Với thông tin ban đầu nằm trong tài liệu hoặc tệp media, đưa văn bản trích xuất hoặc bản chép lời. Bản yêu cầu nội dung sản phẩm có thể chứa tên, kích thước, vật liệu, biến thể và phong cách bắt buộc, rồi yêu cầu một đoạn chỉ dùng các thuộc tính ấy. Ví dụ cụ thể có thể yêu cầu mô tả trung tính và danh sách thông số còn thiếu riêng. Cách này dùng mô hình như người viết và biến đổi bằng chứng được cung cấp thay vì yêu cầu suy ra đặc điểm sản phẩm không được nhìn thấy.</p><p>Amazon ghi nhận các vai system, user và assistant cho lời nhắc văn bản Nova. Chỉ dẫn system có thể xác lập vai viết và ràng buộc định kỳ; tin nhắn user đưa nhiệm vụ và tài liệu nguồn; vài ví dụ tiêu biểu cho thấy định dạng mong muốn. Tổ chức đầu vào dày bằng nhãn rõ, chia chỉ dẫn kết hợp thành bước riêng nếu mô hình khó xử lý quan hệ phụ thuộc. Khi dịch, nêu ngôn ngữ đích, có giữ tên riêng không và thuật ngữ nào phải giữ nguyên. Họ version1 được huấn luyện cho hơn 200 ngôn ngữ, tối ưu tập nhỏ hơn, nên không mặc định chất lượng giống nhau ở mọi phương ngữ.</p><p>Micro hỗ trợ truyền phát phản hồi và gọi công cụ phía khách. Mô hình cũng hỗ trợ đệm lời nhắc trong hồ sơ phục vụ Amazon ghi nhận. Lưu đệm tường minh cần ít nhất 1K token mỗi điểm kiểm tra và cho phép tối đa bốn điểm giữ năm phút. Nhà cung cấp giới hạn đệm lời nhắc ở 20K token, chủ yếu cho lời nhắc văn bản; hạn mức đệm khác toàn bộ cửa sổ ngữ cảnh. Với trợ lý dựa trên nguồn, ứng dụng có thể truy xuất văn bản liên quan hoặc thực thi hàm yêu cầu, rồi gửi kết quả quan sát lại để tạo câu trả lời cuối. Bản thân mô hình không phải công cụ truy xuất thông tin trực tiếp. Khi phản hồi phụ thuộc chính sách hiện hành hay kho tri thức riêng, đưa nguồn liên quan thực tế. Định dạng JSON yêu cầu có thể hữu ích cho phân loại hoặc trích xuất, nhưng hồ sơ nhà cung cấp không liệt kê cưỡng chế đầu ra có cấu trúc là tính năng hỗ trợ; nêu cách xử lý giá trị thiếu và kiểm tra các trường trả về.</p><p>Vai trò khác ở thế hệ đầu là tùy chỉnh: Amazon ghi nhận tinh chỉnh Micro bằng ví dụ có nhãn và chưng cất kiến thức nhiệm vụ vào nó từ Nova Pro hoặc Premier. Biến thể tùy chỉnh là quy trình riêng, không phải năng lực âm thầm thay đổi bản cơ sở. Với mô hình thường, đánh giá tạo phẩm hoàn tất theo bản yêu cầu: dữ kiện cung cấp phải nguyên vẹn, thuộc tính quan trọng không biến mất và văn phong khớp yêu cầu. Micro cũng có thể tạo mã, nhưng các kết quả ấy không kèm quét bảo mật hoặc kết quả thực thi tự động.</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>amazon/nova-micro-v1</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>Ví dụ: system, user, assistant, tool, function</div><div>Điều kiện: Các vai trò này được biểu diễn rõ trong các kiểu tương thích của mã nguồn; tập vai trò chính xác vẫn tùy từng mô hình.</div><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|content_part[]|null</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=\"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[].tool_calls</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>tool_call[]</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=\"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[].tool_call_id</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: role=tool; dùng ID thực tế được trả về</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[].name</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></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[].reasoning_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: Gửi lại dữ liệu suy luận thực tế đã được trả về khi mô hình này sử dụng dữ liệu đó</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[].reasoning_details</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object|array</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">max_tokens</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>integer</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>Tối thiểu: 1</div><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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">max_completion_tokens</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>integer</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>Tối thiểu: 1</div><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\">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><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\">stream_options.include_usage</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><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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>number</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">top_p</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>number</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">stop</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string|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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">tools</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>function_tool[]</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">tools[].type</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>function</div><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\">tools[].function.name</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>Áp dụng khi: Có cung cấp công cụ hàm</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\">tools[].function.description</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></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\">tools[].function.parameters</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>JSON_schema</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=\"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\">tool_choice</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string|object</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">parallel_tool_calls</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><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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">reasoning_effort</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">reasoning</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">service_tier</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 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_compatibility\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">instructions</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 class=\"note-s\">Trường tương thích</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\">functions</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>function[]</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">function_call</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string|object</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 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=\"model_dependent\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">prompt_cache_options</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object</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 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\">modalities</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>text</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\">provider</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object</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>Điều kiện: provider.options bị từ chối trên tuyến văn bản Ultra này</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\">cache_control.ttl</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>Điều kiện: 1h bị từ chối tại các vị trí lưu đệm prompt thực tế</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</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, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice</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>Tùy từng mô hình; công cụ hàm của người dùng khác với công cụ do dịch vụ cung cấp</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>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>Mức giá tiêu chuẩn <span class=\"note-s\">Khi chọn chế độ nhanh</span></dd><dt>Chế độ Flex</dt><dd>Mức giá tiêu chuẩn <span class=\"note-s\">Khi chọn chế độ flex</span></dd><dt>Mức độ suy luận tối đa</dt><dd>Mức giá tiêu chuẩn <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><p class=\"note-s\">Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Biểu mức phí</th><th>Token ngữ cảnh, lớn hơn</th><th>Token ngữ cảnh, tối đa và bao gồm</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=\"Token ngữ cảnh, lớn hơn\"><span class=\"card-cell-label\">Token ngữ cảnh, lớn hơn</span>—</td><td data-cell-label=\"Token ngữ cảnh, tối đa và bao gồm\"><span class=\"card-cell-label\">Token ngữ cảnh, tối đa và bao gồm</span>Không có giới hạn trê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.00007</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra</span> <b>$0.00028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm</span> <b>—</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><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Bậc 1 theo độ dài yêu cầu</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>—</td><td data-cell-label=\"Token ngữ cảnh, lớn hơn\"><span class=\"card-cell-label\">Token ngữ cảnh, lớn hơn</span>0</td><td data-cell-label=\"Token ngữ cảnh, tối đa và bao gồm\"><span class=\"card-cell-label\">Token ngữ cảnh, tối đa và bao gồm</span>Không có giới hạn trê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.00007</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra</span> <b>$0.00028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm</span> <b>—</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-1019-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1019-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1019-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1019-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button><button class=\"cg-tab\" id=\"model-code-1019-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1019-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Luồng Python</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-1019-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1019-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;amazon/nova-micro-v1&quot;, &quot;messages&quot;: [{&quot;role&quot;: &quot;user&quot;, &quot;content&quot;: &quot;Explain the difference between an observation and a hypothesis in three sentences.&quot;}]}&#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-1019-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1019-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=&#39;amazon/nova-micro-v1&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}])\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 class=\"cg-pane\" id=\"model-code-1019-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1019-tab-2\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\nfrom pathlib import Path\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)\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\nwith client.chat.completions.stream(model=&#39;amazon/nova-micro-v1&#39;,messages=[{&quot;role&quot;:&quot;user&quot;,&quot;content&quot;:&quot;Explain observations and hypotheses in three sentences.&quot;}]) as stream:\n    with Path(&quot;stream-events.jsonl&quot;).open(&quot;w&quot;,encoding=&quot;utf-8&quot;) as log:\n        for event in stream:\n            payload=event.to_dict(mode=&quot;json&quot;)\n            log.write(json.dumps(payload,ensure_ascii=False)+&quot;\\n&quot;); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=&quot;json&quot;),&quot;stream-result&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=amazon%2Fnova-micro-v1&amp;route=Ultra&amp;caller=amazon%2Fnova-micro-v1&amp;fmt=chat\"><code>amazon/nova-micro-v1</code></a></span></p><h4>Bí danh đường dẫn phương thức</h4><p class=\"note-s\">Dùng các đường dẫn phương thức hiển thị ở trên.</p><h4>ID gọi liên quan</h4><p class=\"note-s\"><a href=\"#m=amazon%2Fnova-micro-v1&amp;route=Ultra&amp;caller=amazon%2Fnova-micro-v1&amp;fmt=chat\"><code>amazon/nova-micro-v1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "amazon/nova-micro-v1",
        "fmt": "chat",
        "http": "POST",
        "path": "/v1/chat/completions",
        "request_model_id": "amazon/nova-micro-v1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|chat|/v1/chat/completions|amazon%2Fnova-micro-v1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "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.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "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",
              "function_tool_continuation",
              "streaming"
            ],
            "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": [
                  "amazon/nova-micro-v1"
                ],
                "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",
                "conditions": "Các vai trò này được biểu diễn rõ trong các kiểu tương thích của mã nguồn; tập vai trò chính xác vẫn tùy từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "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|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; dùng ID thực tế được trả về"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Gửi lại dữ liệu suy luận thực tế đã được trả về khi mô hình này sử dụng dữ liệu đó"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "Có cung cấp công cụ hàm"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options bị từ chối trên tuyến văn bản Ultra này",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h bị từ chối tại các vị trí lưu đệm prompt thực tế",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "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": "Tùy từng mô hình; công cụ hàm của người dùng khác với công cụ do dịch vụ cung cấp",
            "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",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "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": [],
          "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.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Bậc 1 theo độ dài yêu cầu",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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\": \"amazon/nova-micro-v1\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\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='amazon/nova-micro-v1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\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"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\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)\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\nwith client.chat.completions.stream(model='amazon/nova-micro-v1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "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": 0.07,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0.28,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Chế độ nhanh",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ nhanh"
          },
          {
            "label": "Chế độ Flex",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ flex"
          },
          {
            "label": "Mức độ suy luận tối đa",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa"
          }
        ],
        "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.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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": "amazon/nova-micro-v1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": null,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.07,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 0.28,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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"
          }
        ]
      }
    },
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Amazon: Nova Micro 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Amazon /</span><code>amazon/nova-micro-v1</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=\"-1\" aria-controls=\"card-method-content\" aria-selected=\"false\" id=\"card-method-tab-0\" data-card-method=\"Ultra|chat|/v1/chat/completions|amazon%2Fnova-micro-v1\">Chat</button><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-1\" data-card-method=\"Ultra|messages|/v1/messages|amazon%2Fnova-micro-v1\">Messages</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-1\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Bắt đầu</h3><p class=\"mdesc-full\">Amazon Nova Micro là mô hình chỉ văn bản trong họ Nova thế hệ đầu. Mô hình dành cho nhiệm vụ ngôn ngữ độ trễ thấp như tóm tắt, dịch, phân loại, hỏi đáp và biến dữ kiện đã cung cấp thành nội dung ngắn gọ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>json · sse</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>Amazon Nova Micro là mô hình Nova thế hệ đầu chỉ văn bản của Amazon, dành cho phản hồi độ trễ thấp trong quy trình ngôn ngữ thường ngày. Mô hình nhận và trả văn bản. Ví dụ của Amazon gồm tóm tắt thông tin đã cung cấp, dịch, phân loại văn bản, trả lời câu hỏi và tạo nội dung viết gọn. Micro hữu ích khi ứng dụng đã thu thập dữ kiện và cần biến đổi tập trung, như chuyển thuộc tính sản phẩm thành đoạn danh mục hoặc biến ghi chú họp thành danh sách hành động.</p><p>Hướng dẫn Nova thế hệ đầu nêu cửa sổ ngữ cảnh 128K token và đầu ra tối đa 10K token. Mốc kiến thức được ghi nhận là tháng 10 năm 2024. Ngữ cảnh làm việc này nhỏ hơn cửa sổ 300K của Nova Lite, Pro hoặc 1 triệu token của Premier. Dùng dung lượng sẵn có cho văn bản mà câu trả lời thực sự phụ thuộc: đoạn nguồn, ví dụ và hội thoại liên quan. Xác định tạo phẩm mong muốn là phản hồi ngắn, nhãn danh mục, bản dịch hay tập trường trích xuất. Hạn mức ngữ cảnh rộng không đòi hỏi câu trả lời dài; độ dài và cấu trúc đầu ra rõ ràng giúp kết quả hữu ích.</p><p>Phạm vi của Micro là văn bản, không phải hiểu hình ảnh, video hay âm thanh nguyên bản. Với thông tin ban đầu nằm trong tài liệu hoặc tệp media, đưa văn bản trích xuất hoặc bản chép lời. Bản yêu cầu nội dung sản phẩm có thể chứa tên, kích thước, vật liệu, biến thể và phong cách bắt buộc, rồi yêu cầu một đoạn chỉ dùng các thuộc tính ấy. Ví dụ cụ thể có thể yêu cầu mô tả trung tính và danh sách thông số còn thiếu riêng. Cách này dùng mô hình như người viết và biến đổi bằng chứng được cung cấp thay vì yêu cầu suy ra đặc điểm sản phẩm không được nhìn thấy.</p><p>Amazon ghi nhận các vai system, user và assistant cho lời nhắc văn bản Nova. Chỉ dẫn system có thể xác lập vai viết và ràng buộc định kỳ; tin nhắn user đưa nhiệm vụ và tài liệu nguồn; vài ví dụ tiêu biểu cho thấy định dạng mong muốn. Tổ chức đầu vào dày bằng nhãn rõ, chia chỉ dẫn kết hợp thành bước riêng nếu mô hình khó xử lý quan hệ phụ thuộc. Khi dịch, nêu ngôn ngữ đích, có giữ tên riêng không và thuật ngữ nào phải giữ nguyên. Họ version1 được huấn luyện cho hơn 200 ngôn ngữ, tối ưu tập nhỏ hơn, nên không mặc định chất lượng giống nhau ở mọi phương ngữ.</p><p>Micro hỗ trợ truyền phát phản hồi và gọi công cụ phía khách. Mô hình cũng hỗ trợ đệm lời nhắc trong hồ sơ phục vụ Amazon ghi nhận. Lưu đệm tường minh cần ít nhất 1K token mỗi điểm kiểm tra và cho phép tối đa bốn điểm giữ năm phút. Nhà cung cấp giới hạn đệm lời nhắc ở 20K token, chủ yếu cho lời nhắc văn bản; hạn mức đệm khác toàn bộ cửa sổ ngữ cảnh. Với trợ lý dựa trên nguồn, ứng dụng có thể truy xuất văn bản liên quan hoặc thực thi hàm yêu cầu, rồi gửi kết quả quan sát lại để tạo câu trả lời cuối. Bản thân mô hình không phải công cụ truy xuất thông tin trực tiếp. Khi phản hồi phụ thuộc chính sách hiện hành hay kho tri thức riêng, đưa nguồn liên quan thực tế. Định dạng JSON yêu cầu có thể hữu ích cho phân loại hoặc trích xuất, nhưng hồ sơ nhà cung cấp không liệt kê cưỡng chế đầu ra có cấu trúc là tính năng hỗ trợ; nêu cách xử lý giá trị thiếu và kiểm tra các trường trả về.</p><p>Vai trò khác ở thế hệ đầu là tùy chỉnh: Amazon ghi nhận tinh chỉnh Micro bằng ví dụ có nhãn và chưng cất kiến thức nhiệm vụ vào nó từ Nova Pro hoặc Premier. Biến thể tùy chỉnh là quy trình riêng, không phải năng lực âm thầm thay đổi bản cơ sở. Với mô hình thường, đánh giá tạo phẩm hoàn tất theo bản yêu cầu: dữ kiện cung cấp phải nguyên vẹn, thuộc tính quan trọng không biến mất và văn phong khớp yêu cầu. Micro cũng có thể tạo mã, nhưng các kết quả ấy không kèm quét bảo mật hoặc kết quả thực thi tự động.</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 · Anthropic Messages</b> <code>POST /v1/messages</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>json</code>, <code>sse</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>amazon/nova-micro-v1</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></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[].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>user, assistant</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>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=\"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\">max_tokens</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>integer</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></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 UTF-8</p><p class=\"note-s\"><code>Chuỗi 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, max_tokens</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>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>text_file_material</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>Đọc tài liệu UTF-8 thực tế và đặt nội dung văn bản vào chuỗi đầu vào hoặc nội dung thông điệp được chỉ định.</td></tr></tbody></table></div><p>Vòng đời: <code>synchronous_or_streamed</code></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>Mức giá tiêu chuẩn <span class=\"note-s\">Khi chọn chế độ nhanh</span></dd><dt>Chế độ Flex</dt><dd>Mức giá tiêu chuẩn <span class=\"note-s\">Khi chọn chế độ flex</span></dd><dt>Mức độ suy luận tối đa</dt><dd>Mức giá tiêu chuẩn <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><p class=\"note-s\">Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Biểu mức phí</th><th>Token ngữ cảnh, lớn hơn</th><th>Token ngữ cảnh, tối đa và bao gồm</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=\"Token ngữ cảnh, lớn hơn\"><span class=\"card-cell-label\">Token ngữ cảnh, lớn hơn</span>—</td><td data-cell-label=\"Token ngữ cảnh, tối đa và bao gồm\"><span class=\"card-cell-label\">Token ngữ cảnh, tối đa và bao gồm</span>Không có giới hạn trê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.00007</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra</span> <b>$0.00028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm</span> <b>—</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><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Bậc 1 theo độ dài yêu cầu</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>—</td><td data-cell-label=\"Token ngữ cảnh, lớn hơn\"><span class=\"card-cell-label\">Token ngữ cảnh, lớn hơn</span>0</td><td data-cell-label=\"Token ngữ cảnh, tối đa và bao gồm\"><span class=\"card-cell-label\">Token ngữ cảnh, tối đa và bao gồm</span>Không có giới hạn trê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.00007</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra</span> <b>$0.00028</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm</span> <b>—</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 · Anthropic Messages</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-1020-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1020-panel-0\" aria-selected=\"true\" tabindex=\"0\">Nội dung yêu cầu JSON tối thiểu, đầy đủ</button><button class=\"cg-tab\" id=\"model-code-1020-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1020-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · dùng tài liệu UTF-8 của bạn</button><button class=\"cg-tab\" id=\"model-code-1020-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1020-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Python · lưu kết quả đầy đủ</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-1020-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1020-tab-0\"><pre data-lang=\"json\"><code>{\n  &quot;model&quot;: &quot;amazon/nova-micro-v1&quot;,\n  &quot;max_tokens&quot;: 128,\n  &quot;messages&quot;: [\n    {\n      &quot;role&quot;: &quot;user&quot;,\n      &quot;content&quot;: &quot;Summarize the incident report.&quot;\n    }\n  ],\n  &quot;stream&quot;: false\n}</code></pre></div><div class=\"cg-pane\" id=\"model-code-1020-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1020-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}&quot;\nexport AILOOT_TEXT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;amazon/nova-micro-v1&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nPath(&#39;request.json&#39;).write_text(json.dumps(payload, ensure_ascii=False), encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H &quot;x-api-key: $AILOOT_API_KEY&quot; -H &#39;anthropic-version: 2023-06-01&#39; -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\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1020-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-1020-tab-2\" hidden><pre data-lang=\"python\"><code>import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ[&#39;AILOOT_TEXT_FILE&#39;])\nif not source_file.is_file():\n    raise SystemExit(&#39;Set AILOOT_TEXT_FILE to your actual UTF-8 document&#39;)\ntext = source_file.read_text(encoding=&#39;utf-8&#39;)\nif not text.strip():\n    raise SystemExit(&#39;Choose a document containing text&#39;)\npayload = {&#39;model&#39;: &#39;amazon/nova-micro-v1&#39;, &#39;max_tokens&#39;: 128, &#39;messages&#39;: [{&#39;role&#39;: &#39;user&#39;, &#39;content&#39;: &#39;Summarize the incident report.&#39;}]}\npayload[&#39;messages&#39;][0][&#39;content&#39;] = &#39;Summarize this material and quote supporting source passages.\\n\\n&#39; + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ[&#39;AILOOT_API_KEY&#39;]\nif not api_key.strip():\n    raise SystemExit(&#39;Set AILOOT_API_KEY before making a request&#39;)\nheaders = {&#39;x-api-key&#39;: &#39;PLACEHOLDER_KEY&#39;, &#39;anthropic-version&#39;: &#39;2023-06-01&#39;, &#39;Content-Type&#39;: &#39;application/json&#39;}\nheaders[&#39;x-api-key&#39;] = api_key\nrequest = Request(&#39;https://api.ailoot.ai/v1/messages&#39;, data=json.dumps(payload, ensure_ascii=False).encode(&#39;utf-8&#39;), headers=headers, method=&#39;POST&#39;)\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path(&#39;response-headers.txt&#39;).write_text(str(response.headers), encoding=&#39;utf-8&#39;)\nexcept HTTPError as error:\n    Path(&#39;result.json&#39;).write_bytes(error.read())\n    Path(&#39;response-headers.txt&#39;).write_text(str(error.headers), encoding=&#39;utf-8&#39;)\n    raise\nPath(&#39;result.json&#39;).write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path(&#39;result.json&#39;).read_text(encoding=&#39;utf-8&#39;))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\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 · Anthropic Messages</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 khối nội dung, chữ ký suy nghĩ và ID sử dụng công cụ thực tế. Ghép tất cả các phần thay đổi của khối SSE; khối văn bản đầu tiên không phải toàn bộ đầu ra.</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\">id</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\">model</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\">content[]</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>text|thinking|tool_use|other content block</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">stop_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=amazon%2Fnova-micro-v1&amp;route=Ultra&amp;caller=amazon%2Fnova-micro-v1&amp;fmt=messages\"><code>amazon/nova-micro-v1</code></a></span></p><h4>Bí danh đường dẫn phương thức</h4><p class=\"note-s\">Dùng các đường dẫn phương thức hiển thị ở trên.</p><h4>ID gọi liên quan</h4><p class=\"note-s\"><a href=\"#m=amazon%2Fnova-micro-v1&amp;route=Ultra&amp;caller=amazon%2Fnova-micro-v1&amp;fmt=messages\"><code>amazon/nova-micro-v1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "amazon/nova-micro-v1",
        "fmt": "messages",
        "http": "POST",
        "path": "/v1/messages",
        "request_model_id": "amazon/nova-micro-v1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|messages|/v1/messages|amazon%2Fnova-micro-v1",
      "ordinal": 1,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "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"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "amazon/nova-micro-v1",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "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": "Chuỗi messages[].content",
                "required_material": "Văn bản UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Giữ mọi khối nội dung, chữ ký suy nghĩ và ID sử dụng công cụ thực tế. Ghép tất cả các phần thay đổi của khối SSE; khối văn bản đầu tiên không phải toàn bộ đầu ra.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_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": [
                  "amazon/nova-micro-v1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "amazon/nova-micro-v1"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "amazon/nova-micro-v1",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Đọc tài liệu UTF-8 thực tế và đặt nội dung văn bản vào chuỗi đầu vào hoặc nội dung thông điệp được chỉ định."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Giá cơ sở cho token",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Bậc 1 theo độ dài yêu cầu",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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": "{\n  \"model\": \"amazon/nova-micro-v1\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'amazon/nova-micro-v1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -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\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'amazon/nova-micro-v1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 0.07,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0.28,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Chế độ nhanh",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ nhanh"
          },
          {
            "label": "Chế độ Flex",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ flex"
          },
          {
            "label": "Mức độ suy luận tối đa",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa"
          }
        ],
        "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.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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": "amazon/nova-micro-v1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": null,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.07,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 0.28,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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": "amazon/nova-micro-v1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "df59c24420457e8dbaf76d3224112d60fa34d276677857377d6ab5a2dcadfa85",
    "input_html_sha256": "84cfe948e3fce3b2b5086a4002ecd789915940f04638ced92bef7f32dfb8ec66",
    "private_audit_sha256": "7eeb9c44d9167369aaaa771c6095e22f09b85be20babc5ab490553a3eaec9864",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/amazon-nova-micro-v1/",
    "description": "Amazon Nova Micro là mô hình chỉ văn bản trong họ Nova thế hệ đầu. Mô hình dành cho nhiệm vụ ngôn ngữ độ trễ thấp như tóm tắt, dịch, phân loại, hỏi đáp và biến dữ kiện đã cung cấp thành nội dung ngắn gọn.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/amazon-nova-micro-v1/index.md",
    "title": "Amazon: Nova Micro 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/vi/amazon-nova-micro-v1/"
  },
  "practicalHtml": "<h3>Tác vụ thực tế</h3><p>Ví dụ kỹ thuật bằng tiếng Anh</p><pre><code>Product copy from supplied specifications\n\nTurn these attributes into a neutral 45-word catalog paragraph: folding desk, oak veneer, steel frame, 90 × 50 cm top, two height positions, flat-pack delivery. Follow it with missing specifications a buyer might need. Use only the supplied attributes and avoid claims about durability, sustainability or maximum load.</code></pre><h4>Kết quả mong đợi</h4><pre><code>One short product paragraph followed by a separate missing-specifications list.</code></pre><h4>Kiểm tra kết quả</h4><pre><code>Every stated product feature is in the supplied attributes; unknown load capacity stays in the missing list.</code></pre>",
  "practicalText": "Tác vụ thực tế Ví dụ kỹ thuật bằng tiếng Anh Product copy from supplied specifications Turn these attributes into a neutral 45-word catalog paragraph: folding desk, oak veneer, steel frame, 90 × 50 cm top, two height positions, flat-pack delivery. Follow it with missing specifications a buyer might need. Use only the supplied attributes and avoid claims about durability, sustainability or maximum load. Kết quả mong đợi One short product paragraph followed by a separate missing-specifications list. Kiểm tra kết quả Every stated product feature is in the supplied attributes; unknown load capacity stays in the missing list.",
  "rawModel": {
    "about": "Amazon Nova Micro là mô hình Nova thế hệ đầu chỉ văn bản của Amazon, dành cho phản hồi độ trễ thấp trong quy trình ngôn ngữ thường ngày. Mô hình nhận và trả văn bản. Ví dụ của Amazon gồm tóm tắt thông tin đã cung cấp, dịch, phân loại văn bản, trả lời câu hỏi và tạo nội dung viết gọn. Micro hữu ích khi ứng dụng đã thu thập dữ kiện và cần biến đổi tập trung, như chuyển thuộc tính sản phẩm thành đoạn danh mục hoặc biến ghi chú họp thành danh sách hành động.\n\nHướng dẫn Nova thế hệ đầu nêu cửa sổ ngữ cảnh 128K token và đầu ra tối đa 10K token. Mốc kiến thức được ghi nhận là tháng 10 năm 2024. Ngữ cảnh làm việc này nhỏ hơn cửa sổ 300K của Nova Lite, Pro hoặc 1 triệu token của Premier. Dùng dung lượng sẵn có cho văn bản mà câu trả lời thực sự phụ thuộc: đoạn nguồn, ví dụ và hội thoại liên quan. Xác định tạo phẩm mong muốn là phản hồi ngắn, nhãn danh mục, bản dịch hay tập trường trích xuất. Hạn mức ngữ cảnh rộng không đòi hỏi câu trả lời dài; độ dài và cấu trúc đầu ra rõ ràng giúp kết quả hữu ích.\n\nPhạm vi của Micro là văn bản, không phải hiểu hình ảnh, video hay âm thanh nguyên bản. Với thông tin ban đầu nằm trong tài liệu hoặc tệp media, đưa văn bản trích xuất hoặc bản chép lời. Bản yêu cầu nội dung sản phẩm có thể chứa tên, kích thước, vật liệu, biến thể và phong cách bắt buộc, rồi yêu cầu một đoạn chỉ dùng các thuộc tính ấy. Ví dụ cụ thể có thể yêu cầu mô tả trung tính và danh sách thông số còn thiếu riêng. Cách này dùng mô hình như người viết và biến đổi bằng chứng được cung cấp thay vì yêu cầu suy ra đặc điểm sản phẩm không được nhìn thấy.\n\nAmazon ghi nhận các vai system, user và assistant cho lời nhắc văn bản Nova. Chỉ dẫn system có thể xác lập vai viết và ràng buộc định kỳ; tin nhắn user đưa nhiệm vụ và tài liệu nguồn; vài ví dụ tiêu biểu cho thấy định dạng mong muốn. Tổ chức đầu vào dày bằng nhãn rõ, chia chỉ dẫn kết hợp thành bước riêng nếu mô hình khó xử lý quan hệ phụ thuộc. Khi dịch, nêu ngôn ngữ đích, có giữ tên riêng không và thuật ngữ nào phải giữ nguyên. Họ version1 được huấn luyện cho hơn 200 ngôn ngữ, tối ưu tập nhỏ hơn, nên không mặc định chất lượng giống nhau ở mọi phương ngữ.\n\nMicro hỗ trợ truyền phát phản hồi và gọi công cụ phía khách. Mô hình cũng hỗ trợ đệm lời nhắc trong hồ sơ phục vụ Amazon ghi nhận. Lưu đệm tường minh cần ít nhất 1K token mỗi điểm kiểm tra và cho phép tối đa bốn điểm giữ năm phút. Nhà cung cấp giới hạn đệm lời nhắc ở 20K token, chủ yếu cho lời nhắc văn bản; hạn mức đệm khác toàn bộ cửa sổ ngữ cảnh. Với trợ lý dựa trên nguồn, ứng dụng có thể truy xuất văn bản liên quan hoặc thực thi hàm yêu cầu, rồi gửi kết quả quan sát lại để tạo câu trả lời cuối. Bản thân mô hình không phải công cụ truy xuất thông tin trực tiếp. Khi phản hồi phụ thuộc chính sách hiện hành hay kho tri thức riêng, đưa nguồn liên quan thực tế. Định dạng JSON yêu cầu có thể hữu ích cho phân loại hoặc trích xuất, nhưng hồ sơ nhà cung cấp không liệt kê cưỡng chế đầu ra có cấu trúc là tính năng hỗ trợ; nêu cách xử lý giá trị thiếu và kiểm tra các trường trả về.\n\nVai trò khác ở thế hệ đầu là tùy chỉnh: Amazon ghi nhận tinh chỉnh Micro bằng ví dụ có nhãn và chưng cất kiến thức nhiệm vụ vào nó từ Nova Pro hoặc Premier. Biến thể tùy chỉnh là quy trình riêng, không phải năng lực âm thầm thay đổi bản cơ sở. Với mô hình thường, đánh giá tạo phẩm hoàn tất theo bản yêu cầu: dữ kiện cung cấp phải nguyên vẹn, thuộc tính quan trọng không biến mất và văn phong khớp yêu cầu. Micro cũng có thể tạo mã, nhưng các kết quả ấy không kèm quét bảo mật hoặc kết quả thực thi tự động.",
    "alias_of": null,
    "aliases": [],
    "author": "Amazon",
    "available": null,
    "canonical_model": "amazon/nova-micro-v1",
    "capabilities": {
      "context_length": 128000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "text"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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,
    "entity_type": "model",
    "formats": [
      "chat",
      "messages"
    ],
    "id": "amazon/nova-micro-v1",
    "input": [
      "text"
    ],
    "kind": "text",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "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.",
              "A model-dependent field needs the exact published model profile; unspecified defaults/enums are not guessed.",
              "Tool calls propose actions; the client application returns actual observations with the returned call ID.",
              "Guarded canonical keys must occur once; duplicate or case-varied model/tools/cap fields are rejected."
            ],
            "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",
              "function_tool_continuation",
              "streaming"
            ],
            "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": [
                  "amazon/nova-micro-v1"
                ],
                "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",
                "conditions": "Các vai trò này được biểu diễn rõ trong các kiểu tương thích của mã nguồn; tập vai trò chính xác vẫn tùy từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": [
                  "system",
                  "user",
                  "assistant",
                  "tool",
                  "function"
                ],
                "enum_exhaustive": false,
                "enum_known": true,
                "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|content_part[]|null"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_calls",
                "required": false,
                "type": "tool_call[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].tool_call_id",
                "required": false,
                "type": "string",
                "when": "role=tool; dùng ID thực tế được trả về"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].name",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_content",
                "required": false,
                "type": "string",
                "when": "Gửi lại dữ liệu suy luận thực tế đã được trả về khi mô hình này sử dụng dữ liệu đó"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].reasoning_details",
                "required": false,
                "type": "object|array"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "max_completion_tokens",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stream_options.include_usage",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "top_p",
                "required": false,
                "type": "number"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "stop",
                "required": false,
                "type": "string|string[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "required": false,
                "type": "function_tool[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": [
                  "function"
                ],
                "enum_known": true,
                "name": "tools[].type",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.name",
                "required": true,
                "type": "string",
                "when": "Có cung cấp công cụ hàm"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.description",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools[].function.parameters",
                "required": false,
                "type": "JSON_schema"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tool_choice",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "parallel_tool_calls",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "response_format",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning_effort",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "reasoning",
                "required": false,
                "type": "object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_compatibility",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "instructions",
                "required": false,
                "type": "string"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "functions",
                "required": false,
                "type": "function[]"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "function_call",
                "required": false,
                "type": "string|object"
              },
              {
                "availability": "model_dependent",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "prompt_cache_options",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "text"
                ],
                "enum_known": true,
                "name": "modalities",
                "required": false,
                "type": "string[]"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options bị từ chối trên tuyến văn bản Ultra này",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              },
              {
                "availability": "source_interface",
                "conditions": "1h bị từ chối tại các vị trí lưu đệm prompt thực tế",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "cache_control.ttl",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "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": "Tùy từng mô hình; công cụ hàm của người dùng khác với công cụ do dịch vụ cung cấp",
            "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",
              "temperature",
              "top_p",
              "stop",
              "max_tokens",
              "max_completion_tokens",
              "reasoning",
              "response_format",
              "tools",
              "tool_choice"
            ],
            "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": [],
          "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.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Bậc 1 theo độ dài yêu cầu",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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\": \"amazon/nova-micro-v1\", \"messages\": [{\"role\": \"user\", \"content\": \"Explain the difference between an observation and a hypothesis in three sentences.\"}]}')\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='amazon/nova-micro-v1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}])\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"
          },
          {
            "code": "from openai import OpenAI\nimport os\nfrom pathlib import Path\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)\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\nwith client.chat.completions.stream(model='amazon/nova-micro-v1',messages=[{\"role\":\"user\",\"content\":\"Explain observations and hypotheses in three sentences.\"}]) as stream:\n    with Path(\"stream-events.jsonl\").open(\"w\",encoding=\"utf-8\") as log:\n        for event in stream:\n            payload=event.to_dict(mode=\"json\")\n            log.write(json.dumps(payload,ensure_ascii=False)+\"\\n\"); log.flush()\n            print(json.dumps(payload,ensure_ascii=False))\n    final=stream.get_final_completion()\n    save_result(final.to_dict(mode=\"json\"),\"stream-result\")\n",
            "label": "Python SDK streaming · all events",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "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": 0.07,
        "input": [
          "text"
        ],
        "label": "OpenAI Chat",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0.28,
        "output": [
          "text"
        ],
        "path": "/v1/chat/completions",
        "price_conditions": [
          {
            "label": "Chế độ nhanh",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ nhanh"
          },
          {
            "label": "Chế độ Flex",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ flex"
          },
          {
            "label": "Mức độ suy luận tối đa",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa"
          }
        ],
        "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.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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": "amazon/nova-micro-v1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": null,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.07,
            "input_multiplier": null,
            "interval_boundary": "min_exclusive_max_inclusive",
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "null_rate_policy": "unknown or inherited; never zero",
            "out": 0.28,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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"
          }
        ]
      },
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "authentication": {
              "api_key_source": "AILOOT_API_KEY",
              "headers": [
                "Authorization: Bearer",
                "x-api-key",
                "anthropic-version"
              ],
              "version_example": "2023-06-01"
            },
            "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"
              }
            ],
            "example_body": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "amazon/nova-micro-v1",
              "stream": false
            },
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/messages"
              },
              "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": "Chuỗi messages[].content",
                "required_material": "Văn bản UTF-8"
              }
            ],
            "operation_modes": [
              "synchronous_json",
              "streamed_SSE"
            ],
            "outputs": {
              "all_results": "Giữ mọi khối nội dung, chữ ký suy nghĩ và ID sử dụng công cụ thực tế. Ghép tất cả các phần thay đổi của khối SSE; khối văn bản đầu tiên không phải toàn bộ đầu ra.",
              "family": "protocol",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "content[]",
                  "type": "text|thinking|tool_use|other content block"
                },
                {
                  "description": null,
                  "name": "stop_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": [
                  "amazon/nova-micro-v1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages",
                "required": true,
                "type": "message[]"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "user",
                  "assistant"
                ],
                "enum_known": true,
                "name": "messages[].role",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "messages[].content",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "max_tokens",
                "required": true,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "stream",
                "required": false,
                "type": "boolean"
              }
            ],
            "profile_binding": "Documented current stock Messages bridge; optional model capabilities are separate from this minimal text request.",
            "request_schema": {
              "additionalProperties": false,
              "properties": {
                "max_tokens": {
                  "minimum": 1,
                  "type": "integer"
                },
                "messages": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "content": {
                        "oneOf": [
                          {
                            "type": "string"
                          },
                          {
                            "items": {
                              "oneOf": [
                                {
                                  "properties": {
                                    "text": {
                                      "type": "string"
                                    },
                                    "type": {
                                      "const": "text"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "text"
                                  ],
                                  "type": "object"
                                },
                                {
                                  "properties": {
                                    "source": {
                                      "oneOf": [
                                        {
                                          "properties": {
                                            "type": {
                                              "const": "url"
                                            },
                                            "url": {
                                              "type": "string"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "url"
                                          ],
                                          "type": "object"
                                        },
                                        {
                                          "properties": {
                                            "data": {
                                              "type": "string"
                                            },
                                            "media_type": {
                                              "type": "string"
                                            },
                                            "type": {
                                              "const": "base64"
                                            }
                                          },
                                          "required": [
                                            "type",
                                            "media_type",
                                            "data"
                                          ],
                                          "type": "object"
                                        }
                                      ]
                                    },
                                    "type": {
                                      "const": "image"
                                    }
                                  },
                                  "required": [
                                    "type",
                                    "source"
                                  ],
                                  "type": "object"
                                }
                              ]
                            },
                            "type": "array"
                          }
                        ]
                      },
                      "role": {
                        "enum": [
                          "user",
                          "assistant"
                        ],
                        "type": "string"
                      }
                    },
                    "required": [
                      "role",
                      "content"
                    ],
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "model": {
                  "enum": [
                    "amazon/nova-micro-v1"
                  ],
                  "type": "string"
                },
                "stream": {
                  "default": false,
                  "type": "boolean"
                }
              },
              "required": [
                "model",
                "messages",
                "max_tokens"
              ],
              "type": "object"
            },
            "schema_template": {
              "max_tokens": 128,
              "messages": [
                {
                  "content": "Summarize the incident report.",
                  "role": "user"
                }
              ],
              "model": "amazon/nova-micro-v1",
              "stream": false
            },
            "unsupported": [
              "No query API key.",
              "Hosted/server-side tools and model-specific optional controls are not part of this minimal family example."
            ]
          },
          "input": {
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional_controls": [
              "stream"
            ],
            "required": [
              "model",
              "messages",
              "max_tokens"
            ],
            "text_file_material": "Đọc tài liệu UTF-8 thực tế và đặt nội dung văn bản vào chuỗi đầu vào hoặc nội dung thông điệp được chỉ định."
          },
          "lifecycle": {
            "create": {
              "http": "POST",
              "path": "/v1/messages"
            },
            "job_read": null,
            "mode": "synchronous_or_streamed",
            "unknown": "Keep request/response IDs and headers. No generic text job retrieval URL is supplied."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/messages"
          },
          "output": {
            "all_results": "Keep all content blocks, thinking signatures and actual tool-use IDs. Assemble all SSE block deltas; a first text block is not the complete output.",
            "family": "protocol",
            "format": "JSON or SSE"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Giá cơ sở cho token",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Bậc 1 theo độ dài yêu cầu",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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": "{\n  \"model\": \"amazon/nova-micro-v1\",\n  \"max_tokens\": 128,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Summarize the incident report.\"\n    }\n  ],\n  \"stream\": false\n}",
            "label": "Complete minimal JSON body",
            "language": "json"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}\"\nexport AILOOT_TEXT_FILE\npython3 - <<'PY_REQUEST'\nimport json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'amazon/nova-micro-v1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nPath('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \\\n  -H \"x-api-key: $AILOOT_API_KEY\" -H 'anthropic-version: 2023-06-01' -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\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\nPY_RESULT\n",
            "label": "curl · use your UTF-8 document",
            "language": "bash"
          },
          {
            "code": "import json, os\nfrom pathlib import Path\n\nsource_file = Path(os.environ['AILOOT_TEXT_FILE'])\nif not source_file.is_file():\n    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')\ntext = source_file.read_text(encoding='utf-8')\nif not text.strip():\n    raise SystemExit('Choose a document containing text')\npayload = {'model': 'amazon/nova-micro-v1', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}\npayload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\\n\\n' + text\nfrom urllib.request import Request, urlopen\nfrom urllib.error import HTTPError\n\napi_key = os.environ['AILOOT_API_KEY']\nif not api_key.strip():\n    raise SystemExit('Set AILOOT_API_KEY before making a request')\nheaders = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}\nheaders['x-api-key'] = api_key\nrequest = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')\ntry:\n    with urlopen(request, timeout=120) as response:\n        raw = response.read()\n        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')\nexcept HTTPError as error:\n    Path('result.json').write_bytes(error.read())\n    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')\n    raise\nPath('result.json').write_bytes(raw)\nimport json\nfrom pathlib import Path\n\nresult = json.loads(Path('result.json').read_text(encoding='utf-8'))\nprint(json.dumps(result, ensure_ascii=False, indent=2))\n",
            "label": "Python · save the complete result",
            "language": "python"
          }
        ],
        "family": "anthropic",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "messages",
        "http": "POST",
        "in": 0.07,
        "input": [
          "text"
        ],
        "label": "Anthropic Messages",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0.28,
        "output": [
          "json",
          "sse"
        ],
        "path": "/v1/messages",
        "price_conditions": [
          {
            "label": "Chế độ nhanh",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ nhanh"
          },
          {
            "label": "Chế độ Flex",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi chọn chế độ flex"
          },
          {
            "label": "Mức độ suy luận tối đa",
            "value": "Mức giá tiêu chuẩn",
            "when": "Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa"
          }
        ],
        "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.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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"
              }
            ]
          },
          {
            "dimensions": {
              "max_context_tokens_inclusive": null,
              "min_context_tokens_exclusive": 0
            },
            "label": "Request-length tier 1",
            "units": [
              {
                "amount": "0.00007000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000007",
                "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.00028000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0.00000028",
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "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": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "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": "amazon/nova-micro-v1",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [
          {
            "cache_read": null,
            "cache_read_multiplier": null,
            "cache_write": null,
            "cache_write_1h": null,
            "cache_write_multiplier": null,
            "created_at": "0001-01-01T00:00:00Z",
            "in": 0.07,
            "input_multiplier": null,
            "max": null,
            "max_tokens": null,
            "min": 0,
            "min_tokens": 0,
            "out": 0.28,
            "output_multiplier": null,
            "per_request_price": null,
            "sort_order": 0,
            "tier_label": "",
            "updated_at": "0001-01-01T00:00:00Z"
          }
        ],
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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": "amazon/nova-micro-v1",
        "request_model_id": "amazon/nova-micro-v1",
        "route_label": "Ultra"
      }
    ],
    "name": "Amazon: Nova Micro 1.0",
    "price": {
      "in": 0.07,
      "in_label": null,
      "out": 0.28,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.07,
      "sort_out": 0.28,
      "varies": true
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "OpenAI Chat · Base token rates",
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": null,
          "min_context_tokens_exclusive": 0
        },
        "label": "OpenAI Chat · Request-length tier 1",
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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"
          }
        ]
      },
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Anthropic Messages · Base token rates",
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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"
          }
        ]
      },
      {
        "dimensions": {
          "max_context_tokens_inclusive": null,
          "min_context_tokens_exclusive": 0
        },
        "label": "Anthropic Messages · Request-length tier 1",
        "units": [
          {
            "amount": "0.00007000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000007",
            "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.00028000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0.00000028",
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "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": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "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"
          }
        ]
      }
    ],
    "public_id": "amazon/nova-micro-v1",
    "short": "Amazon Nova Micro là mô hình chỉ văn bản trong họ Nova thế hệ đầu. Mô hình dành cho nhiệm vụ ngôn ngữ độ trễ thấp như tóm tắt, dịch, phân loại, hỏi đáp và biến dữ kiện đã cung cấp thành nội dung ngắn gọ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
        },
        {
          "contract_json_pointer": "/methods/1/rawMethod/contract",
          "html_json_pointer": "/methods/1/html",
          "method_ordinal": 1
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod",
        "/methods/1/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Amazon Nova Micro là mô hình chỉ văn bản trong họ Nova thế hệ đầu. Mô hình dành cho nhiệm vụ ngôn ngữ độ trễ thấp như tóm tắt, dịch, phân loại, hỏi đáp và biến dữ kiện đã cung cấp thành nội dung ngắn gọn.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "8cef0199e11c3b952cd07cddbb1597c876118925543324419438f39d2d4a1cc9",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "2d666e97132bcbb65da5d0245033a47ab8fa1c7b65ff9c4e87388f0eef9783fd"
}
