VoyageAI by MongoDB: voyage-4
voyage-4 создаёт эмбеддинги текста для поиска общего назначения и многоязычного поиска в общем векторном пространстве семейства Voyage 4. Поддерживает входы до 32 000 токенов, выбираемую размерность выхода от 256 до 2048 и роли query/document для поиска и RAG.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
voyage-4 — текстовая модель эмбеддингов среднего размера в семействе Voyage 4 от Voyage AI. Она преобразует текст запросов и документов в числовые векторы для поиска общего назначения и многоязычного поиска. Определяющая возможность семейства — общее пространство эмбеддингов: voyage-4, voyage-4-large, voyage-4-lite и voyage-4-nano создают совместимые представления, позволяя использовать разные модели семейства на сторонах запросов и документов поисковой задачи.
Общее пространство и асимметричный поиск
Производитель называет использование разных моделей для запросов и корпуса асимметричным поиском. Один из документированных вариантов — подготовить корпус с помощью voyage-4-large и искать по нему эмбеддингами запросов от voyage-4. Эмбеддинги корпуса создаются однократно или при изменении его исходных материалов, а векторы запросов — по мере поступления поисковых запросов. Общее пространство позволяет менять модель на стороне запросов внутри семейства без повторного создания эмбеддингов корпуса только ради такого переключения.
Поддерживайте совместимые размерности и представления сравниваемых векторов. Заявление об общем пространстве относится к названным текстовым моделям Voyage 4; его нельзя обосновать лишь тем, что две несвязанные модели возвращают массивы одинаковой длины. Поэтому практическая задача может использовать voyage-4 на обеих сторонах поиска или её векторы запросов с существующим индексом документов voyage-4-large при совпадающих настройках представления.
Роли запроса и документа
Для поиска Voyage рекомендует обозначать входной текст как запрос или документ. Параметр роли входа добавляет соответствующую инструкцию поиска перед векторизацией. Подготовьте фрагменты корпуса как документы, а поисковую формулировку пользователя — как запрос, сохраняя реальный исходный текст и идентификаторы рядом с каждым хранимым вектором.
Например, коллекция для поиска знаний может индексировать технические инструкции и описания продуктов. Запрос о том, что происходит после неудачного импорта, должен возвращать исходный фрагмент с описанием этого поведения. Сохраняйте заголовки, относящиеся к вопросу условия и расположение источника вместе с фрагментом, чтобы найденное совпадение можно было проверить или использовать на последующем этапе ответа RAG. Эмбеддинг — числовое представление для поиска; исходный фрагмент — доказательная основа последующего этапа.
Размерности и типы выходных данных
Документированное окно контекста на текст — 32 000 токенов. Доступные размерности — 256, 512, 1024 и 2048; по умолчанию используется 1024. Обучение Matryoshka обеспечивает эти вложенные размеры представления. Выход может использовать 32-битные числа с плавающей точкой, знаковые или беззнаковые 8-битные целые числа либо упакованные бинарные значения благодаря подготовке семейства с учётом квантования.
При упакованном бинарном выходе каждый возвращённый байт хранит восемь битов эмбеддинга, поэтому длина списка байтов составляет одну восьмую выбранной размерности. Число байтов и размерность эмбеддинга имеют разный смысл. Выберите представление, которое способен интерпретировать ваш поисковый индекс, и проверьте релевантность кандидатов на вопросах и языках, реально используемых коллекцией, прежде чем выбирать сжатую конфигурацию.
Длина входа, пакетная обработка и усечение
Текущее руководство производителя по текстовым эмбеддингам допускает до 1000 строк и суммарно 320 000 токенов в запросе voyage-4. Лимит пакета отличается от окна в 32 000 токенов для каждого входа. Усечение включено по умолчанию: слишком длинный текст сокращается до допустимого размера. Если усечение отключено, слишком длинная запись вместо этого вызывает ошибку.
Для длинного отчёта или расшифровки целенаправленно готовьте фрагменты, содержащие ответ, а не полагайтесь на обрезку у границы входа. Свяжите каждый фрагмент с родительским документом и версией источника. Обычные входы эмбеддингов voyage-4 — отдельные тексты; обработка групп фрагментов с учётом контекста относится к отдельно документированным моделям контекстных эмбеддингов.
Используйте результат поиска
Храните векторы с текстом фрагментов и стабильными идентификаторами источников, сравнивайте каждый вектор запроса с совместимыми векторами документов и возвращайте фрагменты-кандидаты. Релиз семейства оценивает поиск по материалам, включая технические документы, разговоры, длинные документы, код, право, финансы и веб-тексты. Отдельный реранкер может уточнить список кандидатов, а последующий этап ответа — использовать их текст. Оцените возвращённые фрагменты относительно задачи: совместимость общего пространства позволяет сочетать модели, а полезность результата по-прежнему зависит от исходных материалов и вопроса.
Ailoot Ultra · Эмбеддинги POST /v1/embeddings voyageai/voyage-4
voyageai/voyage-4Начало
voyage-4 создаёт эмбеддинги текста для поиска общего назначения и многоязычного поиска в общем векторном пространстве семейства Voyage 4. Поддерживает входы до 32 000 токенов, выбираемую размерность выхода от 256 до 2048 и роли query/document для поиска и RAG.
- Допустимые входные данные
- Текст · token_ids
- Результаты
- embedding
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Эмбеддинги POST /v1/embeddings
- Входные данные
text,token_ids- Результат
embedding- Контекст
- 32 000 tokens
- Выходной формат
- json
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения voyageai/voyage-4 | По умолчанию— |
Полеinput | Типstring|string[]|integer[]|integer[][] | ТребованиеОбязательно | Значения и ограничения Минимум элементов: 1 Условия: Непустой однородный пакет. ID токенов — неотрицательные целые числа. Входной бюджет: Максимум: 32 000 · Текстовая единица: байты UTF8 · Единица токенов: элементы массива токенов | По умолчанию— |
Полеencoding_format | Типstring | ТребованиеНеобязательно | Значения и ограничения float | По умолчаниюfloat |
Полеdimensions | Типinteger | ТребованиеНе поддерживается | Значения и ограничения Минимум: 1 | По умолчанию— |
Полеuser | Типjson_value | ТребованиеНеобязательно | Значения и ограничения Условия: Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели. | По умолчанию— |
Полеsession_id | Типjson_value | ТребованиеНеобязательно | Значения и ограничения Условия: Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели. | По умолчанию— |
Полеtrace | Типjson_value | ТребованиеНеобязательно | Значения и ограничения Условия: Source допускает это поле метаданных JSON; точная семантика у исходного поставщика зависит от модели. | По умолчанию— |
Полеprovider | Типobject | ТребованиеНеобязательно | Значения и ограничения Условия: provider.options отклоняется | По умолчанию— |
Сочетания входных материалов
text_to_embedding
Параметры и жизненный цикл метода
| Параметр | Контракт |
|---|---|
Параметрcontent_type | Контрактapplication/json |
Параметрrequired | Контрактmodel, input |
Параметрinput_shapes | Контрактstring, string[], nonnegative_integer_token_array, nonnegative_integer_token_array[] |
Параметрencoding_format | Контрактfloat |
Параметрdimensions_override | Контрактfalse |
Параметрmax_input_budget_units | Контракт32000 |
Параметрmultimodal_objects | Контрактfalse |
Параметрmaterial_types | Контрактtext, token_ids |
Жизненный цикл: synchronous_json
Сохраняйте индекс и размерность каждого вектора.
Название мультимодальной модели не означает допуск объектов изображений на этом конкретном маршруте.
Тарифы
Тарифная справка не добавляет режимы запроса. Поддерживаемые параметры указаны для выбранного метода.
- Быстрый режим
- Стандартный тариф При выборе быстрого режима
- Режим flex
- Стандартный тариф При выборе режима flex
- Максимальная интенсивность рассуждений
- Стандартный тариф При максимальной интенсивности рассуждений с корректировкой по умолчанию (default)
Ставки Ailoot
Цены по конфигурациям
| Конфигурация | Шкала ставок | Плата |
|---|---|---|
| КонфигурацияБазовые ставки за токены | Шкала ставокБазовая ставка | Плата Вход · Входные токены $0.00012 / 1K токенов Выход · Выходные токены $0 / 1K токенов Вход · Чтение кэша — / 1K токенов Вход · Запись в кэш — / 1K токенов Вход · Запись в кэш, 1 час — / 1K токенов |
Ailoot резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. Как работают резервирование и расчёт →
Примеры запросов
Ailoot Ultra · Эмбеддинги
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "voyageai/voyage-4", "input": ["First document", "Second document"]}')
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/embeddings \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("data",[]): print(json.dumps({"index":x.get("index"),"embedding":x.get("embedding")}))
PY_RESULT
from openai import OpenAI
import os
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.embeddings.create(model='voyageai/voyage-4',input=["First document","Second document"])
print(result)
for item in result.data:print(item.index,item.embedding)
Получить и сохранить результаты
Ailoot Ultra · Эмбеддинги
json
Сохраняйте все готовые результаты
Сохраняйте каждый полностью полученный ответ, файл и элемент содержимого.
Сохраняйте каждый вектор с его индексом. Число векторов должно совпадать с числом входных элементов; размерности должны быть согласованы.
Если нужно проверить исходный ответ
Отдельный эндпоинт заданий эмбеддингов не вводится.
Поля ответа
| Поле | Тип |
|---|---|
Полеobject | Типstring |
Полеmodel | Типstring |
Полеdata[].index | Типinteger |
Полеdata[].embedding | Типfinite float[] |
Полеusage | Типobject |
Ошибки и дальнейшие шаги
| Ответ | Условие | Следующий шаг |
|---|---|---|
Ответ400 · invalid_request_error | УсловиеНеверные обязательные поля, представление материалов или значение параметра | Следующий шагИсправьте указанные поля перед новым запросом на создание. |
Псевдонимы
Псевдонимы моделей
Ailoot Ultra voyageai/voyage-4
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
FAQ · VoyageAI by MongoDB: voyage-4
- Какие входные данные и результаты доступны?
POST /v1/embeddings·voyageai/voyage-4:text,token_ids→embedding- Какие поля использует запрос?
POST /v1/embeddings·voyageai/voyage-4:model,input,encoding_format,provider- Какие ограничения действуют?
POST /v1/embeddings·voyageai/voyage-4:ctx:32000;input.budget.maximum:32000(байты UTF8);input.min_items:1