Справочник API

Embeddings

Генерируйте векторные embeddings для семантического поиска, RAG, кластеризации и определения сходства. Доступ к моделям OpenAI, Cohere, Voyage, BGE-M3 и другим через единую конечную точку.

Конечная точка

http
POST https://api.tokspan.com/v1/embeddings

Параметры запроса

ПараметрТипОбязательныйОписание
modelstringДаID модели эмбеддингов (например, text-embedding-3-large, text-embedding-3-small, voyage-3)
inputstring / arrayДаТекст для векторизации. Передайте строку для одного эмбеддинга или массив строк для пакетной обработки (до 2048 элементов на запрос).
dimensionsintegerНетУменьшение размерности вывода для экономии места и ускорения поиска. Поддерживается моделями text-embedding-3. Должно быть ≤ максимальной размерности модели.
encoding_formatstringНет"float" (по умолчанию) или "base64" для компактной передачи.
userstringНетИдентификатор конечного пользователя для мониторинга злоупотреблений.

Одиночный эмбеддинг

python
from openai import OpenAI

client = OpenAI(
    api_key="sk-your-key",
    base_url="https://api.tokspan.com/v1",
)

response = client.embeddings.create(
    model="text-embedding-3-large",
    input="Your text string for embedding",
    dimensions=1024,  # Optional: reduce dimensions
)

embedding = response.data[0].embedding
print(f"Vector dimension: {len(embedding)}")

Пакетный эмбеддинг

Отправьте до 2048 входных данных в одном запросе для максимальной пропускной способности. Ответ сохраняет порядок входных данных — response.data[0] соответствует input[0].

python
# Batch embedding — process up to 2048 inputs per request
texts = ["First document", "Second document", "Third document"]

response = client.embeddings.create(
    model="text-embedding-3-large",
    input=texts,
    dimensions=1024,
)

for i, data in enumerate(response.data):
    print(f"Text {i}: vector[:5] = {data.embedding[:5]}...")

Уменьшение размерности

Модели, такие как text-embedding-3-large (макс. 3072 измерения) и text-embedding-3-small (макс. 1536), поддерживают уменьшение размерности вывода через параметр dimensions.

Зачем уменьшать размерность?

  • Меньше места: Вектор с 256 измерениями занимает в 12 раз меньше места, чем 3072 измерения
  • Быстрее поиск: Меньше измерений = быстрее вычисление косинусного сходства
  • Достаточное качество: Для большинства задач 256–512 измерений сохраняют ~95%+ семантического качества
ИзмеренийХранение (на 1 млн векторов)КачествоЛучше всего для
256~1 GBХорошееМасштабный поиск, чувствительные к стоимости приложения
512~2 GBОтличноеRAG общего назначения и семантический поиск
1024~4 GBПревосходноеВысокоточный поиск, кластеризация
3072~12 GBМаксимальноеМаксимальная точность, небольшие корпуса
python
import numpy as np

def cosine_similarity(a, b):
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

# Embed your document corpus (do this once, store results)
doc_embeddings = client.embeddings.create(model="text-embedding-3-large", input=documents)

# Embed a search query
query_embedding = client.embeddings.create(model="text-embedding-3-large", input="How do I reset my password?")

# Find most similar documents
scores = [cosine_similarity(query_embedding.data[0].embedding, d.embedding) for d in doc_embeddings.data]
top_idx = np.argmax(scores)
print(f"Best match: {documents[top_idx]} (score: {scores[top_idx]:.3f})")
Совет: Для продакшен-RAG сочетайте эмбеддинги с Rerank для двухэтапного пайплайна: грубый поиск с помощью эмбеддингов (быстро + дёшево), затем точное ранжирование по топ-20–50 результатам.

Доступные модели

МодельПровайдерМакс. измеренийЛучше всего для
text-embedding-3-largeOpenAI3072Максимальная точность, гибкое уменьшение размерности
text-embedding-3-smallOpenAI1536Экономичность, хорошее качество
Cohere Embed v3Cohere1024Мультиязычность, высокая производительность поиска
Voyage AIVoyage1024 / 2048Эмбеддинги для кода и юридических документов
BGE-M3BAAI1024Открытый исходный код, мультиязычность, возможность самостоятельного хостинга

См. страницу Моделей для полного каталога с актуальными ценами за токен.