{
  "aboutHtml": "<p>voyage-multimodal-3.5 là mô hình embedding của Voyage AI để truy xuất trên văn bản, ảnh và video. Mô hình xử lý văn bản và nội dung thị giác đan xen bằng một bộ mã hóa transformer, biểu diễn toàn bộ đầu vào đa phương thức trong không gian vector chung. Phiên bản 3.5 bổ sung hỗ trợ khung hình video rõ ràng và số chiều embedding linh hoạt.</p><h4>Giữ mối liên hệ giữa văn bản và hình ảnh</h4><p>Chuẩn bị trang hoặc phần tài liệu theo dạng giữ được thông tin thị giác hữu ích. Slide có biểu đồ và giải thích ngắn có thể được biểu diễn bằng ảnh slide cùng văn bản đi kèm trong cùng đầu vào có thứ tự. Với bộ sưu tập dựa trên PDF, đầu vào thị giác được tài liệu mô tả là ảnh chụp trang hoặc dạng biểu diễn bằng ảnh khác của tài liệu.</p><p>Với biểu đồ báo cáo, giữ tiêu đề, nhãn trục và chú giải trong ảnh. Đính kèm văn bản giải thích khi cung cấp ngữ cảnh cần để diễn giải hình ảnh. Lưu số trang và định danh nguồn bên cạnh vector kết quả để ứng viên truy xuất có thể mở trang liên quan thay vì chỉ trả về tên tài liệu.</p><p>Định dạng đầu vào của nhà sản xuất hỗ trợ chuỗi văn bản, ảnh và video. Các định dạng ảnh được công bố là PNG, JPEG, WebP và GIF, còn video là MP4. Nội dung thị giác có thể được biểu diễn bằng URL hoặc dữ liệu Base64 theo công thức được tài liệu mô tả; giữ nhất quán một kiểu biểu diễn trong một yêu cầu.</p><h4>Truy xuất cảnh thay vì toàn bộ video dài</h4><p>Mô hình biểu diễn video thành chuỗi khung hình có thứ tự. Nhà sản xuất khuyến nghị chia video dài thành các cảnh liên quan, căn ranh giới cảnh theo mốc thời gian bản chép lời sẵn có và giữ văn bản chép lời tương ứng. Giảm độ phân giải hoặc tốc độ khung hình có thể giúp cảnh liên tục về ngữ nghĩa vừa ngân sách ngữ cảnh.</p><p>Với bộ sưu tập video đào tạo, truy vấn có thể hỏi cảnh trình diễn điều chỉnh một bộ phận điều khiển cụ thể. Gắn mỗi cảnh được lập chỉ mục với khoảng thời gian. Trả về cảnh khớp và kiểm tra các khung hình hoặc đoạn gốc để xem hành động thực tế, thay vì coi vector truy xuất là mô tả bằng văn bản về mọi thứ trong bản ghi.</p><p>Văn bản chép lời có thể góp phần khi được chuẩn bị làm một phần của đầu vào đa phương thức. Bản thân embedding khung hình video không cung cấp bản chép lời nói.</p><h4>Giới hạn ngữ cảnh và chuẩn bị</h4><p>Độ dài ngữ cảnh được nêu là 32.000 token cho mỗi đầu vào. Trong phép tính công bố, Voyage tính mỗi 560 pixel ảnh và mỗi 1120 pixel video là một token, vì vậy nội dung thị giác chia sẻ ngân sách đó với văn bản. Các giới hạn được mô tả còn bao gồm 16 triệu pixel và 20 MB cho mỗi ảnh, cùng 20 MB cho mỗi video. Một danh sách có tối đa 1000 đầu vào và tổng cộng 320.000 token.</p><p>Thiết lập cắt mặc định cắt đầu vào quá dài; nếu ranh giới cắt nằm trong một ảnh, toàn bộ ảnh bị loại. Vì vậy, chuẩn bị trang hoặc cảnh hoàn chỉnh trong ngân sách giúp giữ nội dung đầu vào dễ dự đoán hơn. Thiết lập thay thế được tài liệu mô tả từ chối đầu vào quá dài thay vì cắt.</p><h4>Số chiều vector và vai trò truy xuất</h4><p>Số chiều đầu ra mặc định là 1024; phiên bản này còn được mô tả với 256, 512 và 2048 chiều. Thông báo nêu embedding Matryoshka và biểu diễn dấu phẩy động, số 8 bit có dấu hoặc không dấu cùng nhị phân. Giữ số chiều và biểu diễn đã chọn cùng chỉ mục.</p><p>Công thức truy xuất của Voyage phân biệt đầu vào query và document. Truy vấn có thể là văn bản hoặc ảnh, còn tài liệu được lập chỉ mục có thể kết hợp văn bản và hình ảnh. Một vector biểu diễn mỗi chuỗi đầu vào hoàn chỉnh; lưu liên kết với trang nguồn, ảnh hoặc cảnh để kết quả xếp hạng vẫn kiểm tra được.</p><h4>Dùng nguồn thị giác trả về</h4><p>Giai đoạn truy xuất có thể tìm trang báo cáo, bảng, slide hoặc cảnh liên quan đến truy vấn. Giai đoạn viết câu trả lời hoặc phân tích sau đó đọc tài liệu nguồn. Với bảng, kiểm tra tiêu đề cột và giá trị thực tế trước khi dùng kết quả; với cảnh, kiểm tra khung hình liên quan và văn bản đi kèm.</p><p>Khác biệt thực chất so với voyage-multimodal-3 là hỗ trợ video rõ ràng và các lựa chọn biểu diễn bổ sung của phiên bản 3.5. Đây là khả năng embedding để tìm tài liệu nguồn, với đầu ra vector số thay vì ảnh, video hoặc câu trả lời tường thuật được sinh ra.</p>",
  "aboutText": "voyage-multimodal-3.5 là mô hình embedding của Voyage AI để truy xuất trên văn bản, ảnh và video. Mô hình xử lý văn bản và nội dung thị giác đan xen bằng một bộ mã hóa transformer, biểu diễn toàn bộ đầu vào đa phương thức trong không gian vector chung. Phiên bản 3.5 bổ sung hỗ trợ khung hình video rõ ràng và số chiều embedding linh hoạt.\n\n### Giữ mối liên hệ giữa văn bản và hình ảnh\n\nChuẩn bị trang hoặc phần tài liệu theo dạng giữ được thông tin thị giác hữu ích. Slide có biểu đồ và giải thích ngắn có thể được biểu diễn bằng ảnh slide cùng văn bản đi kèm trong cùng đầu vào có thứ tự. Với bộ sưu tập dựa trên PDF, đầu vào thị giác được tài liệu mô tả là ảnh chụp trang hoặc dạng biểu diễn bằng ảnh khác của tài liệu.\n\nVới biểu đồ báo cáo, giữ tiêu đề, nhãn trục và chú giải trong ảnh. Đính kèm văn bản giải thích khi cung cấp ngữ cảnh cần để diễn giải hình ảnh. Lưu số trang và định danh nguồn bên cạnh vector kết quả để ứng viên truy xuất có thể mở trang liên quan thay vì chỉ trả về tên tài liệu.\n\nĐịnh dạng đầu vào của nhà sản xuất hỗ trợ chuỗi văn bản, ảnh và video. Các định dạng ảnh được công bố là PNG, JPEG, WebP và GIF, còn video là MP4. Nội dung thị giác có thể được biểu diễn bằng URL hoặc dữ liệu Base64 theo công thức được tài liệu mô tả; giữ nhất quán một kiểu biểu diễn trong một yêu cầu.\n\n### Truy xuất cảnh thay vì toàn bộ video dài\n\nMô hình biểu diễn video thành chuỗi khung hình có thứ tự. Nhà sản xuất khuyến nghị chia video dài thành các cảnh liên quan, căn ranh giới cảnh theo mốc thời gian bản chép lời sẵn có và giữ văn bản chép lời tương ứng. Giảm độ phân giải hoặc tốc độ khung hình có thể giúp cảnh liên tục về ngữ nghĩa vừa ngân sách ngữ cảnh.\n\nVới bộ sưu tập video đào tạo, truy vấn có thể hỏi cảnh trình diễn điều chỉnh một bộ phận điều khiển cụ thể. Gắn mỗi cảnh được lập chỉ mục với khoảng thời gian. Trả về cảnh khớp và kiểm tra các khung hình hoặc đoạn gốc để xem hành động thực tế, thay vì coi vector truy xuất là mô tả bằng văn bản về mọi thứ trong bản ghi.\n\nVăn bản chép lời có thể góp phần khi được chuẩn bị làm một phần của đầu vào đa phương thức. Bản thân embedding khung hình video không cung cấp bản chép lời nói.\n\n### Giới hạn ngữ cảnh và chuẩn bị\n\nĐộ dài ngữ cảnh được nêu là 32.000 token cho mỗi đầu vào. Trong phép tính công bố, Voyage tính mỗi 560 pixel ảnh và mỗi 1120 pixel video là một token, vì vậy nội dung thị giác chia sẻ ngân sách đó với văn bản. Các giới hạn được mô tả còn bao gồm 16 triệu pixel và 20 MB cho mỗi ảnh, cùng 20 MB cho mỗi video. Một danh sách có tối đa 1000 đầu vào và tổng cộng 320.000 token.\n\nThiết lập cắt mặc định cắt đầu vào quá dài; nếu ranh giới cắt nằm trong một ảnh, toàn bộ ảnh bị loại. Vì vậy, chuẩn bị trang hoặc cảnh hoàn chỉnh trong ngân sách giúp giữ nội dung đầu vào dễ dự đoán hơn. Thiết lập thay thế được tài liệu mô tả từ chối đầu vào quá dài thay vì cắt.\n\n### Số chiều vector và vai trò truy xuất\n\nSố chiều đầu ra mặc định là 1024; phiên bản này còn được mô tả với 256, 512 và 2048 chiều. Thông báo nêu embedding Matryoshka và biểu diễn dấu phẩy động, số 8 bit có dấu hoặc không dấu cùng nhị phân. Giữ số chiều và biểu diễn đã chọn cùng chỉ mục.\n\nCông thức truy xuất của Voyage phân biệt đầu vào query và document. Truy vấn có thể là văn bản hoặc ảnh, còn tài liệu được lập chỉ mục có thể kết hợp văn bản và hình ảnh. Một vector biểu diễn mỗi chuỗi đầu vào hoàn chỉnh; lưu liên kết với trang nguồn, ảnh hoặc cảnh để kết quả xếp hạng vẫn kiểm tra được.\n\n### Dùng nguồn thị giác trả về\n\nGiai đoạn truy xuất có thể tìm trang báo cáo, bảng, slide hoặc cảnh liên quan đến truy vấn. Giai đoạn viết câu trả lời hoặc phân tích sau đó đọc tài liệu nguồn. Với bảng, kiểm tra tiêu đề cột và giá trị thực tế trước khi dùng kết quả; với cảnh, kiểm tra khung hình liên quan và văn bản đi kèm.\n\nKhác biệt thực chất so với voyage-multimodal-3 là hỗ trợ video rõ ràng và các lựa chọn biểu diễn bổ sung của phiên bản 3.5. Đây là khả năng embedding để tìm tài liệu nguồn, với đầu ra vector số thay vì ảnh, video hoặc câu trả lời tường thuật được sinh ra.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "5e7ec6f6febad472960ea9e57fd40a9da6a6837d955e9b3d82f0ea9c1157320f",
    "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-multimodal-3.5</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-multimodal-3.5</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-multimodal-3.5\">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 AI voyage-multimodal-3.5 tạo embedding cho văn bản, ảnh và khung hình video trong một không gian truy xuất chung. Mô hình xử lý nội dung đan xen như ảnh chụp tài liệu, bảng và cảnh, với đầu vào 32.000 token và biểu diễn mặc định 1024 chiều.</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-multimodal-3.5 là mô hình embedding của Voyage AI để truy xuất trên văn bản, ảnh và video. Mô hình xử lý văn bản và nội dung thị giác đan xen bằng một bộ mã hóa transformer, biểu diễn toàn bộ đầu vào đa phương thức trong không gian vector chung. Phiên bản 3.5 bổ sung hỗ trợ khung hình video rõ ràng và số chiều embedding linh hoạt.</p><h4>Giữ mối liên hệ giữa văn bản và hình ảnh</h4><p>Chuẩn bị trang hoặc phần tài liệu theo dạng giữ được thông tin thị giác hữu ích. Slide có biểu đồ và giải thích ngắn có thể được biểu diễn bằng ảnh slide cùng văn bản đi kèm trong cùng đầu vào có thứ tự. Với bộ sưu tập dựa trên PDF, đầu vào thị giác được tài liệu mô tả là ảnh chụp trang hoặc dạng biểu diễn bằng ảnh khác của tài liệu.</p><p>Với biểu đồ báo cáo, giữ tiêu đề, nhãn trục và chú giải trong ảnh. Đính kèm văn bản giải thích khi cung cấp ngữ cảnh cần để diễn giải hình ảnh. Lưu số trang và định danh nguồn bên cạnh vector kết quả để ứng viên truy xuất có thể mở trang liên quan thay vì chỉ trả về tên tài liệu.</p><p>Định dạng đầu vào của nhà sản xuất hỗ trợ chuỗi văn bản, ảnh và video. Các định dạng ảnh được công bố là PNG, JPEG, WebP và GIF, còn video là MP4. Nội dung thị giác có thể được biểu diễn bằng URL hoặc dữ liệu Base64 theo công thức được tài liệu mô tả; giữ nhất quán một kiểu biểu diễn trong một yêu cầu.</p><h4>Truy xuất cảnh thay vì toàn bộ video dài</h4><p>Mô hình biểu diễn video thành chuỗi khung hình có thứ tự. Nhà sản xuất khuyến nghị chia video dài thành các cảnh liên quan, căn ranh giới cảnh theo mốc thời gian bản chép lời sẵn có và giữ văn bản chép lời tương ứng. Giảm độ phân giải hoặc tốc độ khung hình có thể giúp cảnh liên tục về ngữ nghĩa vừa ngân sách ngữ cảnh.</p><p>Với bộ sưu tập video đào tạo, truy vấn có thể hỏi cảnh trình diễn điều chỉnh một bộ phận điều khiển cụ thể. Gắn mỗi cảnh được lập chỉ mục với khoảng thời gian. Trả về cảnh khớp và kiểm tra các khung hình hoặc đoạn gốc để xem hành động thực tế, thay vì coi vector truy xuất là mô tả bằng văn bản về mọi thứ trong bản ghi.</p><p>Văn bản chép lời có thể góp phần khi được chuẩn bị làm một phần của đầu vào đa phương thức. Bản thân embedding khung hình video không cung cấp bản chép lời nói.</p><h4>Giới hạn ngữ cảnh và chuẩn bị</h4><p>Độ dài ngữ cảnh được nêu là 32.000 token cho mỗi đầu vào. Trong phép tính công bố, Voyage tính mỗi 560 pixel ảnh và mỗi 1120 pixel video là một token, vì vậy nội dung thị giác chia sẻ ngân sách đó với văn bản. Các giới hạn được mô tả còn bao gồm 16 triệu pixel và 20 MB cho mỗi ảnh, cùng 20 MB cho mỗi video. Một danh sách có tối đa 1000 đầu vào và tổng cộng 320.000 token.</p><p>Thiết lập cắt mặc định cắt đầu vào quá dài; nếu ranh giới cắt nằm trong một ảnh, toàn bộ ảnh bị loại. Vì vậy, chuẩn bị trang hoặc cảnh hoàn chỉnh trong ngân sách giúp giữ nội dung đầu vào dễ dự đoán hơn. Thiết lập thay thế được tài liệu mô tả từ chối đầu vào quá dài thay vì cắt.</p><h4>Số chiều vector và vai trò truy xuất</h4><p>Số chiều đầu ra mặc định là 1024; phiên bản này còn được mô tả với 256, 512 và 2048 chiều. Thông báo nêu embedding Matryoshka và biểu diễn dấu phẩy động, số 8 bit có dấu hoặc không dấu cùng nhị phân. Giữ số chiều và biểu diễn đã chọn cùng chỉ mục.</p><p>Công thức truy xuất của Voyage phân biệt đầu vào query và document. Truy vấn có thể là văn bản hoặc ảnh, còn tài liệu được lập chỉ mục có thể kết hợp văn bản và hình ảnh. Một vector biểu diễn mỗi chuỗi đầu vào hoàn chỉnh; lưu liên kết với trang nguồn, ảnh hoặc cảnh để kết quả xếp hạng vẫn kiểm tra được.</p><h4>Dùng nguồn thị giác trả về</h4><p>Giai đoạn truy xuất có thể tìm trang báo cáo, bảng, slide hoặc cảnh liên quan đến truy vấn. Giai đoạn viết câu trả lời hoặc phân tích sau đó đọc tài liệu nguồn. Với bảng, kiểm tra tiêu đề cột và giá trị thực tế trước khi dùng kết quả; với cảnh, kiểm tra khung hình liên quan và văn bản đi kèm.</p><p>Khác biệt thực chất so với voyage-multimodal-3 là hỗ trợ video rõ ràng và các lựa chọn biểu diễn bổ sung của phiên bản 3.5. Đây là khả năng embedding để tìm tài liệu nguồn, với đầu ra vector số thay vì ảnh, video hoặc câu trả lời tường thuật được sinh ra.</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-multimodal-3.5</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-2705-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2705-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-2705-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2705-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-2705-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2705-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-multimodal-3.5&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-2705-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2705-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-multimodal-3.5&#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-multimodal-3.5&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-multimodal-3.5&amp;fmt=embeddings\"><code>voyageai/voyage-multimodal-3.5</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-multimodal-3.5&amp;route=Ultra&amp;caller=voyageai%2Fvoyage-multimodal-3.5&amp;fmt=embeddings\"><code>voyageai/voyage-multimodal-3.5</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "voyageai/voyage-multimodal-3.5",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|voyageai%2Fvoyage-multimodal-3.5",
      "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-multimodal-3.5"
                ],
                "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-multimodal-3.5\", \"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-multimodal-3.5',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-multimodal-3.5",
        "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-multimodal-3.5",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "406d42f2be5cd1853a03f6e7ebe4e53bcb4c581564d1b3c42466cea64fdc9e87",
    "input_html_sha256": "32575ef3266351699df1db6c4fbc5c6837cd34a5e689cef1592fe52e3288c0a7",
    "private_audit_sha256": "84f2ac71526bab0e6fb218e2893afbcde5ff694946a6d1f203cb7771cc052673",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/voyageai-voyage-multimodal-3-5/",
    "description": "Voyage AI voyage-multimodal-3.5 tạo embedding cho văn bản, ảnh và khung hình video trong một không gian truy xuất chung. Mô hình xử lý nội dung đan xen như ảnh chụp tài liệu, bảng và cảnh, với đầu vào 32.000 token và biểu diễn mặc định 1024 chiều.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/voyageai-voyage-multimodal-3-5/index.md",
    "title": "VoyageAI by MongoDB: voyage-multimodal-3.5 — Ailoot",
    "url": "https://ailoot.ai/models/vi/voyageai-voyage-multimodal-3-5/"
  },
  "rawModel": {
    "about": "voyage-multimodal-3.5 là mô hình embedding của Voyage AI để truy xuất trên văn bản, ảnh và video. Mô hình xử lý văn bản và nội dung thị giác đan xen bằng một bộ mã hóa transformer, biểu diễn toàn bộ đầu vào đa phương thức trong không gian vector chung. Phiên bản 3.5 bổ sung hỗ trợ khung hình video rõ ràng và số chiều embedding linh hoạt.\n\n### Giữ mối liên hệ giữa văn bản và hình ảnh\n\nChuẩn bị trang hoặc phần tài liệu theo dạng giữ được thông tin thị giác hữu ích. Slide có biểu đồ và giải thích ngắn có thể được biểu diễn bằng ảnh slide cùng văn bản đi kèm trong cùng đầu vào có thứ tự. Với bộ sưu tập dựa trên PDF, đầu vào thị giác được tài liệu mô tả là ảnh chụp trang hoặc dạng biểu diễn bằng ảnh khác của tài liệu.\n\nVới biểu đồ báo cáo, giữ tiêu đề, nhãn trục và chú giải trong ảnh. Đính kèm văn bản giải thích khi cung cấp ngữ cảnh cần để diễn giải hình ảnh. Lưu số trang và định danh nguồn bên cạnh vector kết quả để ứng viên truy xuất có thể mở trang liên quan thay vì chỉ trả về tên tài liệu.\n\nĐịnh dạng đầu vào của nhà sản xuất hỗ trợ chuỗi văn bản, ảnh và video. Các định dạng ảnh được công bố là PNG, JPEG, WebP và GIF, còn video là MP4. Nội dung thị giác có thể được biểu diễn bằng URL hoặc dữ liệu Base64 theo công thức được tài liệu mô tả; giữ nhất quán một kiểu biểu diễn trong một yêu cầu.\n\n### Truy xuất cảnh thay vì toàn bộ video dài\n\nMô hình biểu diễn video thành chuỗi khung hình có thứ tự. Nhà sản xuất khuyến nghị chia video dài thành các cảnh liên quan, căn ranh giới cảnh theo mốc thời gian bản chép lời sẵn có và giữ văn bản chép lời tương ứng. Giảm độ phân giải hoặc tốc độ khung hình có thể giúp cảnh liên tục về ngữ nghĩa vừa ngân sách ngữ cảnh.\n\nVới bộ sưu tập video đào tạo, truy vấn có thể hỏi cảnh trình diễn điều chỉnh một bộ phận điều khiển cụ thể. Gắn mỗi cảnh được lập chỉ mục với khoảng thời gian. Trả về cảnh khớp và kiểm tra các khung hình hoặc đoạn gốc để xem hành động thực tế, thay vì coi vector truy xuất là mô tả bằng văn bản về mọi thứ trong bản ghi.\n\nVăn bản chép lời có thể góp phần khi được chuẩn bị làm một phần của đầu vào đa phương thức. Bản thân embedding khung hình video không cung cấp bản chép lời nói.\n\n### Giới hạn ngữ cảnh và chuẩn bị\n\nĐộ dài ngữ cảnh được nêu là 32.000 token cho mỗi đầu vào. Trong phép tính công bố, Voyage tính mỗi 560 pixel ảnh và mỗi 1120 pixel video là một token, vì vậy nội dung thị giác chia sẻ ngân sách đó với văn bản. Các giới hạn được mô tả còn bao gồm 16 triệu pixel và 20 MB cho mỗi ảnh, cùng 20 MB cho mỗi video. Một danh sách có tối đa 1000 đầu vào và tổng cộng 320.000 token.\n\nThiết lập cắt mặc định cắt đầu vào quá dài; nếu ranh giới cắt nằm trong một ảnh, toàn bộ ảnh bị loại. Vì vậy, chuẩn bị trang hoặc cảnh hoàn chỉnh trong ngân sách giúp giữ nội dung đầu vào dễ dự đoán hơn. Thiết lập thay thế được tài liệu mô tả từ chối đầu vào quá dài thay vì cắt.\n\n### Số chiều vector và vai trò truy xuất\n\nSố chiều đầu ra mặc định là 1024; phiên bản này còn được mô tả với 256, 512 và 2048 chiều. Thông báo nêu embedding Matryoshka và biểu diễn dấu phẩy động, số 8 bit có dấu hoặc không dấu cùng nhị phân. Giữ số chiều và biểu diễn đã chọn cùng chỉ mục.\n\nCông thức truy xuất của Voyage phân biệt đầu vào query và document. Truy vấn có thể là văn bản hoặc ảnh, còn tài liệu được lập chỉ mục có thể kết hợp văn bản và hình ảnh. Một vector biểu diễn mỗi chuỗi đầu vào hoàn chỉnh; lưu liên kết với trang nguồn, ảnh hoặc cảnh để kết quả xếp hạng vẫn kiểm tra được.\n\n### Dùng nguồn thị giác trả về\n\nGiai đoạn truy xuất có thể tìm trang báo cáo, bảng, slide hoặc cảnh liên quan đến truy vấn. Giai đoạn viết câu trả lời hoặc phân tích sau đó đọc tài liệu nguồn. Với bảng, kiểm tra tiêu đề cột và giá trị thực tế trước khi dùng kết quả; với cảnh, kiểm tra khung hình liên quan và văn bản đi kèm.\n\nKhác biệt thực chất so với voyage-multimodal-3 là hỗ trợ video rõ ràng và các lựa chọn biểu diễn bổ sung của phiên bản 3.5. Đây là khả năng embedding để tìm tài liệu nguồn, với đầu ra vector số thay vì ảnh, video hoặc câu trả lời tường thuật được sinh ra.",
    "alias_of": null,
    "aliases": [],
    "author": "VoyageAI by MongoDB",
    "available": null,
    "canonical_model": "voyageai/voyage-multimodal-3.5",
    "capabilities": {
      "context_length": 32000,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "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-multimodal-3.5",
    "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-multimodal-3.5"
                ],
                "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-multimodal-3.5\", \"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-multimodal-3.5',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-multimodal-3.5",
        "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-multimodal-3.5",
        "request_model_id": "voyageai/voyage-multimodal-3.5",
        "route_label": "Ultra"
      }
    ],
    "name": "VoyageAI by MongoDB: voyage-multimodal-3.5",
    "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-multimodal-3.5",
    "short": "Voyage AI voyage-multimodal-3.5 tạo embedding cho văn bản, ảnh và khung hình video trong một không gian truy xuất chung. Mô hình xử lý nội dung đan xen như ảnh chụp tài liệu, bảng và cảnh, với đầu vào 32.000 token và biểu diễn mặc định 1024 chiều."
  },
  "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 AI voyage-multimodal-3.5 tạo embedding cho văn bản, ảnh và khung hình video trong một không gian truy xuất chung. Mô hình xử lý nội dung đan xen như ảnh chụp tài liệu, bảng và cảnh, với đầu vào 32.000 token và biểu diễn mặc định 1024 chiều.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "7b8c6e5660fe00b1f52b3b2a32e98f50fe29eabe3468490f0751072fc843bebf",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "d19c0d0bffc72effff6bf0f02000618f6c635e7b5850749983cc5ba52a249b9e"
}
