API арқылы эмбеддингтер

Мәтіндерді векторға айналдырып, сөз бойынша емес, мағына бойынша іздеңіз. Бір кілт, OpenAI /v1/embeddings пішімі және тек кіріс токендері үшін рубльмен төлем.

Эмбеддинг деген не

Эмбеддинг — мәтіннің мағынасын сипаттайтын сандар тізімі (вектор). Модель сөз тіркесін, абзацты немесе құжатты оқып, ұзындығы бірнеше жүзден бірнеше мыңға дейінгі сан векторын қайтарады.

Мағынасы ұқсас мәтіндер ортақ сөздері болмаса да ұқсас векторлар алады. «Тауарды қалай қайтарамын?» және «Қайтару және айырбастау шарттары» бір-біріне жақын болады, ал «Несиені қалай қайтарамын?» алысырақ тұрады. Жақындықты косинустық ұқсастықпен өлшейді: 1-ге неғұрлым жақын болса, мағынасы соғұрлым жақын.

Векторларды дерекқорға (pgvector, Qdrant, Milvus, Elasticsearch, Redis) бір рет сақтап, кейін пайдаланушы сұрауына ең жақындарын миллисекундта табасыз.

Эмбеддингтер не үшін керек

  • Мағыналық іздеу

    Басқаша айтылған сұрауларды және қателерді түсінетін білім базасы, каталог немесе құжаттама бойынша іздеу.

  • Чат-боттарға арналған RAG

    Құжаттардың қажетті үзінділерін тауып, тіл моделі сіздің деректеріңіз бойынша жауап беруі үшін оларды беріңіз.

  • Ұсыныстар

    Сипаттаманың мағынасы бойынша ұқсас тауарлар, мақалалар және сұрақтар, қолмен белгілеусіз.

  • Кластерлеу және талдау

    Пікірлерді, қолдау қызметіне өтініштерді және тапсырыстарды тақырып бойынша топтап, қайталанатын мәселелерді табыңыз.

  • Жіктеу

    Өтініштің тақырыбын, реңкін немесе бөлімін әр сыныптың мысалдарына жақындығы бойынша анықтаңыз.

  • Қайталануларды іздеу

    Әртүрлі сөздермен жазылса да, қайталанатын хабарландыруларды, сұрақтарды және құжаттарды табыңыз.

Қалай қосуға болады

  1. Тіркеліп, балансты толтырыңыз: эмбеддингтер бір сұрау үшін тиынның бір бөлігіндей тұрады.
  2. Профильде API кілтін жасаңыз. Кілт бір рет көрсетіледі, оны сақтап қойыңыз.
  3. OpenAI SDK-да немесе OpenAI API қолдайтын кез келген бағдарламада base URL мен кілтті көрсетіп, мәтіндерді /v1/embeddings мекенжайына жіберіңіз.

Base URL: https://sujik.ru/v1

Сұрау мысалдары
from openai import OpenAI

client = OpenAI(base_url="https://sujik.ru/v1", api_key="sk-sujik-...")

result = client.embeddings.create(
    model="text-embedding-3-small",
    input=["Тауарды қалай қайтарамын?", "Қайтару және айырбастау шарттары"],
)
print(len(result.data[0].embedding), result.usage.total_tokens)
Жауап мысалы
{
  "object": "list",
  "data": [
    { "object": "embedding", "index": 0, "embedding": [0.0123, -0.0456, 0.0789, …] },
    { "object": "embedding", "index": 1, "embedding": [0.0098, -0.0411, 0.0802, …] }
  ],
  "model": "text-embedding-3-small",
  "usage": { "prompt_tokens": 14, "total_tokens": 14 }
}

Бір сұрауда 2048 мәтінге дейін жіберуге болады. dimensions параметрі мұны қолдайтын модельдерде векторды қысқартады, ал encoding_format: base64 жауапты кішірейтеді.

15 жолда мағыналық іздеу

Құжат векторларын бір рет алып, содан кейін сұрау векторын солармен салыстырыңыз.

import numpy as np
from openai import OpenAI

client = OpenAI(base_url="https://sujik.ru/v1", api_key="sk-sujik-...")
docs = ["Қайтару және айырбастау шарттары", "...", "..."]

def embed(texts):
    result = client.embeddings.create(model="text-embedding-3-small", input=texts)
    return np.array([item.embedding for item in result.data])

doc_vectors = embed(docs)
query = embed(["Тауарды қалай қайтарамын?"])[0]
scores = doc_vectors @ query  # unit vectors: dot product = cosine
best = int(scores.argmax())
print(docs[best], round(float(scores[best]), 3))

Модельдер мен бағалар

Баға — 1 млн кіріс токені үшін. API арқылы сайттағы сынаққа қарағанда 10% арзан.

Бағалар қазір жүктелмеді. Өзекті тізім — бағалар бетінде.

Барлық бағалар

Кеңестер

  • Тек бір модельдің векторларын салыстырыңыз: әртүрлі модельдердің кеңістіктері әртүрлі.
  • Іздеу дәлірек болуы үшін ұзын құжаттарды аздап қабаттасатын 200–800 токендік үзінділерге бөліңіз.
  • Модельді ауыстырғанда базаны қайта есептеу үшін вектордың жанында бастапқы мәтін мен модель id-ін сақтаңыз.
  • Қысқа вектор (dimensions 256–1024) сапаны дерлік жоғалтпай дерекқордағы орынды үнемдейді.

Жиі қойылатын сұрақтар

Эмбеддингтер қанша тұрады?

Тек кіріс токендері үшін модель бағасы бойынша төлейсіз. Мың қысқа сөз тіркесі әдетте бір рубльден арзан. Модель қате қайтарса, ақша балансқа қайтарылады.

OpenAI-ға арналған кодым жұмыс істей ме?

Иә. Эндпоинт OpenAI /v1/embeddings-пен үйлесімді: base URL мен кілтті ауыстырыңыз, қалған код пен ресми SDK-лар өзгеріссіз жұмыс істейді.

Қай модельді таңдаған жөн?

Text Embedding 3 Small — көп тапсырмаға арналған жылдам әрі арзан модель. Text Embedding 3 Large және Gemini Embedding күрделі мәтіндер мен әртүрлі тілдерде дәлірек.

Эмбеддингтер қазақ және орыс тілдерімен жұмыс істей ме?

Иә, барлық модельдер көптілді: бір базада қазақ, орыс, ағылшын және басқа тілдерді араластыруға болады.

Тегін лимиттер жұмсала ма?

Жоқ. Эмбеддингтер баланстан төленеді, тегін генерациялар мен жазылымдар оларға жұмсалмайды.

API арқылы эмбеддингтер: іздеу және RAG | SUJIK AI