{
  "aboutHtml": "<p>voyage-4-large là mô hình embedding văn bản chủ lực của Voyage AI trong họ Voyage 4. Mô hình biểu diễn đoạn nguồn và truy vấn thành vector số cho truy xuất đa dụng và đa ngôn ngữ. Hai đặc điểm phân biệt là thiết kế mixture-of-experts và không gian embedding chung của voyage-4-large, voyage-4, voyage-4-lite và voyage-4-nano.</p><h4>Không gian chung: chọn riêng kho tài liệu và truy vấn</h4><p>Nhà sản xuất mô tả truy xuất bất đối xứng: tài liệu có thể được tạo embedding bằng voyage-4-large, trong khi mô hình khác thuộc họ Voyage 4 chuẩn bị vector truy vấn. Ví dụ, kho tài liệu được Large biểu diễn có thể được tìm bằng truy vấn voyage-4. Điều này cho phép chọn mô hình khác nhau cho hai phía tìm kiếm mà vẫn ở trong không gian tương thích được mô tả.</p><p>Vì vậy, bộ sưu tập thực tế có thể dùng Large để chuẩn bị các đoạn tài liệu ổn định và chọn mô hình phía truy vấn độc lập. Tài liệu được tạo embedding khi tạo hoặc cập nhật kho, còn truy vấn được vector hóa khi người dùng tìm. Thông báo của họ mô tả thay mô hình truy vấn trong họ tương thích mà không cần vector hóa lại kho tài liệu chỉ vì thay đổi đó. Giữ các vector so sánh có số chiều khớp và biểu diễn mà hệ thống tìm kiếm có thể diễn giải cùng nhau.</p><h4>Thiết kế embedding mixture-of-experts</h4><p>Lớp feed-forward dense xử lý mỗi token bằng toàn bộ tập tham số. Cách MoE được mô tả cho voyage-4-large dùng bộ định tuyến và các mạng feed-forward chuyên gia, chọn những chuyên gia xử lý mỗi token. Điều này tách tổng năng lực mô hình khỏi các tham số hoạt động cho một token cụ thể. Voyage báo cáo tỷ lệ kích hoạt 1/10 cho thiết kế MoE của mô hình, dùng định tuyến top-k.</p><p>Giải thích kỹ thuật của nhà sản xuất còn mô tả hai lựa chọn phát triển. Dung lượng chuyên gia ảnh hưởng việc token vượt mức có bỏ qua lớp chuyên gia bằng đường residual không; nhóm chọn hệ số dung lượng lớn nhất khả thi để tránh giảm chất lượng truy xuất. Ở giai đoạn huấn luyện cuối, tham số bộ định tuyến được đóng băng trước khi gộp mô hình để nội suy các mô hình nguồn không thay đổi định tuyến chọn chuyên gia đã học. Đây là đặc điểm chuẩn bị mô hình, khác với thiết lập độ dài văn bản hoặc cắt khi chuẩn bị đầu vào.</p><h4>Số chiều và biểu diễn đầu ra</h4><p>Bảng mô hình chính thức quy định cửa sổ ngữ cảnh 32.000 token và các embedding 256, 512, 1024, 2048 chiều có thể chọn, mặc định 1024. Họ dùng học Matryoshka cho kích thước biểu diễn lồng nhau và hỗ trợ các lựa chọn lượng tử hóa: dấu phẩy động 32 bit, số nguyên 8 bit có dấu hoặc không dấu và đầu ra nhị phân đóng gói.</p><p>Với đầu ra nhị phân, độ dài danh sách byte trả về bằng một phần tám số chiều đã chọn vì mỗi byte chứa tám bit embedding. Lưu lựa chọn số chiều và kiểu dữ liệu cùng chỉ mục, dùng phương pháp so sánh hỗ trợ biểu diễn đó. Vector nhỏ hơn hoặc nén thay đổi biểu diễn dùng cho tìm kiếm; đánh giá các đoạn liên quan trả về cho câu hỏi thực tế trước khi chọn cho bộ sưu tập.</p><h4>Chuẩn bị đầu vào document và query</h4><p>Voyage khuyến nghị vai trò document cho đoạn trong kho và vai trò query cho cách diễn đạt tìm kiếm. Lựa chọn vai trò thêm chỉ dẫn truy xuất tương ứng trước khi tạo embedding. Giữ tiêu đề hữu ích, điều kiện và vị trí nguồn của đoạn, rồi lưu vector trả về cùng văn bản gốc và định danh ổn định.</p><p>Với bộ sưu tập kiến thức kỹ thuật, câu hỏi về dạng lỗi nên dẫn tới đoạn mô tả dạng đó và điều kiện liên quan. Với bộ sưu tập tài liệu nhiều ngôn ngữ, giữ ngôn ngữ nguồn và đánh giá các câu hỏi, thuật ngữ người dùng sẽ tìm. Bản phát hành bao quát tài liệu truy xuất gồm tài liệu kỹ thuật, hội thoại, tài liệu dài, mã, luật, tài chính và văn bản web. Embedding tìm tài liệu ứng viên; bộ xếp hạng lại hoặc giai đoạn trả lời sau dùng văn bản gốc.</p><h4>Giới hạn ngữ cảnh, batch và cắt</h4><p>Hướng dẫn hiện tại của nhà sản xuất cho phép tối đa 1.000 chuỗi và tổng 120.000 token đầu vào trong yêu cầu voyage-4-large. Điều này khác hạn mức batch của voyage-4, dù cả hai có cửa sổ 32.000 token cho từng văn bản. Mặc định cắt rút ngắn đầu vào quá dài để vừa; tắt cắt trả về lỗi cho văn bản quá dài.</p><p>Chọn ranh giới đoạn có câu trả lời một cách có chủ đích để nguồn dài không mất điều kiện hoặc giới hạn liên quan ở phần cuối bị cắt. Giữ liên kết nguồn khi trả về kết quả tìm kiếm và kiểm tra văn bản ứng viên thực tế thay vì coi khoảng cách vector gần là xác minh nội dung. Tương thích không gian chung áp dụng cho họ văn bản Voyage 4 được mô tả; xử lý đoạn theo ngữ cảnh, embedding ảnh/video và các phiên bản mô hình sau vẫn có quy trình riêng của từng mô hình.</p>",
  "aboutText": "voyage-4-large là mô hình embedding văn bản chủ lực của Voyage AI trong họ Voyage 4. Mô hình biểu diễn đoạn nguồn và truy vấn thành vector số cho truy xuất đa dụng và đa ngôn ngữ. Hai đặc điểm phân biệt là thiết kế mixture-of-experts và không gian embedding chung của voyage-4-large, voyage-4, voyage-4-lite và voyage-4-nano.\n\n### Không gian chung: chọn riêng kho tài liệu và truy vấn\n\nNhà sản xuất mô tả truy xuất bất đối xứng: tài liệu có thể được tạo embedding bằng voyage-4-large, trong khi mô hình khác thuộc họ Voyage 4 chuẩn bị vector truy vấn. Ví dụ, kho tài liệu được Large biểu diễn có thể được tìm bằng truy vấn voyage-4. Điều này cho phép chọn mô hình khác nhau cho hai phía tìm kiếm mà vẫn ở trong không gian tương thích được mô tả.\n\nVì vậy, bộ sưu tập thực tế có thể dùng Large để chuẩn bị các đoạn tài liệu ổn định và chọn mô hình phía truy vấn độc lập. Tài liệu được tạo embedding khi tạo hoặc cập nhật kho, còn truy vấn được vector hóa khi người dùng tìm. Thông báo của họ mô tả thay mô hình truy vấn trong họ tương thích mà không cần vector hóa lại kho tài liệu chỉ vì thay đổi đó. Giữ các vector so sánh có số chiều khớp và biểu diễn mà hệ thống tìm kiếm có thể diễn giải cùng nhau.\n\n### Thiết kế embedding mixture-of-experts\n\nLớp feed-forward dense xử lý mỗi token bằng toàn bộ tập tham số. Cách MoE được mô tả cho voyage-4-large dùng bộ định tuyến và các mạng feed-forward chuyên gia, chọn những chuyên gia xử lý mỗi token. Điều này tách tổng năng lực mô hình khỏi các tham số hoạt động cho một token cụ thể. Voyage báo cáo tỷ lệ kích hoạt 1/10 cho thiết kế MoE của mô hình, dùng định tuyến top-k.\n\nGiải thích kỹ thuật của nhà sản xuất còn mô tả hai lựa chọn phát triển. Dung lượng chuyên gia ảnh hưởng việc token vượt mức có bỏ qua lớp chuyên gia bằng đường residual không; nhóm chọn hệ số dung lượng lớn nhất khả thi để tránh giảm chất lượng truy xuất. Ở giai đoạn huấn luyện cuối, tham số bộ định tuyến được đóng băng trước khi gộp mô hình để nội suy các mô hình nguồn không thay đổi định tuyến chọn chuyên gia đã học. Đây là đặc điểm chuẩn bị mô hình, khác với thiết lập độ dài văn bản hoặc cắt khi chuẩn bị đầu vào.\n\n### Số chiều và biểu diễn đầu ra\n\nBảng mô hình chính thức quy định cửa sổ ngữ cảnh 32.000 token và các embedding 256, 512, 1024, 2048 chiều có thể chọn, mặc định 1024. Họ dùng học Matryoshka cho kích thước biểu diễn lồng nhau và hỗ trợ các lựa chọn lượng tử hóa: dấu phẩy động 32 bit, số nguyên 8 bit có dấu hoặc không dấu và đầu ra nhị phân đóng gói.\n\nVới đầu ra nhị phân, độ dài danh sách byte trả về bằng một phần tám số chiều đã chọn vì mỗi byte chứa tám bit embedding. Lưu lựa chọn số chiều và kiểu dữ liệu cùng chỉ mục, dùng phương pháp so sánh hỗ trợ biểu diễn đó. Vector nhỏ hơn hoặc nén thay đổi biểu diễn dùng cho tìm kiếm; đánh giá các đoạn liên quan trả về cho câu hỏi thực tế trước khi chọn cho bộ sưu tập.\n\n### Chuẩn bị đầu vào document và query\n\nVoyage khuyến nghị vai trò document cho đoạn trong kho và vai trò query cho cách diễn đạt tìm kiếm. Lựa chọn vai trò thêm chỉ dẫn truy xuất tương ứng trước khi tạo embedding. Giữ tiêu đề hữu ích, điều kiện và vị trí nguồn của đoạn, rồi lưu vector trả về cùng văn bản gốc và định danh ổn định.\n\nVới bộ sưu tập kiến thức kỹ thuật, câu hỏi về dạng lỗi nên dẫn tới đoạn mô tả dạng đó và điều kiện liên quan. Với bộ sưu tập tài liệu nhiều ngôn ngữ, giữ ngôn ngữ nguồn và đánh giá các câu hỏi, thuật ngữ người dùng sẽ tìm. Bản phát hành bao quát tài liệu truy xuất gồm tài liệu kỹ thuật, hội thoại, tài liệu dài, mã, luật, tài chính và văn bản web. Embedding tìm tài liệu ứng viên; bộ xếp hạng lại hoặc giai đoạn trả lời sau dùng văn bản gốc.\n\n### Giới hạn ngữ cảnh, batch và cắt\n\nHướng dẫn hiện tại của nhà sản xuất cho phép tối đa 1.000 chuỗi và tổng 120.000 token đầu vào trong yêu cầu voyage-4-large. Điều này khác hạn mức batch của voyage-4, dù cả hai có cửa sổ 32.000 token cho từng văn bản. Mặc định cắt rút ngắn đầu vào quá dài để vừa; tắt cắt trả về lỗi cho văn bản quá dài.\n\nChọn ranh giới đoạn có câu trả lời một cách có chủ đích để nguồn dài không mất điều kiện hoặc giới hạn liên quan ở phần cuối bị cắt. Giữ liên kết nguồn khi trả về kết quả tìm kiếm và kiểm tra văn bản ứng viên thực tế thay vì coi khoảng cách vector gần là xác minh nội dung. Tương thích không gian chung áp dụng cho họ văn bản Voyage 4 được mô tả; xử lý đoạn theo ngữ cảnh, embedding ảnh/video và các phiên bản mô hình sau vẫn có quy trình riêng của từng mô hình.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "7c31487aaeaa106894c8cc7daca162628824016e94e21cf08097264959f478d2",
    "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\">VoyageAI by MongoDB: voyage-4-large</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>VoyageAI by MongoDB /</span><code>voyageai/voyage-4-large</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|voyageai%2Fvoyage-4-large\">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-4-large là mô hình embedding văn bản mixture-of-experts của Voyage AI cho truy xuất đa dụng và đa ngôn ngữ. Vector dùng chung không gian họ Voyage 4, cho phép tìm embedding kho tài liệu từ Large bằng embedding truy vấn tương thích từ các mô hình khác trong cùng họ.</p><dl class=\"card-io\" data-card-io><div><dt>Đầu vào được chấp nhận</dt><dd>Văn bản · token_ids</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-4-large là mô hình embedding văn bản chủ lực của Voyage AI trong họ Voyage 4. Mô hình biểu diễn đoạn nguồn và truy vấn thành vector số cho truy xuất đa dụng và đa ngôn ngữ. Hai đặc điểm phân biệt là thiết kế mixture-of-experts và không gian embedding chung của voyage-4-large, voyage-4, voyage-4-lite và voyage-4-nano.</p><h4>Không gian chung: chọn riêng kho tài liệu và truy vấn</h4><p>Nhà sản xuất mô tả truy xuất bất đối xứng: tài liệu có thể được tạo embedding bằng voyage-4-large, trong khi mô hình khác thuộc họ Voyage 4 chuẩn bị vector truy vấn. Ví dụ, kho tài liệu được Large biểu diễn có thể được tìm bằng truy vấn voyage-4. Điều này cho phép chọn mô hình khác nhau cho hai phía tìm kiếm mà vẫn ở trong không gian tương thích được mô tả.</p><p>Vì vậy, bộ sưu tập thực tế có thể dùng Large để chuẩn bị các đoạn tài liệu ổn định và chọn mô hình phía truy vấn độc lập. Tài liệu được tạo embedding khi tạo hoặc cập nhật kho, còn truy vấn được vector hóa khi người dùng tìm. Thông báo của họ mô tả thay mô hình truy vấn trong họ tương thích mà không cần vector hóa lại kho tài liệu chỉ vì thay đổi đó. Giữ các vector so sánh có số chiều khớp và biểu diễn mà hệ thống tìm kiếm có thể diễn giải cùng nhau.</p><h4>Thiết kế embedding mixture-of-experts</h4><p>Lớp feed-forward dense xử lý mỗi token bằng toàn bộ tập tham số. Cách MoE được mô tả cho voyage-4-large dùng bộ định tuyến và các mạng feed-forward chuyên gia, chọn những chuyên gia xử lý mỗi token. Điều này tách tổng năng lực mô hình khỏi các tham số hoạt động cho một token cụ thể. Voyage báo cáo tỷ lệ kích hoạt 1/10 cho thiết kế MoE của mô hình, dùng định tuyến top-k.</p><p>Giải thích kỹ thuật của nhà sản xuất còn mô tả hai lựa chọn phát triển. Dung lượng chuyên gia ảnh hưởng việc token vượt mức có bỏ qua lớp chuyên gia bằng đường residual không; nhóm chọn hệ số dung lượng lớn nhất khả thi để tránh giảm chất lượng truy xuất. Ở giai đoạn huấn luyện cuối, tham số bộ định tuyến được đóng băng trước khi gộp mô hình để nội suy các mô hình nguồn không thay đổi định tuyến chọn chuyên gia đã học. Đây là đặc điểm chuẩn bị mô hình, khác với thiết lập độ dài văn bản hoặc cắt khi chuẩn bị đầu vào.</p><h4>Số chiều và biểu diễn đầu ra</h4><p>Bảng mô hình chính thức quy định cửa sổ ngữ cảnh 32.000 token và các embedding 256, 512, 1024, 2048 chiều có thể chọn, mặc định 1024. Họ dùng học Matryoshka cho kích thước biểu diễn lồng nhau và hỗ trợ các lựa chọn lượng tử hóa: dấu phẩy động 32 bit, số nguyên 8 bit có dấu hoặc không dấu và đầu ra nhị phân đóng gói.</p><p>Với đầu ra nhị phân, độ dài danh sách byte trả về bằng một phần tám số chiều đã chọn vì mỗi byte chứa tám bit embedding. Lưu lựa chọn số chiều và kiểu dữ liệu cùng chỉ mục, dùng phương pháp so sánh hỗ trợ biểu diễn đó. Vector nhỏ hơn hoặc nén thay đổi biểu diễn dùng cho tìm kiếm; đánh giá các đoạn liên quan trả về cho câu hỏi thực tế trước khi chọn cho bộ sưu tập.</p><h4>Chuẩn bị đầu vào document và query</h4><p>Voyage khuyến nghị vai trò document cho đoạn trong kho và vai trò query cho cách diễn đạt tìm kiếm. Lựa chọn vai trò thêm chỉ dẫn truy xuất tương ứng trước khi tạo embedding. Giữ tiêu đề hữu ích, điều kiện và vị trí nguồn của đoạn, rồi lưu vector trả về cùng văn bản gốc và định danh ổn định.</p><p>Với bộ sưu tập kiến thức kỹ thuật, câu hỏi về dạng lỗi nên dẫn tới đoạn mô tả dạng đó và điều kiện liên quan. Với bộ sưu tập tài liệu nhiều ngôn ngữ, giữ ngôn ngữ nguồn và đánh giá các câu hỏi, thuật ngữ người dùng sẽ tìm. Bản phát hành bao quát tài liệu truy xuất gồm tài liệu kỹ thuật, hội thoại, tài liệu dài, mã, luật, tài chính và văn bản web. Embedding tìm tài liệu ứng viên; bộ xếp hạng lại hoặc giai đoạn trả lời sau dùng văn bản gốc.</p><h4>Giới hạn ngữ cảnh, batch và cắt</h4><p>Hướng dẫn hiện tại của nhà sản xuất cho phép tối đa 1.000 chuỗi và tổng 120.000 token đầu vào trong yêu cầu voyage-4-large. Điều này khác hạn mức batch của voyage-4, dù cả hai có cửa sổ 32.000 token cho từng văn bản. Mặc định cắt rút ngắn đầu vào quá dài để vừa; tắt cắt trả về lỗi cho văn bản quá dài.</p><p>Chọn ranh giới đoạn có câu trả lời một cách có chủ đích để nguồn dài không mất điều kiện hoặc giới hạn liên quan ở phần cuối bị cắt. Giữ liên kết nguồn khi trả về kết quả tìm kiếm và kiểm tra văn bản ứng viên thực tế thay vì coi khoảng cách vector gần là xác minh nội dung. Tương thích không gian chung áp dụng cho họ văn bản Voyage 4 được mô tả; xử lý đoạn theo ngữ cảnh, embedding ảnh/video và các phiên bản mô hình sau vẫn có quy trình riêng của từng mô hình.</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>, <code>token_ids</code></dd></div><div><dt>Đầu ra</dt><dd><code>embedding</code></dd></div><div><dt>Ngữ cảnh</dt><dd>32.000 tokens</dd></div><div><dt>Định dạng đầu ra</dt><dd>json</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>voyageai/voyage-4-large</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\">input</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string|string[]|integer[]|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><div>Số mục tối thiểu: 1</div><div>Điều kiện: Lô không rỗng và đồng nhất. ID token là số nguyên không âm.</div><div>Ngân sách đầu vào: Tối đa: 32.000 · Đơn vị văn bản: byte UTF8 · Đơn vị token: phần tử của mảng token</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\">encoding_format</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>float</div></td><td data-cell-label=\"Mặc định\" data-default=\"known\"><span class=\"card-cell-label\">Mặc định</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">dimensions</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 hỗ trợ</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></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=\"pass_through_metadata\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>json_value</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: Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng 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=\"pass_through_metadata\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>json_value</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: Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng 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=\"pass_through_metadata\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>json_value</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: Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng 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\">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</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>text_to_embedding</b></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, input</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>input_shapes</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>encoding_format</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>float</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>dimensions_override</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>max_input_budget_units</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>32000</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>multimodal_objects</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>material_types</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>text, token_ids</td></tr></tbody></table></div><p>Vòng đời: <code>synchronous_json</code></p><p class=\"note-s\">Giữ lại chỉ mục và số chiều của mọi vector.</p><p class=\"note-s\">Việc mô hình mang tên đa phương thức không có nghĩa là đường dẫn cụ thể này chấp nhận đối tượng ảnh.</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><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Biểu mức phí</th><th>Phí</th></tr></thead><tbody><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Giá cơ sở cho token</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>Mức phí cơ bản</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Token đầu vào</span> <b>$0.00024</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-2702-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2702-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2702-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2702-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Python SDK</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Sao chép mã\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2702-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2702-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;voyageai/voyage-4-large&quot;, &quot;input&quot;: [&quot;First document&quot;, &quot;Second document&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/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 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;data&quot;,[]): print(json.dumps({&quot;index&quot;:x.get(&quot;index&quot;),&quot;embedding&quot;:x.get(&quot;embedding&quot;)}))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2702-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2702-tab-1\" hidden><pre data-lang=\"python\"><code>from openai import OpenAI\nimport os\n\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.embeddings.create(model=&#39;voyageai/voyage-4-large&#39;,input=[&quot;First document&quot;,&quot;Second document&quot;])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\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 · Biểu diễn nhúng</h4><p class=\"note-s\">json</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ữ lại mọi vector kèm chỉ mục của nó. Số lượng vector phải bằng số lượng đầu vào; số chiều phải nhất quán.</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\">Không có điểm cuối tác vụ embedding nào được bổ sung.</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\">object</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\">data[].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\">data[].embedding</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>finite float[]</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=voyageai%2Fvoyage-4-large&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-4-large&amp;fmt=embeddings\"><code>voyageai/voyage-4-large</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=voyageai%2Fvoyage-4-large&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-4-large&amp;fmt=embeddings\"><code>voyageai/voyage-4-large</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyageai/voyage-4-large",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyageai/voyage-4-large",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-4-large",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "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": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Không có điểm cuối tác vụ embedding nào được bổ sung."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Giữ lại mọi vector kèm chỉ mục của nó. Số lượng vector phải bằng số lượng đầu vào; số chiều phải nhất quán.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "voyageai/voyage-4-large"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "byte UTF8",
                  "token_unit": "phần tử của mảng token"
                },
                "conditions": "Lô không rỗng và đồng nhất. ID token là số nguyên không âm.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options bị từ chối",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "Giữ lại chỉ mục và số chiều của mọi vector.",
            "Việc mô hình mang tên đa phương thức không có nghĩa là đường dẫn cụ thể này chấp nhận đối tượng ảnh."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 32000,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Giá cơ sở cho token",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"voyageai/voyage-4-large\", \"input\": [\"First document\", \"Second document\"]}')\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/embeddings \\\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(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='voyageai/voyage-4-large',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.24,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "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.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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": "voyageai/voyage-4-large",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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": "voyageai/voyage-4-large",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "dcd99e2448032d278041ad31e671e7f66bec766d930fbf43fbdfaf7671827585",
    "input_html_sha256": "3731d9830c59dfbd76f2b7ff6a87d74205290d5df6cd3b940c0fd811d1186cec",
    "private_audit_sha256": "bce8d170ca33248048880663ddc50fcd12f261c2125c571aaa8b03cba3175e66",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/voyageai-voyage-4-large/",
    "description": "voyage-4-large là mô hình embedding văn bản mixture-of-experts của Voyage AI cho truy xuất đa dụng và đa ngôn ngữ. Vector dùng chung không gian họ Voyage 4, cho phép tìm embedding kho tài liệu từ Large bằng embedding truy vấn tương thích từ các mô hình khác trong cùng họ.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/voyageai-voyage-4-large/index.md",
    "title": "VoyageAI by MongoDB: voyage-4-large — Ailoot",
    "url": "https://ailoot.ai/models/vi/voyageai-voyage-4-large/"
  },
  "rawModel": {
    "about": "voyage-4-large là mô hình embedding văn bản chủ lực của Voyage AI trong họ Voyage 4. Mô hình biểu diễn đoạn nguồn và truy vấn thành vector số cho truy xuất đa dụng và đa ngôn ngữ. Hai đặc điểm phân biệt là thiết kế mixture-of-experts và không gian embedding chung của voyage-4-large, voyage-4, voyage-4-lite và voyage-4-nano.\n\n### Không gian chung: chọn riêng kho tài liệu và truy vấn\n\nNhà sản xuất mô tả truy xuất bất đối xứng: tài liệu có thể được tạo embedding bằng voyage-4-large, trong khi mô hình khác thuộc họ Voyage 4 chuẩn bị vector truy vấn. Ví dụ, kho tài liệu được Large biểu diễn có thể được tìm bằng truy vấn voyage-4. Điều này cho phép chọn mô hình khác nhau cho hai phía tìm kiếm mà vẫn ở trong không gian tương thích được mô tả.\n\nVì vậy, bộ sưu tập thực tế có thể dùng Large để chuẩn bị các đoạn tài liệu ổn định và chọn mô hình phía truy vấn độc lập. Tài liệu được tạo embedding khi tạo hoặc cập nhật kho, còn truy vấn được vector hóa khi người dùng tìm. Thông báo của họ mô tả thay mô hình truy vấn trong họ tương thích mà không cần vector hóa lại kho tài liệu chỉ vì thay đổi đó. Giữ các vector so sánh có số chiều khớp và biểu diễn mà hệ thống tìm kiếm có thể diễn giải cùng nhau.\n\n### Thiết kế embedding mixture-of-experts\n\nLớp feed-forward dense xử lý mỗi token bằng toàn bộ tập tham số. Cách MoE được mô tả cho voyage-4-large dùng bộ định tuyến và các mạng feed-forward chuyên gia, chọn những chuyên gia xử lý mỗi token. Điều này tách tổng năng lực mô hình khỏi các tham số hoạt động cho một token cụ thể. Voyage báo cáo tỷ lệ kích hoạt 1/10 cho thiết kế MoE của mô hình, dùng định tuyến top-k.\n\nGiải thích kỹ thuật của nhà sản xuất còn mô tả hai lựa chọn phát triển. Dung lượng chuyên gia ảnh hưởng việc token vượt mức có bỏ qua lớp chuyên gia bằng đường residual không; nhóm chọn hệ số dung lượng lớn nhất khả thi để tránh giảm chất lượng truy xuất. Ở giai đoạn huấn luyện cuối, tham số bộ định tuyến được đóng băng trước khi gộp mô hình để nội suy các mô hình nguồn không thay đổi định tuyến chọn chuyên gia đã học. Đây là đặc điểm chuẩn bị mô hình, khác với thiết lập độ dài văn bản hoặc cắt khi chuẩn bị đầu vào.\n\n### Số chiều và biểu diễn đầu ra\n\nBảng mô hình chính thức quy định cửa sổ ngữ cảnh 32.000 token và các embedding 256, 512, 1024, 2048 chiều có thể chọn, mặc định 1024. Họ dùng học Matryoshka cho kích thước biểu diễn lồng nhau và hỗ trợ các lựa chọn lượng tử hóa: dấu phẩy động 32 bit, số nguyên 8 bit có dấu hoặc không dấu và đầu ra nhị phân đóng gói.\n\nVới đầu ra nhị phân, độ dài danh sách byte trả về bằng một phần tám số chiều đã chọn vì mỗi byte chứa tám bit embedding. Lưu lựa chọn số chiều và kiểu dữ liệu cùng chỉ mục, dùng phương pháp so sánh hỗ trợ biểu diễn đó. Vector nhỏ hơn hoặc nén thay đổi biểu diễn dùng cho tìm kiếm; đánh giá các đoạn liên quan trả về cho câu hỏi thực tế trước khi chọn cho bộ sưu tập.\n\n### Chuẩn bị đầu vào document và query\n\nVoyage khuyến nghị vai trò document cho đoạn trong kho và vai trò query cho cách diễn đạt tìm kiếm. Lựa chọn vai trò thêm chỉ dẫn truy xuất tương ứng trước khi tạo embedding. Giữ tiêu đề hữu ích, điều kiện và vị trí nguồn của đoạn, rồi lưu vector trả về cùng văn bản gốc và định danh ổn định.\n\nVới bộ sưu tập kiến thức kỹ thuật, câu hỏi về dạng lỗi nên dẫn tới đoạn mô tả dạng đó và điều kiện liên quan. Với bộ sưu tập tài liệu nhiều ngôn ngữ, giữ ngôn ngữ nguồn và đánh giá các câu hỏi, thuật ngữ người dùng sẽ tìm. Bản phát hành bao quát tài liệu truy xuất gồm tài liệu kỹ thuật, hội thoại, tài liệu dài, mã, luật, tài chính và văn bản web. Embedding tìm tài liệu ứng viên; bộ xếp hạng lại hoặc giai đoạn trả lời sau dùng văn bản gốc.\n\n### Giới hạn ngữ cảnh, batch và cắt\n\nHướng dẫn hiện tại của nhà sản xuất cho phép tối đa 1.000 chuỗi và tổng 120.000 token đầu vào trong yêu cầu voyage-4-large. Điều này khác hạn mức batch của voyage-4, dù cả hai có cửa sổ 32.000 token cho từng văn bản. Mặc định cắt rút ngắn đầu vào quá dài để vừa; tắt cắt trả về lỗi cho văn bản quá dài.\n\nChọn ranh giới đoạn có câu trả lời một cách có chủ đích để nguồn dài không mất điều kiện hoặc giới hạn liên quan ở phần cuối bị cắt. Giữ liên kết nguồn khi trả về kết quả tìm kiếm và kiểm tra văn bản ứng viên thực tế thay vì coi khoảng cách vector gần là xác minh nội dung. Tương thích không gian chung áp dụng cho họ văn bản Voyage 4 được mô tả; xử lý đoạn theo ngữ cảnh, embedding ảnh/video và các phiên bản mô hình sau vẫn có quy trình riêng của từng mô hình.",
    "alias_of": null,
    "aliases": [],
    "author": "VoyageAI by MongoDB",
    "available": null,
    "canonical_model": "voyageai/voyage-4-large",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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": 32000,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "voyageai/voyage-4-large",
    "input": [
      "text",
      "token_ids"
    ],
    "kind": "embedding",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep every vector with its index. Vector count must equal input count; dimensions must be consistent.",
            "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": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Không có điểm cuối tác vụ embedding nào được bổ sung."
            },
            "material_combinations": [
              {
                "alternatives": [
                  "string",
                  "string[]",
                  "nonnegative_integer_token_array",
                  "nonnegative_integer_token_array[]"
                ],
                "mode": "text_to_embedding"
              }
            ],
            "operation_modes": [
              "single_embedding",
              "batched_embeddings"
            ],
            "outputs": {
              "all_results": "Giữ lại mọi vector kèm chỉ mục của nó. Số lượng vector phải bằng số lượng đầu vào; số chiều phải nhất quán.",
              "default_dimensions": null,
              "family": "embedding",
              "fields": [
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[].index",
                  "type": "integer"
                },
                {
                  "description": null,
                  "name": "data[].embedding",
                  "type": "finite float[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object"
                }
              ],
              "format": "json"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "voyageai/voyage-4-large"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 32000,
                  "text_unit": "byte UTF8",
                  "token_unit": "phần tử của mảng token"
                },
                "conditions": "Lô không rỗng và đồng nhất. ID token là số nguyên không âm.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_items": 1,
                "name": "input",
                "required": true,
                "type": "string|string[]|integer[]|integer[][]"
              },
              {
                "availability": "source_interface",
                "default": "float",
                "default_known": true,
                "enum": [
                  "float"
                ],
                "enum_known": true,
                "name": "encoding_format",
                "required": false,
                "type": "string"
              },
              {
                "availability": "unsupported",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minimum": 1,
                "name": "dimensions",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Nguồn tài liệu cho phép trường siêu dữ liệu JSON này; ý nghĩa chính xác tại hệ thống nguồn phụ thuộc vào từng mô hình.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options bị từ chối",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "mixed input kinds",
              "empty input",
              "image/audio/file objects",
              "encoding_format=base64",
              "dimensions override"
            ]
          },
          "hints": [
            "Giữ lại chỉ mục và số chiều của mọi vector.",
            "Việc mô hình mang tên đa phương thức không có nghĩa là đường dẫn cụ thể này chấp nhận đối tượng ảnh."
          ],
          "input": {
            "content_type": "application/json",
            "dimensions_override": false,
            "encoding_format": [
              "float"
            ],
            "input_shapes": [
              "string",
              "string[]",
              "nonnegative_integer_token_array",
              "nonnegative_integer_token_array[]"
            ],
            "material_types": [
              "text",
              "token_ids"
            ],
            "max_input_budget_units": 32000,
            "multimodal_objects": false,
            "required": [
              "model",
              "input"
            ]
          },
          "lifecycle": {
            "mode": "synchronous_json",
            "unknown": "no embedding job endpoint inferred"
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/embeddings"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_embedding"
          ],
          "output": {
            "default_dimensions": null,
            "family": "embedding",
            "format": "json",
            "http_success": 200,
            "vectors": "one dense float vector per input; indices/model/usage validated"
          }
        },
        "ctx": 32000,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Giá cơ sở cho token",
            "units": [
              {
                "amount": "0.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"voyageai/voyage-4-large\", \"input\": [\"First document\", \"Second document\"]}')\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/embeddings \\\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(\"data\",[]): print(json.dumps({\"index\":x.get(\"index\"),\"embedding\":x.get(\"embedding\")}))\nPY_RESULT\n",
            "label": "curl · retained exact creation",
            "language": "bash"
          },
          {
            "code": "from openai import OpenAI\nimport os\n\nclient=OpenAI(base_url=\"https://api.ailoot.ai/v1\",api_key=os.environ[\"AILOOT_API_KEY\"],max_retries=0)\nresult=client.embeddings.create(model='voyageai/voyage-4-large',input=[\"First document\",\"Second document\"])\nprint(result)\nfor item in result.data:print(item.index,item.embedding)\n",
            "label": "Python SDK · all vectors",
            "language": "python"
          }
        ],
        "family": "openai",
        "fast_multiplier": 1,
        "flex_multiplier": 1,
        "fmt": "embeddings",
        "hints": [
          "Keep every vector index and dimension.",
          "Multimodal model name does not admit image objects on this exact path."
        ],
        "http": "POST",
        "in": 0.24,
        "input": [
          "text",
          "token_ids"
        ],
        "label": "Эмбеддинги",
        "max_out": null,
        "max_reasoning_effort_multiplier": 1,
        "method_aliases": [],
        "out": 0,
        "output": [
          "embedding"
        ],
        "path": "/v1/embeddings",
        "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.00024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.00000024",
                "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": "voyageai/voyage-4-large",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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": "voyageai/voyage-4-large",
        "request_model_id": "voyageai/voyage-4-large",
        "route_label": "Ultra"
      }
    ],
    "name": "VoyageAI by MongoDB: voyage-4-large",
    "price": {
      "in": 0.24,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.24,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.00024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.00000024",
            "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"
          }
        ]
      }
    ],
    "public_id": "voyageai/voyage-4-large",
    "short": "voyage-4-large là mô hình embedding văn bản mixture-of-experts của Voyage AI cho truy xuất đa dụng và đa ngôn ngữ. Vector dùng chung không gian họ Voyage 4, cho phép tìm embedding kho tài liệu từ Large bằng embedding truy vấn tương thích từ các mô hình khác trong cùng họ."
  },
  "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-4-large là mô hình embedding văn bản mixture-of-experts của Voyage AI cho truy xuất đa dụng và đa ngôn ngữ. Vector dùng chung không gian họ Voyage 4, cho phép tìm embedding kho tài liệu từ Large bằng embedding truy vấn tương thích từ các mô hình khác trong cùng họ.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "15f6c6577bbce11073ef1622dc1b5f15523b31d8e7e02bfdd13e4b041c01fb84",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "9fc121fd8ff6c4f1991c716635f6a5931f37ec721f1abeab01fd87af7ff3f60f"
}
