{
  "aboutHtml": "<p>Codestral Embed 2505 — модель эмбеддингов Mistral AI, специализированная на поиске кода. Она получает текст с исходным кодом или запросом о коде на естественном языке и возвращает числовые векторы. Производитель позиционирует её для поиска по репозиторию, извлечения контекста для помощников по программированию, анализа сходства и дубликатов и группировки кода по функциональности или структуре. Фиксированный идентификатор выпуска — codestral-embed-2505.</p><p>Вход и представление</p><p>Вход с кодом может быть функцией, связанным исходным фрагментом или другой осмысленной единицей репозитория. Запрос на естественном языке может описывать искомое поведение вместо точного имени символа. Эмбеддинг представляет этот вход для сравнения; модель не генерирует новую реализацию и не выполняет полученный код.</p><p>Официальный выпуск документирует полный входной контекст 8192 токена. Для поиска производитель рекомендует части примерно по 3000 символов с перекрытием 1000 символов, отмечая, что более крупные части могут ухудшать поиск. Это рекомендации по подготовке к поиску, а не токенный лимит в 3000 символов. Сохраняйте связь каждого подготовленного элемента с файлом, символом и местоположением источника, чтобы приложение после поиска могло вернуть нужный код.</p><p>Точность и размерности вывода</p><p>Руководство по эмбеддингам кода документирует выходные типы float, int8, uint8, binary и ubinary. Float использует 32-битные значения одинарной точности. Int8 использует знаковые 8-битные целые числа от -128 до 127, а uint8 — беззнаковые 8-битные значения от 0 до 255. Binary и ubinary хранят квантованные однобитные значения в упакованных 8-битных элементах, используя знаковые и беззнаковые контейнеры соответственно.</p><p>Представление с битовой упаковкой меняет длину возвращённого списка: руководство описывает один упакованный элемент на каждые восемь логических измерений эмбеддинга. Поэтому сравнение с учётом формата отличается от трактовки упакованных байтов как обычных координат с плавающей точкой. Храните выбранный тип вместе с вектором и используйте одинаковое представление для индексированного кода и его запроса.</p><p>Документация параметров задаёт размерность по умолчанию 1536 и максимум 3072. Измерения упорядочены по релевантности, и производитель описывает сохранение выбранного количества первых измерений как способ выбора размера представления. Последовательно выбирайте размерность для хранимой коллекции и новых запросов. Более короткое или квантованное представление меняет хранение и поведение сравнения; оно не увеличивает входной контекст и не превращает модель в генератор кода.</p><p>Программирование с использованием результатов поиска</p><p>Первый сценарий выпуска — извлечение контекста для дополнения, редактирования или объяснения кода. Готовьте осмысленные единицы кода и сохраняйте ревизию репозитория и идентификаторы источников. Вопрос об обработке конкретной ошибки может найти связанные функции, которые приложение затем передаст модели программирования вместе с реальным запросом изменения.</p><p>Практический результат — ранжированный набор исходных фрагментов с путями файлов, символами и содержимым, необходимым для понимания их поведения. Найденные фрагменты может открыть разработчик или получить ассистент. Codestral Embed выполняет этап представления; отдельный компонент выбирает результаты, а генеративная модель пишет объяснение или предлагаемый код.</p><p>Семантический поиск и сходство</p><p>Производитель описывает поиск кода по запросам на естественном языке или в виде кода. Разработчик может искать реализацию поведения, даже когда имя функции отличается от формулировки запроса. Включайте поведение и условия, различающие целевую реализацию; общий запрос о целой подсистеме может найти связанные материалы без разрешения конкретного вопроса.</p><p>Выпуск также описывает нахождение почти дублирующегося или функционально похожего кода при лексических различиях. Такие результаты помогают найти повторно используемую реализацию или определить код для дальнейшей проверки. Сходство в пространстве эмбеддингов — сигнал рассмотреть источник; оно не устанавливает идентичного поведения двух фрагментов для каждого входа.</p><p>Кластеризация, аналитика и сравнение</p><p>Эмбеддинги кода можно использовать для группировки по функциональности или структуре и изучения состава репозитория. Сохраняйте исходные фрагменты и идентификаторы доступными, чтобы группу мог интерпретировать человек или последующий этап приложения. Кластер — группировка на основе представления, а не автоматически проверенное описание архитектуры.</p><p>Примеры производителя с векторами с плавающей точкой используют эмбеддинги с единичной нормой, для которых косинусное сходство, скалярное произведение и евклидово расстояние дают согласованное ранжирование. Квантованный вывод и вывод с битовой упаковкой должны сохранять собственную обработку формата вместо наследования предположения о сырых координатах с плавающей точкой. Опубликованный эндпоинт также сохраняет индексы входов, помогая удерживать связь каждого вектора с исходным элементом.</p><p>Издание и практические границы</p><p>Страница конкретной модели перечисляет процессы эмбеддингов и пакетной обработки с обозначением контекста 8k, а выпуск даёт значение 8192 токена. Сохраняйте именованное издание 2505, выбранные выходные размерность и тип на всём пути коллекции и запросов. Это векторный выход для кода, отдельный от дополнения текста Codestral и текстовой модели Mistral Embed с фиксированной размерностью.</p><p>Готовьте единицы кода с нужным поведением, храните их исходные местоположения и формулируйте вопрос о том, что нужно найти. Полезный артефакт — извлекаемое представление, связанное с реальным кодом, которое поддерживает последующий этап объяснения, редактирования или проверки разработчиком, не выполняя сам этот этап.</p>",
  "aboutText": "Codestral Embed 2505 — модель эмбеддингов Mistral AI, специализированная на поиске кода. Она получает текст с исходным кодом или запросом о коде на естественном языке и возвращает числовые векторы. Производитель позиционирует её для поиска по репозиторию, извлечения контекста для помощников по программированию, анализа сходства и дубликатов и группировки кода по функциональности или структуре. Фиксированный идентификатор выпуска — codestral-embed-2505.\n\nВход и представление\n\nВход с кодом может быть функцией, связанным исходным фрагментом или другой осмысленной единицей репозитория. Запрос на естественном языке может описывать искомое поведение вместо точного имени символа. Эмбеддинг представляет этот вход для сравнения; модель не генерирует новую реализацию и не выполняет полученный код.\n\nОфициальный выпуск документирует полный входной контекст 8192 токена. Для поиска производитель рекомендует части примерно по 3000 символов с перекрытием 1000 символов, отмечая, что более крупные части могут ухудшать поиск. Это рекомендации по подготовке к поиску, а не токенный лимит в 3000 символов. Сохраняйте связь каждого подготовленного элемента с файлом, символом и местоположением источника, чтобы приложение после поиска могло вернуть нужный код.\n\nТочность и размерности вывода\n\nРуководство по эмбеддингам кода документирует выходные типы float, int8, uint8, binary и ubinary. Float использует 32-битные значения одинарной точности. Int8 использует знаковые 8-битные целые числа от -128 до 127, а uint8 — беззнаковые 8-битные значения от 0 до 255. Binary и ubinary хранят квантованные однобитные значения в упакованных 8-битных элементах, используя знаковые и беззнаковые контейнеры соответственно.\n\nПредставление с битовой упаковкой меняет длину возвращённого списка: руководство описывает один упакованный элемент на каждые восемь логических измерений эмбеддинга. Поэтому сравнение с учётом формата отличается от трактовки упакованных байтов как обычных координат с плавающей точкой. Храните выбранный тип вместе с вектором и используйте одинаковое представление для индексированного кода и его запроса.\n\nДокументация параметров задаёт размерность по умолчанию 1536 и максимум 3072. Измерения упорядочены по релевантности, и производитель описывает сохранение выбранного количества первых измерений как способ выбора размера представления. Последовательно выбирайте размерность для хранимой коллекции и новых запросов. Более короткое или квантованное представление меняет хранение и поведение сравнения; оно не увеличивает входной контекст и не превращает модель в генератор кода.\n\nПрограммирование с использованием результатов поиска\n\nПервый сценарий выпуска — извлечение контекста для дополнения, редактирования или объяснения кода. Готовьте осмысленные единицы кода и сохраняйте ревизию репозитория и идентификаторы источников. Вопрос об обработке конкретной ошибки может найти связанные функции, которые приложение затем передаст модели программирования вместе с реальным запросом изменения.\n\nПрактический результат — ранжированный набор исходных фрагментов с путями файлов, символами и содержимым, необходимым для понимания их поведения. Найденные фрагменты может открыть разработчик или получить ассистент. Codestral Embed выполняет этап представления; отдельный компонент выбирает результаты, а генеративная модель пишет объяснение или предлагаемый код.\n\nСемантический поиск и сходство\n\nПроизводитель описывает поиск кода по запросам на естественном языке или в виде кода. Разработчик может искать реализацию поведения, даже когда имя функции отличается от формулировки запроса. Включайте поведение и условия, различающие целевую реализацию; общий запрос о целой подсистеме может найти связанные материалы без разрешения конкретного вопроса.\n\nВыпуск также описывает нахождение почти дублирующегося или функционально похожего кода при лексических различиях. Такие результаты помогают найти повторно используемую реализацию или определить код для дальнейшей проверки. Сходство в пространстве эмбеддингов — сигнал рассмотреть источник; оно не устанавливает идентичного поведения двух фрагментов для каждого входа.\n\nКластеризация, аналитика и сравнение\n\nЭмбеддинги кода можно использовать для группировки по функциональности или структуре и изучения состава репозитория. Сохраняйте исходные фрагменты и идентификаторы доступными, чтобы группу мог интерпретировать человек или последующий этап приложения. Кластер — группировка на основе представления, а не автоматически проверенное описание архитектуры.\n\nПримеры производителя с векторами с плавающей точкой используют эмбеддинги с единичной нормой, для которых косинусное сходство, скалярное произведение и евклидово расстояние дают согласованное ранжирование. Квантованный вывод и вывод с битовой упаковкой должны сохранять собственную обработку формата вместо наследования предположения о сырых координатах с плавающей точкой. Опубликованный эндпоинт также сохраняет индексы входов, помогая удерживать связь каждого вектора с исходным элементом.\n\nИздание и практические границы\n\nСтраница конкретной модели перечисляет процессы эмбеддингов и пакетной обработки с обозначением контекста 8k, а выпуск даёт значение 8192 токена. Сохраняйте именованное издание 2505, выбранные выходные размерность и тип на всём пути коллекции и запросов. Это векторный выход для кода, отдельный от дополнения текста Codestral и текстовой модели Mistral Embed с фиксированной размерностью.\n\nГотовьте единицы кода с нужным поведением, храните их исходные местоположения и формулируйте вопрос о том, что нужно найти. Полезный артефакт — извлекаемое представление, связанное с реальным кодом, которое поддерживает последующий этап объяснения, редактирования или проверки разработчиком, не выполняя сам этот этап.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "693ee548963795778ea16dcfb54cb47e9902c2736352ffeabd33bde39ccd262b",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ru",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Mistral: Codestral Embed 2505</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Закрыть\">×</button></div><div class=\"idline\"><span>Mistral /</span><code>mistralai/codestral-embed-2505</code><button type=\"button\" id=\"copy-id\">Скопировать ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Разделы карточки модели\"><button type=\"button\" data-card-jump=\"overview\">Начало</button><button type=\"button\" data-card-jump=\"methods\">Входные данные и методы</button><button type=\"button\" data-card-jump=\"pricing\">Тарифы</button><button type=\"button\" data-card-jump=\"examples\">Примеры</button><button type=\"button\" data-card-jump=\"results\">Результаты</button><button type=\"button\" data-card-jump=\"aliases\">Псевдонимы</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Методы 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|mistralai%2Fcodestral-embed-2505\">Эмбеддинги</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\">Начало</h3><p class=\"mdesc-full\">Codestral Embed 2505 представляет код и запросы на естественном языке как векторы для поиска по репозиторию и извлечения контекста для помощников по программированию. Производитель документирует контекст 8192 токена, настраиваемые размерности до 3072 и выходные форматы с плавающей точкой, целочисленные или с битовой упаковкой.</p><dl class=\"card-io\" data-card-io><div><dt>Допустимые входные данные</dt><dd>Текст · token_ids</dd></div><div><dt>Результаты</dt><dd>embedding</dd></div></dl><details class=\"card-about\"><summary>О модели</summary><p class=\"note-s\" data-model-method-boundary>Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.</p><div class=\"mabout\" id=\"m-about\"><p>Codestral Embed 2505 — модель эмбеддингов Mistral AI, специализированная на поиске кода. Она получает текст с исходным кодом или запросом о коде на естественном языке и возвращает числовые векторы. Производитель позиционирует её для поиска по репозиторию, извлечения контекста для помощников по программированию, анализа сходства и дубликатов и группировки кода по функциональности или структуре. Фиксированный идентификатор выпуска — codestral-embed-2505.</p><p>Вход и представление</p><p>Вход с кодом может быть функцией, связанным исходным фрагментом или другой осмысленной единицей репозитория. Запрос на естественном языке может описывать искомое поведение вместо точного имени символа. Эмбеддинг представляет этот вход для сравнения; модель не генерирует новую реализацию и не выполняет полученный код.</p><p>Официальный выпуск документирует полный входной контекст 8192 токена. Для поиска производитель рекомендует части примерно по 3000 символов с перекрытием 1000 символов, отмечая, что более крупные части могут ухудшать поиск. Это рекомендации по подготовке к поиску, а не токенный лимит в 3000 символов. Сохраняйте связь каждого подготовленного элемента с файлом, символом и местоположением источника, чтобы приложение после поиска могло вернуть нужный код.</p><p>Точность и размерности вывода</p><p>Руководство по эмбеддингам кода документирует выходные типы float, int8, uint8, binary и ubinary. Float использует 32-битные значения одинарной точности. Int8 использует знаковые 8-битные целые числа от -128 до 127, а uint8 — беззнаковые 8-битные значения от 0 до 255. Binary и ubinary хранят квантованные однобитные значения в упакованных 8-битных элементах, используя знаковые и беззнаковые контейнеры соответственно.</p><p>Представление с битовой упаковкой меняет длину возвращённого списка: руководство описывает один упакованный элемент на каждые восемь логических измерений эмбеддинга. Поэтому сравнение с учётом формата отличается от трактовки упакованных байтов как обычных координат с плавающей точкой. Храните выбранный тип вместе с вектором и используйте одинаковое представление для индексированного кода и его запроса.</p><p>Документация параметров задаёт размерность по умолчанию 1536 и максимум 3072. Измерения упорядочены по релевантности, и производитель описывает сохранение выбранного количества первых измерений как способ выбора размера представления. Последовательно выбирайте размерность для хранимой коллекции и новых запросов. Более короткое или квантованное представление меняет хранение и поведение сравнения; оно не увеличивает входной контекст и не превращает модель в генератор кода.</p><p>Программирование с использованием результатов поиска</p><p>Первый сценарий выпуска — извлечение контекста для дополнения, редактирования или объяснения кода. Готовьте осмысленные единицы кода и сохраняйте ревизию репозитория и идентификаторы источников. Вопрос об обработке конкретной ошибки может найти связанные функции, которые приложение затем передаст модели программирования вместе с реальным запросом изменения.</p><p>Практический результат — ранжированный набор исходных фрагментов с путями файлов, символами и содержимым, необходимым для понимания их поведения. Найденные фрагменты может открыть разработчик или получить ассистент. Codestral Embed выполняет этап представления; отдельный компонент выбирает результаты, а генеративная модель пишет объяснение или предлагаемый код.</p><p>Семантический поиск и сходство</p><p>Производитель описывает поиск кода по запросам на естественном языке или в виде кода. Разработчик может искать реализацию поведения, даже когда имя функции отличается от формулировки запроса. Включайте поведение и условия, различающие целевую реализацию; общий запрос о целой подсистеме может найти связанные материалы без разрешения конкретного вопроса.</p><p>Выпуск также описывает нахождение почти дублирующегося или функционально похожего кода при лексических различиях. Такие результаты помогают найти повторно используемую реализацию или определить код для дальнейшей проверки. Сходство в пространстве эмбеддингов — сигнал рассмотреть источник; оно не устанавливает идентичного поведения двух фрагментов для каждого входа.</p><p>Кластеризация, аналитика и сравнение</p><p>Эмбеддинги кода можно использовать для группировки по функциональности или структуре и изучения состава репозитория. Сохраняйте исходные фрагменты и идентификаторы доступными, чтобы группу мог интерпретировать человек или последующий этап приложения. Кластер — группировка на основе представления, а не автоматически проверенное описание архитектуры.</p><p>Примеры производителя с векторами с плавающей точкой используют эмбеддинги с единичной нормой, для которых косинусное сходство, скалярное произведение и евклидово расстояние дают согласованное ранжирование. Квантованный вывод и вывод с битовой упаковкой должны сохранять собственную обработку формата вместо наследования предположения о сырых координатах с плавающей точкой. Опубликованный эндпоинт также сохраняет индексы входов, помогая удерживать связь каждого вектора с исходным элементом.</p><p>Издание и практические границы</p><p>Страница конкретной модели перечисляет процессы эмбеддингов и пакетной обработки с обозначением контекста 8k, а выпуск даёт значение 8192 токена. Сохраняйте именованное издание 2505, выбранные выходные размерность и тип на всём пути коллекции и запросов. Это векторный выход для кода, отдельный от дополнения текста Codestral и текстовой модели Mistral Embed с фиксированной размерностью.</p><p>Готовьте единицы кода с нужным поведением, храните их исходные местоположения и формулируйте вопрос о том, что нужно найти. Полезный артефакт — извлекаемое представление, связанное с реальным кодом, которое поддерживает последующий этап объяснения, редактирования или проверки разработчиком, не выполняя сам этот этап.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Доступно в Ailoot · входные данные и методы</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Эмбеддинги</b> <code>POST /v1/embeddings</code></summary><dl class=\"method-capabilities\"><div><dt>Входные данные</dt><dd><code>text</code>, <code>token_ids</code></dd></div><div><dt>Результат</dt><dd><code>embedding</code></dd></div><div><dt>Контекст</dt><dd>8 192 tokens</dd></div><div><dt>Выходной формат</dt><dd>json</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Поле</th><th>Тип</th><th>Требование</th><th>Значения и ограничения</th><th>По умолчанию</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>mistralai/codestral-embed-2505</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">input</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string|string[]|integer[]|integer[][]</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Обязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Минимум элементов: 1</div><div>Условия: Непустой однородный пакет. ID токенов — неотрицательные целые числа.</div><div>Входной бюджет: Максимум: 8 192 · Текстовая единица: байты UTF8 · Единица токенов: элементы массива токенов</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">encoding_format</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>string</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>float</div></td><td data-cell-label=\"По умолчанию\" data-default=\"known\"><span class=\"card-cell-label\">По умолчанию</span>float</td></tr><tr data-parameter-availability=\"unsupported\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">dimensions</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>integer</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Не поддерживается</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Минимум: 1</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>json_value</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Условия: Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>json_value</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Условия: Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"pass_through_metadata\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>json_value</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Условия: Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span><code>object</code></td><td data-cell-label=\"Требование\"><span class=\"card-cell-label\">Требование</span>Необязательно</td><td data-cell-label=\"Значения и ограничения\"><span class=\"card-cell-label\">Значения и ограничения</span><div>Условия: provider.options отклоняется</div></td><td data-cell-label=\"По умолчанию\" data-default=\"unspecified\"><span class=\"card-cell-label\">По умолчанию</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Сочетания входных материалов</summary><p class=\"note-s\"><b>text_to_embedding</b></p></details><details class=\"note-s\" data-method-contract><summary>Параметры и жизненный цикл метода</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Параметр</th><th>Контракт</th></tr></thead><tbody><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>content_type</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>application/json</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>required</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>model, input</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>input_shapes</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>string, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[]</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>encoding_format</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>float</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>dimensions_override</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>false</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>max_input_budget_units</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>8192</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>multimodal_objects</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>false</td></tr><tr><th data-cell-label=\"Параметр\" scope=\"row\"><span class=\"card-cell-label\">Параметр</span><code>material_types</code></th><td data-cell-label=\"Контракт\"><span class=\"card-cell-label\">Контракт</span>text, token_ids</td></tr></tbody></table></div><p>Жизненный цикл: <code>synchronous_json</code></p><p class=\"note-s\">Сохраняйте индекс и размерность каждого вектора.</p><p class=\"note-s\">Название мультимодальной модели не означает допуск объектов изображений на этом конкретном маршруте.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Тарифы</h3><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.</p><dl data-price-conditions><dt>Быстрый режим</dt><dd>Стандартный тариф <span class=\"note-s\">При выборе быстрого режима</span></dd><dt>Режим flex</dt><dd>Стандартный тариф <span class=\"note-s\">При выборе режима flex</span></dd><dt>Максимальная интенсивность рассуждений</dt><dd>Стандартный тариф <span class=\"note-s\">При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>Ставки Ailoot</h4><h4>Цены по конфигурациям</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Конфигурация</th><th>Шкала ставок</th><th>Плата</th></tr></thead><tbody><tr><th data-cell-label=\"Конфигурация\" scope=\"row\"><span class=\"card-cell-label\">Конфигурация</span>Базовые ставки за токены</th><td data-cell-label=\"Шкала ставок\"><span class=\"card-cell-label\">Шкала ставок</span>Базовая ставка</td><td data-cell-label=\"Плата\"><span class=\"card-cell-label\">Плата</span><div><span>Вход · Входные токены</span> <b>$0.0003</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Выход · Выходные токены</span> <b>$0</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Чтение кэша</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div><div><span>Вход · Запись в кэш, 1 час</span> <b>—</b> <span class=\"price-unit\">/ 1K токенов</span></div></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. <a href=\"/docs/ru/billing/reserve/\">Как работают резервирование и расчёт →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Примеры запросов</h3><h4>Ailoot Ultra · Эмбеддинги</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Варианты кода\"><button class=\"cg-tab\" id=\"model-code-1892-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1892-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1892-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1892-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=\"Скопировать код\"><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-1892-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1892-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;mistralai/codestral-embed-2505&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-1892-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1892-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;mistralai/codestral-embed-2505&#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\">Получить и сохранить результаты</h3><h4>Ailoot Ultra · Эмбеддинги</h4><p class=\"note-s\">json</p><div class=\"card-result-process\" data-all-results><h5>Сохраняйте все готовые результаты</h5><p class=\"note-s\">Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.</p><p class=\"note-s\">Сохраняйте каждый вектор с его индексом. Число векторов должно совпадать с числом входных элементов; размерности должны быть согласованы.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Если нужно проверить исходный ответ</h5><p class=\"note-s\">Отдельный эндпоинт заданий эмбеддингов не вводится.</p></div><details class=\"card-about\" data-output-fields><summary>Поля ответа</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Поле</th><th>Тип</th></tr></thead><tbody><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">object</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>string</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">data[].index</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>integer</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">data[].embedding</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>finite float[]</td></tr><tr><th data-cell-label=\"Поле\" scope=\"row\"><span class=\"card-cell-label\">Поле</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Тип\" data-field-type><span class=\"card-cell-label\">Тип</span>object</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Ошибки и дальнейшие шаги</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Ответ</th><th>Условие</th><th>Следующий шаг</th></tr></thead><tbody><tr><th data-cell-label=\"Ответ\" scope=\"row\"><span class=\"card-cell-label\">Ответ</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Условие\"><span class=\"card-cell-label\">Условие</span>Неверные обязательные поля, представление материалов или значение параметра</td><td data-cell-label=\"Следующий шаг\"><span class=\"card-cell-label\">Следующий шаг</span>Исправьте указанные поля перед новым запросом на создание.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Псевдонимы</h3><h4>Псевдонимы моделей</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=mistralai%2Fcodestral-embed-2505&amp;route=Ultra&amp;caller=mistralai%2Fcodestral-embed-2505&amp;fmt=embeddings\"><code>mistralai/codestral-embed-2505</code></a></span></p><h4>Псевдонимы путей метода</h4><p class=\"note-s\">Используйте пути методов, указанные выше.</p><h4>Связанные ID для вызова</h4><p class=\"note-s\"><a href=\"#m=mistralai%2Fcodestral-embed-2505&amp;route=Ultra&amp;caller=mistralai%2Fcodestral-embed-2505&amp;fmt=embeddings\"><code>mistralai/codestral-embed-2505</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "mistralai/codestral-embed-2505",
        "fmt": "embeddings",
        "http": "POST",
        "path": "/v1/embeddings",
        "request_model_id": "mistralai/codestral-embed-2505",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|embeddings|/v1/embeddings|mistralai%2Fcodestral-embed-2505",
      "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": "Неверные обязательные поля, представление материалов или значение параметра",
                "http_status": 400,
                "recovery": "Исправьте указанные поля перед новым запросом на создание.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Отдельный эндпоинт заданий эмбеддингов не вводится."
            },
            "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": "Сохраняйте каждый вектор с его индексом. Число векторов должно совпадать с числом входных элементов; размерности должны быть согласованы.",
              "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": [
                  "mistralai/codestral-embed-2505"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "байты UTF8",
                  "token_unit": "элементы массива токенов"
                },
                "conditions": "Непустой однородный пакет. ID токенов — неотрицательные целые числа.",
                "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": "Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options отклоняется",
                "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": [
            "Сохраняйте индекс и размерность каждого вектора.",
            "Название мультимодальной модели не означает допуск объектов изображений на этом конкретном маршруте."
          ],
          "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": 8192,
            "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": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Базовые ставки за токены",
            "units": [
              {
                "amount": "0.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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\": \"mistralai/codestral-embed-2505\", \"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='mistralai/codestral-embed-2505',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.3,
        "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": "Быстрый режим",
            "value": "Стандартный тариф",
            "when": "При выборе быстрого режима"
          },
          {
            "label": "Режим flex",
            "value": "Стандартный тариф",
            "when": "При выборе режима flex"
          },
          {
            "label": "Максимальная интенсивность рассуждений",
            "value": "Стандартный тариф",
            "when": "При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)"
          }
        ],
        "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.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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": "mistralai/codestral-embed-2505",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "2c48287553de8d5d96682bf402f62218d9130dea3b0890686e9643c794befed3",
    "input_html_sha256": "2f2e481ed2db999c0e594aad25251e443e69c1c06ca987cd1a5e23e496c5ef73",
    "private_audit_sha256": "c416582f459236bde95c014e596677ed551ea9841ee33325f92b72a19e6f9ed4",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ru/mistralai-codestral-embed-2505/",
    "description": "Codestral Embed 2505 представляет код и запросы на естественном языке как векторы для поиска по репозиторию и извлечения контекста для помощников по программированию. Производитель документирует контекст 8192 токена, настраиваемые размерности до 3072 и выходные форматы с плавающей точкой, целочисленные или с битовой упаковкой.",
    "locale": "ru",
    "md_url": "https://ailoot.ai/models/ru/mistralai-codestral-embed-2505/index.md",
    "title": "Mistral: Codestral Embed 2505 — Ailoot",
    "url": "https://ailoot.ai/models/ru/mistralai-codestral-embed-2505/"
  },
  "rawModel": {
    "about": "Codestral Embed 2505 — модель эмбеддингов Mistral AI, специализированная на поиске кода. Она получает текст с исходным кодом или запросом о коде на естественном языке и возвращает числовые векторы. Производитель позиционирует её для поиска по репозиторию, извлечения контекста для помощников по программированию, анализа сходства и дубликатов и группировки кода по функциональности или структуре. Фиксированный идентификатор выпуска — codestral-embed-2505.\n\nВход и представление\n\nВход с кодом может быть функцией, связанным исходным фрагментом или другой осмысленной единицей репозитория. Запрос на естественном языке может описывать искомое поведение вместо точного имени символа. Эмбеддинг представляет этот вход для сравнения; модель не генерирует новую реализацию и не выполняет полученный код.\n\nОфициальный выпуск документирует полный входной контекст 8192 токена. Для поиска производитель рекомендует части примерно по 3000 символов с перекрытием 1000 символов, отмечая, что более крупные части могут ухудшать поиск. Это рекомендации по подготовке к поиску, а не токенный лимит в 3000 символов. Сохраняйте связь каждого подготовленного элемента с файлом, символом и местоположением источника, чтобы приложение после поиска могло вернуть нужный код.\n\nТочность и размерности вывода\n\nРуководство по эмбеддингам кода документирует выходные типы float, int8, uint8, binary и ubinary. Float использует 32-битные значения одинарной точности. Int8 использует знаковые 8-битные целые числа от -128 до 127, а uint8 — беззнаковые 8-битные значения от 0 до 255. Binary и ubinary хранят квантованные однобитные значения в упакованных 8-битных элементах, используя знаковые и беззнаковые контейнеры соответственно.\n\nПредставление с битовой упаковкой меняет длину возвращённого списка: руководство описывает один упакованный элемент на каждые восемь логических измерений эмбеддинга. Поэтому сравнение с учётом формата отличается от трактовки упакованных байтов как обычных координат с плавающей точкой. Храните выбранный тип вместе с вектором и используйте одинаковое представление для индексированного кода и его запроса.\n\nДокументация параметров задаёт размерность по умолчанию 1536 и максимум 3072. Измерения упорядочены по релевантности, и производитель описывает сохранение выбранного количества первых измерений как способ выбора размера представления. Последовательно выбирайте размерность для хранимой коллекции и новых запросов. Более короткое или квантованное представление меняет хранение и поведение сравнения; оно не увеличивает входной контекст и не превращает модель в генератор кода.\n\nПрограммирование с использованием результатов поиска\n\nПервый сценарий выпуска — извлечение контекста для дополнения, редактирования или объяснения кода. Готовьте осмысленные единицы кода и сохраняйте ревизию репозитория и идентификаторы источников. Вопрос об обработке конкретной ошибки может найти связанные функции, которые приложение затем передаст модели программирования вместе с реальным запросом изменения.\n\nПрактический результат — ранжированный набор исходных фрагментов с путями файлов, символами и содержимым, необходимым для понимания их поведения. Найденные фрагменты может открыть разработчик или получить ассистент. Codestral Embed выполняет этап представления; отдельный компонент выбирает результаты, а генеративная модель пишет объяснение или предлагаемый код.\n\nСемантический поиск и сходство\n\nПроизводитель описывает поиск кода по запросам на естественном языке или в виде кода. Разработчик может искать реализацию поведения, даже когда имя функции отличается от формулировки запроса. Включайте поведение и условия, различающие целевую реализацию; общий запрос о целой подсистеме может найти связанные материалы без разрешения конкретного вопроса.\n\nВыпуск также описывает нахождение почти дублирующегося или функционально похожего кода при лексических различиях. Такие результаты помогают найти повторно используемую реализацию или определить код для дальнейшей проверки. Сходство в пространстве эмбеддингов — сигнал рассмотреть источник; оно не устанавливает идентичного поведения двух фрагментов для каждого входа.\n\nКластеризация, аналитика и сравнение\n\nЭмбеддинги кода можно использовать для группировки по функциональности или структуре и изучения состава репозитория. Сохраняйте исходные фрагменты и идентификаторы доступными, чтобы группу мог интерпретировать человек или последующий этап приложения. Кластер — группировка на основе представления, а не автоматически проверенное описание архитектуры.\n\nПримеры производителя с векторами с плавающей точкой используют эмбеддинги с единичной нормой, для которых косинусное сходство, скалярное произведение и евклидово расстояние дают согласованное ранжирование. Квантованный вывод и вывод с битовой упаковкой должны сохранять собственную обработку формата вместо наследования предположения о сырых координатах с плавающей точкой. Опубликованный эндпоинт также сохраняет индексы входов, помогая удерживать связь каждого вектора с исходным элементом.\n\nИздание и практические границы\n\nСтраница конкретной модели перечисляет процессы эмбеддингов и пакетной обработки с обозначением контекста 8k, а выпуск даёт значение 8192 токена. Сохраняйте именованное издание 2505, выбранные выходные размерность и тип на всём пути коллекции и запросов. Это векторный выход для кода, отдельный от дополнения текста Codestral и текстовой модели Mistral Embed с фиксированной размерностью.\n\nГотовьте единицы кода с нужным поведением, храните их исходные местоположения и формулируйте вопрос о том, что нужно найти. Полезный артефакт — извлекаемое представление, связанное с реальным кодом, которое поддерживает последующий этап объяснения, редактирования или проверки разработчиком, не выполняя сам этот этап.",
    "alias_of": null,
    "aliases": [],
    "author": "Mistral",
    "available": null,
    "canonical_model": "mistralai/codestral-embed-2505",
    "capabilities": {
      "context_length": 8192,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "embeddings"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "Полная информация о ценах конфигурации — в подробностях."
      }
    ],
    "ctx": 8192,
    "entity_type": "model",
    "formats": [
      "embeddings"
    ],
    "id": "mistralai/codestral-embed-2505",
    "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": "Неверные обязательные поля, представление материалов или значение параметра",
                "http_status": 400,
                "recovery": "Исправьте указанные поля перед новым запросом на создание.",
                "type": "invalid_request_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "create": {
                "http": "POST",
                "path": "/v1/embeddings"
              },
              "job_read": null,
              "mode": "synchronous_json",
              "unknown": "Отдельный эндпоинт заданий эмбеддингов не вводится."
            },
            "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": "Сохраняйте каждый вектор с его индексом. Число векторов должно совпадать с числом входных элементов; размерности должны быть согласованы.",
              "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": [
                  "mistralai/codestral-embed-2505"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "budget": {
                  "maximum": 8192,
                  "text_unit": "байты UTF8",
                  "token_unit": "элементы массива токенов"
                },
                "conditions": "Непустой однородный пакет. ID токенов — неотрицательные целые числа.",
                "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": "Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "user",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "session_id",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "pass_through_metadata",
                "conditions": "Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "type": "json_value"
              },
              {
                "availability": "source_interface",
                "conditions": "provider.options отклоняется",
                "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": [
            "Сохраняйте индекс и размерность каждого вектора.",
            "Название мультимодальной модели не означает допуск объектов изображений на этом конкретном маршруте."
          ],
          "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": 8192,
            "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": 8192,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Базовые ставки за токены",
            "units": [
              {
                "amount": "0.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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\": \"mistralai/codestral-embed-2505\", \"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='mistralai/codestral-embed-2505',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.3,
        "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": "Быстрый режим",
            "value": "Стандартный тариф",
            "when": "При выборе быстрого режима"
          },
          {
            "label": "Режим flex",
            "value": "Стандартный тариф",
            "when": "При выборе режима flex"
          },
          {
            "label": "Максимальная интенсивность рассуждений",
            "value": "Стандартный тариф",
            "when": "При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)"
          }
        ],
        "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.0003000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": "0.0000003",
                "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": "mistralai/codestral-embed-2505",
        "route_label": "Ultra",
        "status_reads": [],
        "tiers": [],
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
        "request_model_id": "mistralai/codestral-embed-2505",
        "route_label": "Ultra"
      }
    ],
    "name": "Mistral: Codestral Embed 2505",
    "price": {
      "in": 0.3,
      "in_label": null,
      "out": 0,
      "out_label": null,
      "scope_label": "Token rates",
      "sort_in": 0.3,
      "sort_out": 0,
      "varies": false
    },
    "pricing_profiles": [
      {
        "dimensions": {
          "regime": "base"
        },
        "label": "Эмбеддинги · Base token rates",
        "units": [
          {
            "amount": "0.0003000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": "0.0000003",
            "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": "mistralai/codestral-embed-2505",
    "short": "Codestral Embed 2505 представляет код и запросы на естественном языке как векторы для поиска по репозиторию и извлечения контекста для помощников по программированию. Производитель документирует контекст 8192 токена, настраиваемые размерности до 3072 и выходные форматы с плавающей точкой, целочисленные или с битовой упаковкой."
  },
  "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": "Codestral Embed 2505 представляет код и запросы на естественном языке как векторы для поиска по репозиторию и извлечения контекста для помощников по программированию. Производитель документирует контекст 8192 токена, настраиваемые размерности до 3072 и выходные форматы с плавающей точкой, целочисленные или с битовой упаковкой.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "370844a46ce6cbf3495fd4d37d171aa074eee7f2a29d18ffebe020a3cb3c3b2c",
    "renderer_sha256": "aa692ffec412026bdeaf316df24a58e6c5083045e5246f6033f898d132afa5ff"
  },
  "sourceRevision": "c7f660afaaa18271594db9a12a5b7275aabba791349c08817614f82dbc975418"
}
