{
  "aboutHtml": "<p>Voyage Context 3 tạo embedding khối có ngữ cảnh để truy xuất tài liệu. Mỗi khối nhận vector riêng, trong khi mô hình còn xét các khối khác được cung cấp từ cùng tài liệu. Nhờ đó, hệ thống truy xuất có biểu diễn của đoạn cục bộ cùng ngữ cảnh tài liệu rộng hơn, như thực thể hoặc chủ đề được giới thiệu ở nơi khác trong nguồn.</p><p>Chuẩn bị mỗi tài liệu thành chuỗi khối văn bản dễ đọc theo thứ tự. Giữ các khối của một tài liệu cùng nhau và bảo toàn thứ tự gốc. Trong quy trình tạo embedding có ngữ cảnh của nhà sản xuất, mỗi nhóm bên trong chứa các khối của một nguồn, còn các nhóm riêng biểu diễn các nguồn riêng. Cách nhóm này là một phần ý nghĩa của đầu vào: nó cho mô hình biết văn bản xung quanh nào thuộc tài liệu đang được biểu diễn.</p><p>Trường hợp hữu ích là báo cáo nêu công ty ở phần mở đầu, còn đoạn sau giải thích tăng trưởng của công ty. Tìm kiếm về tăng trưởng của công ty đó cần cả đoạn cụ thể lẫn thông tin định danh tài liệu. Giữ văn bản khối gốc và siêu dữ liệu của tài liệu cha cùng vector kết quả để hiển thị đoạn và liên kết đến nguồn đầy đủ.</p><p>Tài liệu tham chiếu của nhà sản xuất ghi nhận tối đa 120 000 token trên toàn yêu cầu, không quá 1 000 nhóm đầu vào và tổng cộng 16 000 khối. Hướng dẫn mô hình nêu riêng cửa sổ 32 000 token cho mỗi khối. Giữ tách biệt các phạm vi này khi chuẩn bị tài liệu: giới hạn một khối và giới hạn toàn yêu cầu mô tả các kích thước đầu vào khác nhau. Kiểm tra tổng sau khi chia nguồn, thay vì giả định mọi khối đều có thể đạt mức tối đa trong cùng một yêu cầu.</p><p>Với truy xuất tài liệu, xác định các đoạn đã nhóm là đầu vào tài liệu. Chuẩn bị mỗi câu hỏi tìm kiếm thành nhóm truy vấn riêng. Nhà sản xuất khuyến nghị các khối tài liệu được cung cấp không chồng lấn, để biểu diễn có ngữ cảnh mang thông tin xung quanh mà không lặp văn bản trong từng đoạn. Giữ sự tương ứng giữa nhóm tài liệu, vị trí khối và vector trả về khi ghi chỉ mục.</p><p>Voyage Context 3 hỗ trợ 2 048, 1 024, 512 và 256 chiều, với lựa chọn đầu ra dấu phẩy động, số nguyên tám bit và nhị phân. Chọn biểu diễn chỉ mục rồi đánh giá trên cùng tài liệu nguồn và câu hỏi. Giữ số chiều và kiểu dữ liệu đã chọn cùng chỉ mục để biểu diễn truy vấn và vector lưu trữ nhất quán.</p><p>Dùng các vector kết quả trong tìm kiếm đoạn, tìm tài liệu hoặc bước truy xuất của trợ lý làm việc với báo cáo, bài nghiên cứu, hợp đồng hay tài liệu kỹ thuật. Kết quả có thể xác định đoạn tập trung, còn liên kết nguồn cho phép truy cập định nghĩa và các điều kiện ở nơi khác trong tài liệu. Giữ phiên bản tài liệu và quyền truy cập dưới dạng siêu dữ liệu ứng dụng bên cạnh vector.</p><p>Thử các câu hỏi cần cả chi tiết cục bộ và ngữ cảnh cấp tài liệu. Bao gồm các đoạn tương tự từ nguồn khác nhau, thực thể có tên chỉ được giới thiệu ở đầu và câu hỏi có bằng chứng trải trên nhiều phần. Kiểm tra khối mong đợi có được truy xuất không, và ứng dụng có trình bày đủ văn bản xung quanh để diễn giải không. Khi nguồn thay đổi, chủ động tạo lại nhóm tài liệu bị ảnh hưởng để các khối có ngữ cảnh tương ứng với một phiên bản nhất quán.</p>",
  "aboutText": "Voyage Context 3 tạo embedding khối có ngữ cảnh để truy xuất tài liệu. Mỗi khối nhận vector riêng, trong khi mô hình còn xét các khối khác được cung cấp từ cùng tài liệu. Nhờ đó, hệ thống truy xuất có biểu diễn của đoạn cục bộ cùng ngữ cảnh tài liệu rộng hơn, như thực thể hoặc chủ đề được giới thiệu ở nơi khác trong nguồn.\n\nChuẩn bị mỗi tài liệu thành chuỗi khối văn bản dễ đọc theo thứ tự. Giữ các khối của một tài liệu cùng nhau và bảo toàn thứ tự gốc. Trong quy trình tạo embedding có ngữ cảnh của nhà sản xuất, mỗi nhóm bên trong chứa các khối của một nguồn, còn các nhóm riêng biểu diễn các nguồn riêng. Cách nhóm này là một phần ý nghĩa của đầu vào: nó cho mô hình biết văn bản xung quanh nào thuộc tài liệu đang được biểu diễn.\n\nTrường hợp hữu ích là báo cáo nêu công ty ở phần mở đầu, còn đoạn sau giải thích tăng trưởng của công ty. Tìm kiếm về tăng trưởng của công ty đó cần cả đoạn cụ thể lẫn thông tin định danh tài liệu. Giữ văn bản khối gốc và siêu dữ liệu của tài liệu cha cùng vector kết quả để hiển thị đoạn và liên kết đến nguồn đầy đủ.\n\nTài liệu tham chiếu của nhà sản xuất ghi nhận tối đa 120 000 token trên toàn yêu cầu, không quá 1 000 nhóm đầu vào và tổng cộng 16 000 khối. Hướng dẫn mô hình nêu riêng cửa sổ 32 000 token cho mỗi khối. Giữ tách biệt các phạm vi này khi chuẩn bị tài liệu: giới hạn một khối và giới hạn toàn yêu cầu mô tả các kích thước đầu vào khác nhau. Kiểm tra tổng sau khi chia nguồn, thay vì giả định mọi khối đều có thể đạt mức tối đa trong cùng một yêu cầu.\n\nVới truy xuất tài liệu, xác định các đoạn đã nhóm là đầu vào tài liệu. Chuẩn bị mỗi câu hỏi tìm kiếm thành nhóm truy vấn riêng. Nhà sản xuất khuyến nghị các khối tài liệu được cung cấp không chồng lấn, để biểu diễn có ngữ cảnh mang thông tin xung quanh mà không lặp văn bản trong từng đoạn. Giữ sự tương ứng giữa nhóm tài liệu, vị trí khối và vector trả về khi ghi chỉ mục.\n\nVoyage Context 3 hỗ trợ 2 048, 1 024, 512 và 256 chiều, với lựa chọn đầu ra dấu phẩy động, số nguyên tám bit và nhị phân. Chọn biểu diễn chỉ mục rồi đánh giá trên cùng tài liệu nguồn và câu hỏi. Giữ số chiều và kiểu dữ liệu đã chọn cùng chỉ mục để biểu diễn truy vấn và vector lưu trữ nhất quán.\n\nDùng các vector kết quả trong tìm kiếm đoạn, tìm tài liệu hoặc bước truy xuất của trợ lý làm việc với báo cáo, bài nghiên cứu, hợp đồng hay tài liệu kỹ thuật. Kết quả có thể xác định đoạn tập trung, còn liên kết nguồn cho phép truy cập định nghĩa và các điều kiện ở nơi khác trong tài liệu. Giữ phiên bản tài liệu và quyền truy cập dưới dạng siêu dữ liệu ứng dụng bên cạnh vector.\n\nThử các câu hỏi cần cả chi tiết cục bộ và ngữ cảnh cấp tài liệu. Bao gồm các đoạn tương tự từ nguồn khác nhau, thực thể có tên chỉ được giới thiệu ở đầu và câu hỏi có bằng chứng trải trên nhiều phần. Kiểm tra khối mong đợi có được truy xuất không, và ứng dụng có trình bày đủ văn bản xung quanh để diễn giải không. Khi nguồn thay đổi, chủ động tạo lại nhóm tài liệu bị ảnh hưởng để các khối có ngữ cảnh tương ứng với một phiên bản nhất quán.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "39738f19b90e2689f077a33e02365c5ac33a7bca2cadb299ba7a4e062f7a0e9f",
    "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\">Voyage AI: Voyage Context 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Voyage AI /</span><code>voyage-context-3</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|embeddings|/v1/embeddings|voyage-context-3\">Biểu diễn nhúng</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\">Voyage Context 3 tạo một vector cho mỗi khối tài liệu, đồng thời kết hợp ngữ cảnh từ các khối khác trong cùng tài liệu. Mô hình hỗ trợ truy xuất đoạn chính xác trong tài liệu dài, với số chiều có thể chọn và embedding lượng tử hóa.</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>embedding</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>Voyage Context 3 tạo embedding khối có ngữ cảnh để truy xuất tài liệu. Mỗi khối nhận vector riêng, trong khi mô hình còn xét các khối khác được cung cấp từ cùng tài liệu. Nhờ đó, hệ thống truy xuất có biểu diễn của đoạn cục bộ cùng ngữ cảnh tài liệu rộng hơn, như thực thể hoặc chủ đề được giới thiệu ở nơi khác trong nguồn.</p><p>Chuẩn bị mỗi tài liệu thành chuỗi khối văn bản dễ đọc theo thứ tự. Giữ các khối của một tài liệu cùng nhau và bảo toàn thứ tự gốc. Trong quy trình tạo embedding có ngữ cảnh của nhà sản xuất, mỗi nhóm bên trong chứa các khối của một nguồn, còn các nhóm riêng biểu diễn các nguồn riêng. Cách nhóm này là một phần ý nghĩa của đầu vào: nó cho mô hình biết văn bản xung quanh nào thuộc tài liệu đang được biểu diễn.</p><p>Trường hợp hữu ích là báo cáo nêu công ty ở phần mở đầu, còn đoạn sau giải thích tăng trưởng của công ty. Tìm kiếm về tăng trưởng của công ty đó cần cả đoạn cụ thể lẫn thông tin định danh tài liệu. Giữ văn bản khối gốc và siêu dữ liệu của tài liệu cha cùng vector kết quả để hiển thị đoạn và liên kết đến nguồn đầy đủ.</p><p>Tài liệu tham chiếu của nhà sản xuất ghi nhận tối đa 120 000 token trên toàn yêu cầu, không quá 1 000 nhóm đầu vào và tổng cộng 16 000 khối. Hướng dẫn mô hình nêu riêng cửa sổ 32 000 token cho mỗi khối. Giữ tách biệt các phạm vi này khi chuẩn bị tài liệu: giới hạn một khối và giới hạn toàn yêu cầu mô tả các kích thước đầu vào khác nhau. Kiểm tra tổng sau khi chia nguồn, thay vì giả định mọi khối đều có thể đạt mức tối đa trong cùng một yêu cầu.</p><p>Với truy xuất tài liệu, xác định các đoạn đã nhóm là đầu vào tài liệu. Chuẩn bị mỗi câu hỏi tìm kiếm thành nhóm truy vấn riêng. Nhà sản xuất khuyến nghị các khối tài liệu được cung cấp không chồng lấn, để biểu diễn có ngữ cảnh mang thông tin xung quanh mà không lặp văn bản trong từng đoạn. Giữ sự tương ứng giữa nhóm tài liệu, vị trí khối và vector trả về khi ghi chỉ mục.</p><p>Voyage Context 3 hỗ trợ 2 048, 1 024, 512 và 256 chiều, với lựa chọn đầu ra dấu phẩy động, số nguyên tám bit và nhị phân. Chọn biểu diễn chỉ mục rồi đánh giá trên cùng tài liệu nguồn và câu hỏi. Giữ số chiều và kiểu dữ liệu đã chọn cùng chỉ mục để biểu diễn truy vấn và vector lưu trữ nhất quán.</p><p>Dùng các vector kết quả trong tìm kiếm đoạn, tìm tài liệu hoặc bước truy xuất của trợ lý làm việc với báo cáo, bài nghiên cứu, hợp đồng hay tài liệu kỹ thuật. Kết quả có thể xác định đoạn tập trung, còn liên kết nguồn cho phép truy cập định nghĩa và các điều kiện ở nơi khác trong tài liệu. Giữ phiên bản tài liệu và quyền truy cập dưới dạng siêu dữ liệu ứng dụng bên cạnh vector.</p><p>Thử các câu hỏi cần cả chi tiết cục bộ và ngữ cảnh cấp tài liệu. Bao gồm các đoạn tương tự từ nguồn khác nhau, thực thể có tên chỉ được giới thiệu ở đầu và câu hỏi có bằng chứng trải trên nhiều phần. Kiểm tra khối mong đợi có được truy xuất không, và ứng dụng có trình bày đủ văn bản xung quanh để diễn giải không. Khi nguồn thay đổi, chủ động tạo lại nhóm tài liệu bị ảnh hưởng để các khối có ngữ cảnh tương ứng với một phiên bản nhất quán.</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 · Biểu diễn nhúng</b> <code>POST /v1/embeddings</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>embedding</code></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><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>voyage-context-3</div><div>Điều kiện: Dùng bộ chọn mô hình Ailoot chính xác.</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string or array&lt;string&gt;</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>Điều kiện: Một văn bản hoặc danh sách văn bản; giữ lại một vectơ cùng chỉ số tương ứng cho mỗi mục dữ liệu đượ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></tbody></table></div><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, input</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>optional</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span></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>conditions</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>Gửi văn bản với mô hình đã chọn; giữ lại mọi vectơ được trả về và chỉ số tương ứng.</td></tr></tbody></table></div><p>Vòng đời: <code>synchronous</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>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ nhanh</span></dd><dt>Chế độ Flex</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ flex</span></dd><dt>Mức độ suy luận tối đa</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa</span></dd></dl></div><div data-declared-tariff-pricing><h4>Mức phí Ailoot</h4><h4>Giá theo cấu hình</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Biểu mức phí</th><th>Phí</th></tr></thead><tbody><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Đơn giá token cơ bản</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>Mức phí cơ bản</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Token đầu vào</span> <b>$0.0004</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra</span> <b>$0</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 · Biểu diễn nhúng</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-2791-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2791-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · lưu tất cả vector và dữ liệu sử dụng</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-2791-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2791-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON&#39;\n{\n  &quot;model&quot;: &quot;voyage-context-3&quot;,\n  &quot;input&quot;: &quot;The quick brown fox jumps over the lazy dog&quot;\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\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 embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\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></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=voyage-context-3&amp;route=Ultra&amp;caller=voyage-context-3&amp;fmt=embeddings\"><code>voyage-context-3</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=voyage-context-3&amp;route=Ultra&amp;caller=voyage-context-3&amp;fmt=embeddings\"><code>voyage-context-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyage-context-3",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyage-context-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyage-context-3",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Giữ lại phản hồi gốc và X-Client-Request-ID để đối soát. Phản hồi không rõ ràng không đồng nghĩa với việc được phép gửi lại cùng một yêu cầu tạo.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Lưu toàn bộ phản hồi JSON, từng vectơ kèm chỉ mục của nó, tất cả các trường về mức sử dụng và các trường tiêu đề của yêu cầu.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Dùng bộ chọn mô hình Ailoot chính xác.",
                "default_known": false,
                "enum": [
                  "voyage-context-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Một văn bản hoặc danh sách văn bản; giữ lại một vectơ cùng chỉ số tương ứng cho mỗi mục dữ liệu được trả về.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-context-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-context-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Gửi văn bản với mô hình đã chọn; giữ lại mọi vectơ được trả về và chỉ số tương ứng."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Đơn giá token cơ bản",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-context-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Biểu diễn nhúng",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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": "voyage-context-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "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": "voyage-context-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "ccad2656d0fdca80fd263f2803d5db9d000ba07d85dacf60d759c06099e8788e",
    "input_html_sha256": "4139d6f1184fd15eb2f8cf9a6b11f6d2d64406121a9cce31dbaf2121f7fda764",
    "private_audit_sha256": "b0b2aac44830abbfdb65a50b1744af6d3bf2d8cbc3db1273368fc31431c403a9",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/voyage-context-3/",
    "description": "Voyage Context 3 tạo một vector cho mỗi khối tài liệu, đồng thời kết hợp ngữ cảnh từ các khối khác trong cùng tài liệu. Mô hình hỗ trợ truy xuất đoạn chính xác trong tài liệu dài, với số chiều có thể chọn và embedding lượng tử hóa.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/voyage-context-3/index.md",
    "title": "Voyage AI: Voyage Context 3 — Ailoot",
    "url": "https://ailoot.ai/models/vi/voyage-context-3/"
  },
  "rawModel": {
    "about": "Voyage Context 3 tạo embedding khối có ngữ cảnh để truy xuất tài liệu. Mỗi khối nhận vector riêng, trong khi mô hình còn xét các khối khác được cung cấp từ cùng tài liệu. Nhờ đó, hệ thống truy xuất có biểu diễn của đoạn cục bộ cùng ngữ cảnh tài liệu rộng hơn, như thực thể hoặc chủ đề được giới thiệu ở nơi khác trong nguồn.\n\nChuẩn bị mỗi tài liệu thành chuỗi khối văn bản dễ đọc theo thứ tự. Giữ các khối của một tài liệu cùng nhau và bảo toàn thứ tự gốc. Trong quy trình tạo embedding có ngữ cảnh của nhà sản xuất, mỗi nhóm bên trong chứa các khối của một nguồn, còn các nhóm riêng biểu diễn các nguồn riêng. Cách nhóm này là một phần ý nghĩa của đầu vào: nó cho mô hình biết văn bản xung quanh nào thuộc tài liệu đang được biểu diễn.\n\nTrường hợp hữu ích là báo cáo nêu công ty ở phần mở đầu, còn đoạn sau giải thích tăng trưởng của công ty. Tìm kiếm về tăng trưởng của công ty đó cần cả đoạn cụ thể lẫn thông tin định danh tài liệu. Giữ văn bản khối gốc và siêu dữ liệu của tài liệu cha cùng vector kết quả để hiển thị đoạn và liên kết đến nguồn đầy đủ.\n\nTài liệu tham chiếu của nhà sản xuất ghi nhận tối đa 120 000 token trên toàn yêu cầu, không quá 1 000 nhóm đầu vào và tổng cộng 16 000 khối. Hướng dẫn mô hình nêu riêng cửa sổ 32 000 token cho mỗi khối. Giữ tách biệt các phạm vi này khi chuẩn bị tài liệu: giới hạn một khối và giới hạn toàn yêu cầu mô tả các kích thước đầu vào khác nhau. Kiểm tra tổng sau khi chia nguồn, thay vì giả định mọi khối đều có thể đạt mức tối đa trong cùng một yêu cầu.\n\nVới truy xuất tài liệu, xác định các đoạn đã nhóm là đầu vào tài liệu. Chuẩn bị mỗi câu hỏi tìm kiếm thành nhóm truy vấn riêng. Nhà sản xuất khuyến nghị các khối tài liệu được cung cấp không chồng lấn, để biểu diễn có ngữ cảnh mang thông tin xung quanh mà không lặp văn bản trong từng đoạn. Giữ sự tương ứng giữa nhóm tài liệu, vị trí khối và vector trả về khi ghi chỉ mục.\n\nVoyage Context 3 hỗ trợ 2 048, 1 024, 512 và 256 chiều, với lựa chọn đầu ra dấu phẩy động, số nguyên tám bit và nhị phân. Chọn biểu diễn chỉ mục rồi đánh giá trên cùng tài liệu nguồn và câu hỏi. Giữ số chiều và kiểu dữ liệu đã chọn cùng chỉ mục để biểu diễn truy vấn và vector lưu trữ nhất quán.\n\nDùng các vector kết quả trong tìm kiếm đoạn, tìm tài liệu hoặc bước truy xuất của trợ lý làm việc với báo cáo, bài nghiên cứu, hợp đồng hay tài liệu kỹ thuật. Kết quả có thể xác định đoạn tập trung, còn liên kết nguồn cho phép truy cập định nghĩa và các điều kiện ở nơi khác trong tài liệu. Giữ phiên bản tài liệu và quyền truy cập dưới dạng siêu dữ liệu ứng dụng bên cạnh vector.\n\nThử các câu hỏi cần cả chi tiết cục bộ và ngữ cảnh cấp tài liệu. Bao gồm các đoạn tương tự từ nguồn khác nhau, thực thể có tên chỉ được giới thiệu ở đầu và câu hỏi có bằng chứng trải trên nhiều phần. Kiểm tra khối mong đợi có được truy xuất không, và ứng dụng có trình bày đủ văn bản xung quanh để diễn giải không. Khi nguồn thay đổi, chủ động tạo lại nhóm tài liệu bị ảnh hưởng để các khối có ngữ cảnh tương ứng với một phiên bản nhất quán.",
    "about_sha256": "cbe672f81d248e79c90f9384b4d5a3ff311043f96a3b07b7eb8b4ede52d2cd43",
    "alias_of": null,
    "aliases": [],
    "author": "Voyage AI",
    "capabilities": {
      "context_length": 120000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "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,
    "display_name": "Voyage AI: Voyage Context 3",
    "formats": [
      "embeddings"
    ],
    "id": "voyage-context-3",
    "input": [
      "text"
    ],
    "kind": "embedding",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "lifecycle": {
              "content": [],
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "mode": "synchronous",
              "status": [],
              "unknown": "Giữ lại phản hồi gốc và X-Client-Request-ID để đối soát. Phản hồi không rõ ràng không đồng nghĩa với việc được phép gửi lại cùng một yêu cầu tạo.",
              "unknown_no_replay": true
            },
            "outputs": {
              "all_results": "Lưu toàn bộ phản hồi JSON, từng vectơ kèm chỉ mục của nó, tất cả các trường về mức sử dụng và các trường tiêu đề của yêu cầu.",
              "every_actual_output": true,
              "family": "embedding",
              "fields": [
                {
                  "name": "object",
                  "type": "string"
                },
                {
                  "name": "model",
                  "type": "string"
                },
                {
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "name": "data[].embedding",
                  "type": "array<number>"
                },
                {
                  "name": "usage",
                  "type": "object"
                },
                {
                  "name": "usage.prompt_tokens",
                  "type": "integer"
                },
                {
                  "name": "usage.total_tokens",
                  "type": "integer"
                }
              ]
            },
            "parameters": [
              {
                "conditions": "Dùng bộ chọn mô hình Ailoot chính xác.",
                "default_known": false,
                "enum": [
                  "voyage-context-3"
                ],
                "enum_known": true,
                "maximum_length": null,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "conditions": "Một văn bản hoặc danh sách văn bản; giữ lại một vectơ cùng chỉ số tương ứng cho mỗi mục dữ liệu được trả về.",
                "default_known": false,
                "enum_known": false,
                "maximum_length": null,
                "name": "input",
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "minItems": 1,
                    "type": "array"
                  }
                ],
                "required": true,
                "type": "string or array<string>"
              }
            ],
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "input": {
                  "oneOf": [
                    {
                      "minLength": 1,
                      "type": "string"
                    },
                    {
                      "items": {
                        "minLength": 1,
                        "type": "string"
                      },
                      "minItems": 1,
                      "type": "array"
                    }
                  ]
                },
                "model": {
                  "enum": [
                    "voyage-context-3"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": false,
              "body": {
                "input": "The quick brown fox jumps over the lazy dog",
                "model": "voyage-context-3"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "conditions": [
              "Gửi văn bản với mô hình đã chọn; giữ lại mọi vectơ được trả về và chỉ số tương ứng."
            ],
            "content_type": "application/json",
            "material_types": [
              "text"
            ],
            "optional": [],
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "content": [],
            "create": {
              "http": "POST",
              "path": "/v1/embeddings"
            },
            "mode": "synchronous",
            "status": [],
            "unknown": "Keep the original response and X-Client-Request-ID for reconciliation. An ambiguous response is not permission to submit the same creation again.",
            "unknown_no_replay": true
          },
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "output": {
            "all_results": "Save the complete JSON response, every vector with its index, all usage fields and request headers.",
            "every_actual_output": true,
            "family": "embedding",
            "fields": [
              {
                "name": "object",
                "type": "string"
              },
              {
                "name": "model",
                "type": "string"
              },
              {
                "name": "data[].index",
                "type": "integer"
              },
              {
                "name": "data[].embedding",
                "type": "array<number>"
              },
              {
                "name": "usage",
                "type": "object"
              },
              {
                "name": "usage.prompt_tokens",
                "type": "integer"
              },
              {
                "name": "usage.total_tokens",
                "type": "integer"
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Đơn giá token cơ bản",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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}\"\ncat > request.json <<'JSON'\n{\n  \"model\": \"voyage-context-3\",\n  \"input\": \"The quick brown fox jumps over the lazy dog\"\n}\nJSON\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o embeddings.json\n# Keep every data item and its index, the full usage object and response headers.\n",
            "label": "curl · save all vectors and usage",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "embeddings",
        "http": "POST",
        "in": 0.4,
        "input": [
          "text"
        ],
        "label": "Biểu diễn nhúng",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "token",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": "0.0004000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000004",
                "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",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": "0",
                "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": "voyage-context-3",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0004000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000004",
            "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",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": "0",
            "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": "voyage-context-3",
        "request_model_id": "voyage-context-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Voyage AI: Voyage Context 3",
    "price": {
      "in": 0.4,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.4,
      "sort_out": 0,
      "varies": false
    },
    "short": "Voyage Context 3 tạo một vector cho mỗi khối tài liệu, đồng thời kết hợp ngữ cảnh từ các khối khác trong cùng tài liệu. Mô hình hỗ trợ truy xuất đoạn chính xác trong tài liệu dài, với số chiều có thể chọn và embedding lượng tử hóa.",
    "short_sha256": "ecf5347d318cafaa85e440415592285b9b3d6c51afeb2467a37418c7b94e3dd3"
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Voyage Context 3 tạo một vector cho mỗi khối tài liệu, đồng thời kết hợp ngữ cảnh từ các khối khác trong cùng tài liệu. Mô hình hỗ trợ truy xuất đoạn chính xác trong tài liệu dài, với số chiều có thể chọn và embedding lượng tử hóa.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "4d120ef2c56f1f0c87a0822478b6390b60b89b5492eab388d1a7a1126f71a6ea",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "36422e694e67130d5c56f86a0d0a599f79c5bd8b61cff6205c6be8ed00761cd2"
}
