VoyageAI by MongoDB: voyage-code-4
Voyage AI voyage-code-4 — модель эмбеддингов кода для поиска нужных исходников по вопросам, описаниям проблем и целям программирующего агента. Поддерживает входы до 32 000 токенов и размерности 256, 512, 1024 или 2048, представления с плавающей точкой и квантованные представления.
О модели
Описание раскрывает возможности модели. Доступные в Ailoot входные данные, результаты и параметры выбранного метода перечислены ниже.
voyage-code-4 — специализированная модель эмбеддингов кода от Voyage AI для поиска по репозиториям и подбора материалов программирующими агентами. Она помогает находить нужные исходники, когда отправная точка — вопрос, симптом или описание задачи, а не известный идентификатор. Модель представляет код и текстовую информацию числовыми векторами для поиска; она не редактирует репозиторий и не генерирует исправление.
Ищите код по исследуемой проблеме
Производитель описывает обучающий корпус, отобранный из завершённых pull request и связывающий запросы на естественном языке с кодом. Это существенное отличие от обучающих примеров, построенных главным образом вокруг исходных файлов и их строк документации: поиск может начинаться с поведения, которое требуется исследовать.
Подготовьте запрос, например: «Найди, где пустой результат приводит к тому, что успешная операция отмечается как неудачная». Индексируйте читаемые участки исходников вместе с путями файлов и относящимися к ним комментариями. Сохраняйте окружающие функцию условия, если они объясняют её поведение. Возвращённый кандидат должен вести читателя или агента к участку исходников, который он представляет.
Семантический поиск может дополнять точный поиск по идентификаторам и полнотекстовый поиск. Если имя функции уже известно, точный поиск остаётся полезным. Если известен только симптом, векторный поиск может предложить кандидатов для проверки и уточнения другим запросом.
Роли запроса и документа
Рекомендации Voyage по поиску различают запрос и документ корпуса с помощью типов входа query/document. Для поиска кода используйте описание проблемы или задачи как запрос, а индексируемые исходники или документацию — как документ. Опубликованный пример добавляет при создании эмбеддингов инструкции поиска для соответствующей роли.
Сохраняйте исходное форматирование кода, имена и относящуюся к нему документацию отдельно от вектора. Для участка исходников храните путь файла и расположение; для руководства по программированию — заголовок. После поиска проверьте сам код и вызывающие его участки, прежде чем выбирать правку. Релевантность кандидата не доказывает, что он является единственной причиной заявленной проблемы.
Контекст и варианты представления
Опубликованная длина контекста этой конкретной модели — 32 000 токенов. Эмбеддинг по умолчанию имеет размерность 1024; размерности 256, 512 и 2048 также поддерживаются благодаря обучению Matryoshka. В анонсе документированы 32-битные представления с плавающей точкой, знаковые и беззнаковые 8-битные целочисленные и бинарные представления.
Выберите одну размерность и представление для коллекции и сохраните их в её метаданных. Векторы с плавающей точкой и квантованные представления требуют соответствующей обработки при хранении и сравнении. Бинарное представление кодирует информацию вектора иначе, чем список обычных координат с плавающей точкой; сохраняйте это различие при подготовке результатов для поиска.
Для длинного файла выбирайте связные участки, расположение которых в исходниках можно восстановить. Функции может требоваться соседнее определение типа или комментарий для объяснения условия, тогда как целый слишком большой файл может содержать несвязанные материалы. Согласуйте участок с задачей поиска, а не считайте максимальный контекст предпочтительным размером фрагмента.
Используйте найденные исходники как доказательную основу
Практический процесс программирующего агента находит исходники-кандидаты, читает эти файлы, следует по нужным ссылкам и сужает поиск по мере исследования. Найденный текст становится контекстом для этапа рассуждения или редактирования. Сохраняйте его связь с индексированной ревизией репозитория, чтобы проверять кандидата по правильным исходникам.
Особенность версии voyage-code-4 — внимание к поиску кода по описанию проблемы, который используют программирующие агенты, вместе с гибкими размерностями и представлениями. Её выход — вектор для поиска, тогда как диагностика, редактирование и проверка остаются отдельными задачами, опирающимися на реальный репозиторий.
Ailoot Ultra · Эмбеддинги POST /v1/embeddings voyageai/voyage-code-4
voyageai/voyage-code-4Начало
Voyage AI voyage-code-4 — модель эмбеддингов кода для поиска нужных исходников по вопросам, описаниям проблем и целям программирующего агента. Поддерживает входы до 32 000 токенов и размерности 256, 512, 1024 или 2048, представления с плавающей точкой и квантованные представления.
- Допустимые входные данные
- Текст · token_ids
- Результаты
- embedding
Доступно в Ailoot · входные данные и методы
Ailoot Ultra · Эмбеддинги POST /v1/embeddings
- Входные данные
text,token_ids- Результат
embedding- Контекст
- 32 000 tokens
- Выходной формат
- json
| Поле | Тип | Требование | Значения и ограничения | По умолчанию |
|---|---|---|---|---|
Полеmodel | Типstring | ТребованиеОбязательно | Значения и ограничения voyageai/voyage-code-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.00024 / 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-code-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-code-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-code-4
Псевдонимы путей метода
Используйте пути методов, указанные выше.
Связанные ID для вызова
FAQ · VoyageAI by MongoDB: voyage-code-4
- Какие входные данные и результаты доступны?
POST /v1/embeddings·voyageai/voyage-code-4:text,token_ids→embedding- Какие поля использует запрос?
POST /v1/embeddings·voyageai/voyage-code-4:model,input,encoding_format,provider- Какие ограничения действуют?
POST /v1/embeddings·voyageai/voyage-code-4:ctx:32000;input.budget.maximum:32000(байты UTF8);input.min_items:1