Login
Back to Blog
ҚазақшаTutorial

Text-Embedding-3-Small API оқулығы - OpenAI Embedding моделі бойынша нұсқаулық

OpenAI text-embedding-3-small API-ын семантикалық іздеу, RAG жүйелері және ұқсастықты салыстыру үшін қолдануға арналған толық нұсқаулық. Python, Node.

C
Crazyrouter Team
January 26, 2026 / 298 views
Share:
Text-Embedding-3-Small API оқулығы - OpenAI Embedding моделі бойынша нұсқаулық

Семантикалық іздеу жүйесін немесе RAG (Retrieval-Augmented Generation) жүйесін құрып жатырсыз ба? Text-embedding-3-small – мәтінді сандық векторларға түрлендіретін, ұқсастық бойынша күшті іздеуді және контентті таңдауды мүмкін ететін OpenAI-дың ең жаңа embedding моделі.

Осы нұсқаулықта сіз мыналарды үйренесіз:

  • Text embeddings деген не және олардың маңыздылығы
  • Text-embedding-3-small API-ын қалай қолдану керек
  • Python және Node.js тілдеріндегі толық код мысалдары
  • Сақтауды оңтайландыру үшін custom өлшемдер
  • Бағаларды салыстыру және шығындарды оңтайландыру

Text-Embedding-3-Small деген не?#

Text-embedding-3-small – 2024 жылдың қаңтарында шығарылған OpenAI-дың ықшам embedding моделі. Ол мәтінді мағыналық мәнді ұстайтын 1536 өлшемді векторларға түрлендіреді, бұл келесілерге мүмкіндік береді:

  • Семантикалық іздеу: Тек кілт сөздерге емес, мағынасына қарай тиісті құжаттарды табу
  • RAG жүйелері: LLM жауаптары үшін контекстті шығарып алу
  • Ұқсастықты салыстыру: Ұсынымдар үшін мәтіндер арасындағы ұқсастықты салыстыру
  • Кластерлеу: Ұқсас құжаттарды топтарға біріктіру
  • Классификация: Мазмұнына қарай мәтінді санаттарға бөлу

Модель сипаттамалары#

SpecificationValue
Model Nametext-embedding-3-small
Default Dimensions1536
Custom Dimensions256, 512, 1024, 1536
Max Input Tokens8,191
OutputNormalized vector

Жылдам бастау#

Алдын ала талаптар#

  1. Crazyrouter сайтына тіркеліңіз
  2. Дашбордтан API кілтіңізді алыңыз
  3. Python 3.8+ немесе Node.js 16+

Python мысалы#

python
from openai import OpenAI

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

# Бір мәтін үшін embedding генерациялау
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Machine learning is transforming industries worldwide."
)

embedding = response.data[0].embedding
print(f"Dimensions: {len(embedding)}")  # Output: 1536
print(f"First 5 values: {embedding[:5]}")

Node.js мысалы#

javascript
import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: 'your-crazyrouter-api-key',
    baseURL: 'https://crazyrouter.com/v1'
});

async function getEmbedding(text) {
    const response = await client.embeddings.create({
        model: 'text-embedding-3-small',
        input: text
    });

    return response.data[0].embedding;
}

// Usage
const embedding = await getEmbedding('Machine learning is amazing');
console.log(`Dimensions: ${embedding.length}`);  // Output: 1536

cURL мысалы#

bash
curl -X POST https://crazyrouter.com/v1/embeddings \
  -H "Authorization: Bearer your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "text-embedding-3-small",
    "input": "Hello world"
  }'

Жауап:

json
{
  "object": "list",
  "model": "text-embedding-3-small",
  "usage": {
    "prompt_tokens": 2,
    "total_tokens": 2
  },
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [-0.0020785425, -0.049085874, 0.02094679, ...]
    }
  ]
}

Топтық (batch) embedding#

Бірнеше мәтінді бір API шақыруында өңдеп, өнімділікті арттырыңыз:

python
from openai import OpenAI

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

# Batch embedding - бірнеше мәтінді бірден өңдеу
texts = [
    "Python is a programming language",
    "JavaScript runs in browsers",
    "Machine learning uses neural networks"
]

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

# Әр embedding-ке қол жеткізу
for i, data in enumerate(response.data):
    print(f"Text {i}: {len(data.embedding)} dimensions")

# Output:
# Text 0: 1536 dimensions
# Text 1: 1536 dimensions
# Text 2: 1536 dimensions

Custom өлшемдер#

Сақтау шығындарын азайту үшін кіші өлшемдерді қолданыңыз. Модель өлшемді азайтуды сапаны сақтай отырып қолдайды:

python
# 1536 орнына 512 өлшемді қолданыңыз
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Your text here",
    dimensions=512  # Options: 256, 512, 1024, 1536
)

embedding = response.data[0].embedding
print(f"Dimensions: {len(embedding)}")  # Output: 512

Өлшемдерді салыстыру#

DimensionsStorage (per vector)Use Case
2561 KBМобильді қосымшалар, шектеулі сақтау орны
5122 KBТеңгерімді өнімділік
10244 KBЖоғары дәлдік қажет жағдайлар
15366 KBЕң жоғарғы дәлдік

Семантикалық іздеу жүйесін құру#

Міне, семантикалық іздеу жүйесін құрудың толық мысалы:

python
import numpy as np
from openai import OpenAI

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

def get_embedding(text):
    """Бір мәтін үшін embedding алу"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )
    return response.data[0].embedding

def cosine_similarity(a, b):
    """Екі вектор арасындағы косинустық ұқсастықты есептеу"""
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

# Құжаттар дерекқоры
documents = [
    "Python is great for data science and machine learning",
    "JavaScript is essential for web development",
    "Docker containers simplify deployment",
    "Kubernetes orchestrates container workloads",
    "PostgreSQL is a powerful relational database"
]

# Барлық құжаттар үшін embedding-терді алдын ала есептеу
doc_embeddings = [get_embedding(doc) for doc in documents]

# Іздеу функциясы
def search(query, top_k=3):
    query_embedding = get_embedding(query)

    # Ұқсастықтарды есептеу
    similarities = [
        cosine_similarity(query_embedding, doc_emb)
        for doc_emb in doc_embeddings
    ]

    # Ең жақсы нәтижелерді алу
    results = sorted(
        zip(documents, similarities),
        key=lambda x: x[1],
        reverse=True
    )[:top_k]

    return results

# Іздеудің мысалы
results = search("How to deploy applications?")
for doc, score in results:
    print(f"Score: {score:.4f} - {doc}")

# Output:
# Score: 0.8234 - Docker containers simplify deployment
# Score: 0.7891 - Kubernetes orchestrates container workloads
# Score: 0.6543 - PostgreSQL is a powerful relational database

Векторлық дерекқорлармен интеграция#

Pinecone-пен интеграция#

python
import pinecone
from openai import OpenAI

# Клиенттерді инициализациялау
client = OpenAI(
    api_key="your-crazyrouter-api-key",
    base_url="https://crazyrouter.com/v1"
)

pinecone.init(api_key="your-pinecone-key")
index = pinecone.Index("your-index")

def embed_and_upsert(texts, ids):
    """Мәтіндерге embedding жасап, Pinecone-ға сақтау"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=texts
    )

    vectors = [
        (id, data.embedding)
        for id, data in zip(ids, response.data)
    ]

    index.upsert(vectors=vectors)

def search_pinecone(query, top_k=5):
    """Сұрау embedding-імен Pinecone-де іздеу"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=query
    )

    results = index.query(
        vector=response.data[0].embedding,
        top_k=top_k
    )

    return results

ChromaDB-пен интеграция#

python
import chromadb
from openai import OpenAI

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

# ChromaDB-ны инициализациялау
chroma_client = chromadb.Client()
collection = chroma_client.create_collection("documents")

def get_embeddings(texts):
    """Бірнеше мәтін үшін embedding-терді алу"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=texts
    )
    return [data.embedding for data in response.data]

# Құжаттарды қосу
documents = ["doc1 content", "doc2 content", "doc3 content"]
embeddings = get_embeddings(documents)

collection.add(
    embeddings=embeddings,
    documents=documents,
    ids=["doc1", "doc2", "doc3"]
)

# Query
query_embedding = get_embeddings(["search query"])[0]
results = collection.query(
    query_embeddings=[query_embedding],
    n_results=3
)

Қолжетімді Embedding модельдер#

Crazyrouter бірнеше OpenAI embedding моделдеріне қолжетімділік береді:

ModelDimensionsPrice RatioBest For
text-embedding-3-small15360.01Жалпы қолдану, ең тиімді баға
text-embedding-3-large30720.065Жоғары дәлдік қажет жағдайлар
text-embedding-ada-00215360.05Мұра жүйелермен үйлесімділік

Бағаларды салыстыру#

ProviderModelPrice per 1M tokens
OpenAI Officialtext-embedding-3-small$0.020
Crazyroutertext-embedding-3-small$0.002
OpenAI Officialtext-embedding-3-large$0.130
Crazyroutertext-embedding-3-large$0.013

Баға туралы ескерту: Көрсетілген бағалар демонстрация үшін берілген және өзгеруі мүмкін. Нақты төлем сұрау сәтіндегі нақты уақыттағы бағаларға негізделеді.

Шығынды үнемдеу мысалы:

Айына 10M токен өңдейтін RAG жүйесі үшін:

  • OpenAI Official: $200/ай
  • Crazyrouter: $20/ай
  • Үнемдеу: 90%

Ең жақсы тәжірибелер#

1. Сұрауларды batch түрінде жіберіңіз#

python
# Дұрыс - бірнеше мәтін үшін бір API шақыру
response = client.embeddings.create(
    model="text-embedding-3-small",
    input=["text1", "text2", "text3"]  # 2048 мәтінге дейін
)

# Дұрыс емес - әр мәтін үшін бөлек API шақыру
for text in texts:
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )

2. Embedding-терді кэштеңіз#

python
import hashlib
import json

embedding_cache = {}

def get_embedding_cached(text):
    # Кэш кілтін жасау
    cache_key = hashlib.md5(text.encode()).hexdigest()

    if cache_key in embedding_cache:
        return embedding_cache[cache_key]

    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )

    embedding = response.data[0].embedding
    embedding_cache[cache_key] = embedding

    return embedding

3. Қолайлы өлшемдерді қолданыңыз#

  • 256 өлшем: Мобильді қосымшалар, IoT құрылғылар
  • 512 өлшем: Сақтау орны шектеулі веб-қосымшалар
  • 1024 өлшем: Стандартты қосымшалар
  • 1536 өлшем: Ең жоғары дәлдік талап етілетін жағдайлар

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

Text-embedding-3-small мен text-embedding-3-large арасындағы айырмашылық қандай?#

Text-embedding-3-small 1536 өлшемді векторлар шығарады және шығын тиімділігі үшін оңтайланған. Text-embedding-3-large 3072 өлшемді векторлар береді, дәлдігі жоғарырақ, бірақ құны 6.5 есе қымбат. Көпшілік қолданбалар үшін text-embedding-3-small өте жақсы нәтиже береді.

Embedding-терді жасағаннан кейін өлшемді азайта аламын ба?#

Иә, dimensions параметрін қолдану арқылы бірден кіші векторларды генерациялай аласыз. Бұл толық векторларды жасап, кейін оларды қысқартқаннан гөрі тиімді.

Бір сұрауда қанша мәтінге embedding жасай аламын?#

Бір API сұрауында 2048 мәтінге дейін embedding жасай аласыз. Үлкен деректер жиынтығы үшін сұрауларды 2048 элементтен тұратын топтарға бөліңіз.

Embedding-векторлар нормалданған ба?#

Иә, text-embedding-3-small бірлік ұзындықтағы нормалданған векторларды қайтарады, сондықтан есептеуді жылдамдату үшін cosine similarity орнына жәй dot product қолдана аласыз.

Бастау#

  1. Тіркеліңіз: Crazyrouter
  2. API кілтіңізді алыңыз дашбордтан
  3. SDK орнатыңыз: pip install openai немесе npm install openai
  4. Жоғарыдағы код мысалдарымен embedding жасауды бастаңыз

Қатысты мақалалар:

Сұрақтарыңыз болса, support@crazyrouter.com поштасына жазыңыз

Implementation Guides

Topics

Tutorial

Related Posts

GPT-5 және GPT-5.2 API арқылы қалай қолжетімді болады - Толық әзірлеуші нұсқаулықTutorial

GPT-5 және GPT-5.2 API арқылы қалай қолжетімді болады - Толық әзірлеуші нұсқаулық

OpenAI-дың ең жаңа GPT-5, GPT-5.2 және o3-pro модельдеріне бірыңғай API арқылы қалай қолжетімді болуды үйреніңіз. Python, Node.js және curl мысалдарымен қадамдық нұсқаулық.

Jan 23
text-embedding-3-small өлшемдері түсіндіріледі: Сапа және құны үшін дұрыс өлшемді таңдауTutorial

text-embedding-3-small өлшемдері түсіндіріледі: Сапа және құны үшін дұрыс өлшемді таңдау

text-embedding-3-small өлшемдеріне арналған практикалық нұсқау, 256, 512, 1024 және 1536 өлшемдері арасында таңдау жасау.

Mar 27
Doubao Seed Code: ByteDance-тің AI-код генерациялау моделі - Толық API нұсқаулығыTutorial

Doubao Seed Code: ByteDance-тің AI-код генерациялау моделі - Толық API нұсқаулығы

Doubao Seed Code, ByteDance-тің қуатты AI-код генерациялау моделін қалай қолдану керегін біліңіз. Python, Node.js үлгілері және бағаларды салыстырумен толық API оқулығы.

Jan 26
Claude Code орнату және пайдалану жөніндегі нұсқаулық - AI бағдарламалау көмекшісін баптауTutorial

Claude Code орнату және пайдалану жөніндегі нұсқаулық - AI бағдарламалау көмекшісін баптау

Claude Code, AI бағдарламалау көмекшісін орнатып, баптауға арналған толық нұсқаулық. Node.js орнатуды, API токендерін баптауды және терминалда AI көмегімен код жазуды үйреніңіз.

Jan 24
Gemini CLI пайдаланушы нұсқаулығы - Google AI терминалыңыздаTutorial

Gemini CLI пайдаланушы нұсқаулығы - Google AI терминалыңызда

Gemini CLI орнату және баптау бойынша толық нұсқаулық, Google-дың ашық бастапқы кодты командалық жол AI құралы. Proxy орнатуды, кіріктірілген құралдарды қолдануды және Gemini 2.5 Pro арқылы жұмыс процестерін автоматтандыруды үйреніңіз.

Jan 24
2026 жылғы ең үздік AI музыка генераторлары: Suno, Udio және Stable Audio салыстыруыTutorial

2026 жылғы ең үздік AI музыка генераторлары: Suno, Udio және Stable Audio салыстыруы

Дұрыс AI музыка генераторын таңдау қиын болуы мүмкін. Бұл нұсқаулықта 2026 жылы қолжетімді негізгі AI музыка құралдары – Suno AI, Udio және Stable Audio – нақты бағаларымен және API қолжетімділігі туралы мәліметтермен салыстырылады.

Jan 23