Векторные представления

Преобразуйте текст в числовые векторы с помощью OpenAI-совместимого эндпоинта Embeddings.

POST https://getrouter.ai/v1/embeddings

Базовый запрос

curl https://getrouter.ai/v1/embeddings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "Единый API для нескольких моделей ИИ"
  }'

Ответ содержит векторы в массиве data и, если доступно, сведения об использовании в usage.

Python

from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://getrouter.ai/v1",
)

response = client.embeddings.create(
    model="MODEL_ID",
    input=[
        "Единый API для нескольких моделей ИИ",
        "Векторный поиск находит семантически похожие тексты",
    ],
)

for item in response.data:
    print(item.index, len(item.embedding))

Node.js / TypeScript

import OpenAI from 'openai'

const client = new OpenAI({
  apiKey: 'YOUR_API_KEY',
  baseURL: 'https://getrouter.ai/v1',
})

const response = await client.embeddings.create({
  model: 'MODEL_ID',
  input: [
    'Единый API для нескольких моделей ИИ',
    'Векторный поиск находит семантически похожие тексты',
  ],
})

console.log(response.data.map((item) => item.embedding.length))

Поля запроса

ПолеОписание
modelОбязательный идентификатор модели векторных представлений
inputОбязательный текст, массив текстов или поддерживаемое представление токенов
encoding_formatfloat или base64
dimensionsЗапрашиваемая размерность выходного вектора для совместимых моделей

Пакетный ввод

Объединяйте связанные тексты в один запрос, если это допускают выбранная модель и ограничения на размер ввода. Сохраняйте index каждого элемента ответа, чтобы сопоставить векторы с исходными данными.

Совместимость векторов

Не смешивайте в одном векторном индексе представления, созданные разными моделями или с разной размерностью. Если вы меняете модель или размерность, создайте векторные представления для существующих данных заново.

Tip

В системах поиска используйте одну и ту же модель и стратегию предварительной обработки для документов и пользовательских запросов.

Альтернативный путь

В спецификации API также есть эндпоинт векторных представлений, в котором модель указывается в пути:

POST /v1/engines/{model}/embeddings

Для новых OpenAI-совместимых интеграций предпочитайте /v1/embeddings, если существующему клиенту не требуется путь в формате engines.

Что дальше