Source: https://ailoot.ai/models/ru/voyageai-voyage-code-4/
Canonical: https://ailoot.ai/models/ru/voyageai-voyage-code-4/
Language: ru

# VoyageAI by MongoDB: voyage-code-4

[Markdown](https://ailoot.ai/models/ru/voyageai-voyage-code-4/index.md) · [JSON](https://ailoot.ai/models/ru/voyageai-voyage-code-4/facts.json)

## [VoyageAI by MongoDB: voyage-code-4](https://ailoot.ai/models/ru/voyageai-voyage-code-4/)

Voyage AI voyage-code-4 — модель эмбеддингов кода для поиска нужных исходников по вопросам, описаниям проблем и целям программирующего агента. Поддерживает входы до 32 000 токенов и размерности 256, 512, 1024 или 2048, представления с плавающей точкой и квантованные представления.

- [**Ailoot Ultra · Эмбеддинги** `POST /v1/embeddings` `voyageai/voyage-code-4`](https://ailoot.ai/models/ru/voyageai-voyage-code-4/#method-0)

О модели

Описание раскрывает возможности модели. Доступные в 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`](https://ailoot.ai/models/ru/#m=voyageai%2Fvoyage-code-4&route=Ultra&caller=voyageai%2Fvoyage-code-4&fmt=embeddings)

VoyageAI by MongoDB /`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 резервирует расчётную сумму перед запросом. После получения результата списывает итоговую плату по измеренному расходу. Для окончательного списания за потоковый ответ используется итоговая запись расхода. [Как работают резервирование и расчёт →](https://ailoot.ai/docs/ru/billing/reserve/)

### Примеры запросов

#### Ailoot Ultra · Эмбеддинги

curlPython SDK

```bash
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
```

```python
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`](https://ailoot.ai/models/ru/#m=voyageai%2Fvoyage-code-4&route=Ultra&caller=voyageai%2Fvoyage-code-4&fmt=embeddings)

#### Псевдонимы путей метода

Используйте пути методов, указанные выше.

#### Связанные ID для вызова

[`voyageai/voyage-code-4`](https://ailoot.ai/models/ru/#m=voyageai%2Fvoyage-code-4&route=Ultra&caller=voyageai%2Fvoyage-code-4&fmt=embeddings)

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`

Подключите Ailoot к Claude Code, OpenCode, Hermes или своему приложению.

## Компания и портфель её проектов

Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.

## Покупайте токены со скидкой.

Скидка по подписке для регулярной работы. Промокоды — до 50% на покупку токенов.

Подписка

Выберите тариф со скидкой для своих регулярных запросов.

Промокод до 50%

Введите код при покупке. Цена пересчитается с учётом действующей акции.

Расходы в истории

Модель, токены и сумма сохраняются для каждого запроса.

[Выбрать подписку](https://ailoot.ai/docs/ru/billing/subscriptions/) · [Посмотреть цены моделей](https://ailoot.ai/models/ru/)

## Подключайте API к продукту, который вы продаёте.

SaaS, приложения и боты — по оферте и лицензионному договору Ailoot. Для перепродажи запросите реселлерскую лицензию.

Коммерческое приложение

Встраивайте генерацию текста, картинок, видео и звука в платные функции своего сервиса.

Лицензия для реселлера

Пришлите описание проекта и схему доступа. Запросите письменные условия использования и перепродажи.

Документы на сайте

Оферта, лицензионный договор и политика обработки данных доступны до подключения.

[Запросить реселлерскую лицензию](mailto:support@ailoot.ai) · [Оферта и лицензионный договор](https://ailoot.ai/legal/offer?lang=ru)

## Ailoot · Компания и портфель её проектов





Ailoot опирается на накопленный опыт работы, большую клиентскую базу, стабильный сервис и постоянный контроль KPI.





Компания и портфель её проектов: миллионы клиентов; продажи на миллиарды ежемесячно.





Этот опыт Ailoot использует для API-доступа к нейросетям в продуктах клиентов, агентах, приложениях и автоматизациях.
