Login
Back to Blog
TürkçeTutorial

Text-Embedding-3-Small API Eğitimi - OpenAI Gömme Modeli Kılavuzu

OpenAI text-embedding-3-small API'sini anlamsal arama, RAG sistemleri ve benzerlik eşleştirme için kullanmaya yönelik eksiksiz rehber. Python, Node.

C
Crazyrouter Team
January 26, 2026 / 344 views
Share:
Text-Embedding-3-Small API Eğitimi - OpenAI Gömme Modeli Kılavuzu

Anlamsal bir arama motoru veya RAG (Retrieval-Augmented Generation) sistemi mi oluşturuyorsunuz? Text-embedding-3-small, metni sayısal vektörlere dönüştüren, güçlü benzerlik araması ve içerik getirme imkânı sağlayan OpenAI'nin en yeni gömme modelidir.

Bu rehberde şunları öğreneceksiniz:

  • Metin gömmeleri nedir ve neden önemlidir
  • Text-embedding-3-small API'si nasıl kullanılır
  • Python ve Node.js ile eksiksiz kod örnekleri
  • Depolama için optimize edilmiş özel boyutlar
  • Fiyat karşılaştırması ve maliyet optimizasyonu

Text-Embedding-3-Small Nedir?#

Text-embedding-3-small, Ocak 2024'te yayımlanan, OpenAI'nin kompakt gömme modelidir. Metni anlamsal anlamı yakalayan, 1536 boyutlu vektörlere dönüştürerek şunları mümkün kılar:

  • Anlamsal Arama: Sadece anahtar kelimelere değil, anlama dayalı olarak ilgili dokümanları bulun
  • RAG Sistemleri: LLM yanıtları için bağlam getirin
  • Benzerlik Eşleştirme: Öneriler için metin benzerliğini karşılaştırın
  • Kümeleme: Benzer dokümanları gruplayın
  • Sınıflandırma: Metni içeriğe göre kategorize edin

Model Özellikleri#

ÖzellikDeğer
Model Adıtext-embedding-3-small
Varsayılan Boyut1536
Özel Boyutlar256, 512, 1024, 1536
Maksimum Girdi Tokenı8,191
ÇıktıNormalleştirilmiş vektör

Hızlı Başlangıç#

Ön Koşullar#

  1. Crazyrouter sitesine kaydolun
  2. Panelden API anahtarınızı alın
  3. Python 3.8+ veya Node.js 16+

Python Örneği#

python
from openai import OpenAI

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

# Tek bir metin için gömme üret
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 Örneği#

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 Örneği#

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"
  }'

Yanıt:

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, ...]
    }
  ]
}

Toplu Gömme#

Daha iyi verimlilik için birden fazla metni tek bir API çağrısında işleyin:

python
from openai import OpenAI

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

# Toplu gömme - birden fazla metni aynı anda işle
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
)

# Her gömmeye eriş
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

Özel Boyutlar#

Daha küçük boyutlar kullanarak depolama maliyetlerini azaltın. Model, kaliteyi korurken boyut küçültmeyi destekler:

python
# 1536 yerine 512 boyut kullan
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Your text here",
    dimensions=512  # Seçenekler: 256, 512, 1024, 1536
)

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

Boyut Karşılaştırması#

BoyutDepolama (vektör başına)Kullanım Senaryosu
2561 KBMobil uygulamalar, sınırlı depolama
5122 KBDengeli performans
10244 KBYüksek doğruluk ihtiyaçları
15366 KBMaksimum doğruluk

Anlamsal Arama Sistemi Kurma#

İşte anlamsal bir arama sistemi kurmanın eksiksiz bir örneği:

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):
    """Tek bir metin için gömme al"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )
    return response.data[0].embedding

def cosine_similarity(a, b):
    """İki vektör arasındaki kosinüs benzerliğini hesapla"""
    return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))

# Doküman veritabanı
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"
]

# Tüm dokümanlar için gömmeleri önceden hesapla
doc_embeddings = [get_embedding(doc) for doc in documents]

# Arama fonksiyonu
def search(query, top_k=3):
    query_embedding = get_embedding(query)

    # Benzerlikleri hesapla
    similarities = [
        cosine_similarity(query_embedding, doc_emb)
        for doc_emb in doc_embeddings
    ]

    # En iyi sonuçları al
    results = sorted(
        zip(documents, similarities),
        key=lambda x: x[1],
        reverse=True
    )[:top_k]

    return results

# Örnek arama
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

Vektör Veritabanlarıyla Entegrasyon#

Pinecone Entegrasyonu#

python
import pinecone
from openai import OpenAI

# İstemcileri başlat
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):
    """Metinleri göm ve Pinecone'da sakla"""
    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):
    """Sorgu gömmesiyle Pinecone'da ara"""
    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 Entegrasyonu#

python
import chromadb
from openai import OpenAI

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

# ChromaDB'yi başlat
chroma_client = chromadb.Client()
collection = chroma_client.create_collection("documents")

def get_embeddings(texts):
    """Birden fazla metin için gömmeleri al"""
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=texts
    )
    return [data.embedding for data in response.data]

# Doküman ekle
documents = ["doc1 content", "doc2 content", "doc3 content"]
embeddings = get_embeddings(documents)

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

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

Mevcut Gömme Modelleri#

Crazyrouter, birden fazla OpenAI gömme modeline erişim sağlar:

ModelBoyutFiyat OranıEn Uygun Kullanım
text-embedding-3-small15360.01Genel kullanım, en iyi değer
text-embedding-3-large30720.065Yüksek hassasiyet gerektiren durumlar
text-embedding-ada-00215360.05Eski sistem uyumluluğu

Fiyat Karşılaştırması#

SağlayıcıModel1M token başına fiyat
OpenAI Resmitext-embedding-3-small$0.020
Crazyroutertext-embedding-3-small$0.002
OpenAI Resmitext-embedding-3-large$0.130
Crazyroutertext-embedding-3-large$0.013

Fiyat Uyarısı: Gösterilen fiyatlar örnek amaçlıdır ve değişebilir. Gerçek faturalandırma, istek zamanındaki gerçek zamanlı fiyatlara göre yapılır.

Maliyet Tasarrufu Örneği:

Aylık 10M token işleyen bir RAG sistemi için:

  • OpenAI Resmi: $200/ay
  • Crazyrouter: $20/ay
  • Tasarruf: %90

En İyi Uygulamalar#

1. İsteklerinizi Toplu Gönderin#

python
# İyi - birden fazla metin için tek API çağrısı
response = client.embeddings.create(
    model="text-embedding-3-small",
    input=["text1", "text2", "text3"]  # 2048 metne kadar
)

# Kötü - birden fazla API çağrısı
for text in texts:
    response = client.embeddings.create(
        model="text-embedding-3-small",
        input=text
    )

2. Gömmeleri Önbelleğe Alın#

python
import hashlib
import json

embedding_cache = {}

def get_embedding_cached(text):
    # Önbellek anahtarı oluştur
    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. Uygun Boyutları Kullanın#

  • 256 boyut: Mobil uygulamalar, IoT cihazları
  • 512 boyut: Depolama kısıtlı web uygulamaları
  • 1024 boyut: Standart uygulamalar
  • 1536 boyut: Maksimum doğruluk gereksinimleri

Sıkça Sorulan Sorular#

Text-embedding-3-small ile text-embedding-3-large arasındaki fark nedir?#

Text-embedding-3-small, 1536 boyutlu vektörler üretir ve maliyet verimliliği için optimize edilmiştir. Text-embedding-3-large ise 3072 boyutlu, daha yüksek doğruluk sağlayan vektörler üretir, ancak 6.5 kat daha pahalıdır. Çoğu uygulama için text-embedding-3-small mükemmel sonuçlar sunar.

Gömme ürettikten sonra boyutu küçültebilir miyim?#

Evet, daha küçük vektörler üretmek için dimensions parametresini kullanabilirsiniz. Bu, tam boyutlu vektör üretip sonradan kısaltmaktan daha verimlidir.

Tek bir istekte kaç metni gömebilirim?#

Tek bir API isteğinde 2048 metne kadar gömme yapabilirsiniz. Büyük veri kümeleri için isteklerinizi 2048'lik gruplar halinde toplu olarak gönderin.

Gömmeler normalleştirilmiş mi?#

Evet, text-embedding-3-small birim uzunlukta (normalize) vektörler döndürür, dolayısıyla daha hızlı hesaplama için kosinüs benzerliği yerine noktasal çarpım (dot product) kullanabilirsiniz.

Başlarken#

  1. Crazyrouter üzerinde kayıt olun
  2. Panelden API anahtarınızı alın
  3. SDK'yı kurun: pip install openai veya npm install openai
  4. Yukarıdaki kod örnekleriyle gömme işlemine başlayın

İlgili Yazılar:

Sorularınız için: support@crazyrouter.com

Implementation Guides

Topics

Tutorial

Related Posts

Doubao Seed Code: ByteDance'in Yapay Zekâ Kod Üretim Modeli - Eksiksiz API RehberiTutorial

Doubao Seed Code: ByteDance'in Yapay Zekâ Kod Üretim Modeli - Eksiksiz API Rehberi

Doubao Seed Code'u, ByteDance'in güçlü yapay zekâ kod üretim modelini kullanmayı öğrenin. Python, Node.js örnekleri ve fiyat karşılaştırması içeren eksiksiz API eğitimi.

Jan 26
GPT-5 ve GPT-5.2'ye API Üzerinden Erişim - Geliştiriciler için Eksiksiz RehberTutorial

GPT-5 ve GPT-5.2'ye API Üzerinden Erişim - Geliştiriciler için Eksiksiz Rehber

OpenAI'nin en yeni GPT-5, GPT-5.2 ve o3-pro modellerine birleşik bir API aracılığıyla nasıl erişeceğinizi öğrenin. Python, Node.js ve curl örnekleriyle adım adım rehber.

Jan 24
text-embedding-3-small Boyutları Açıklandı: Kalite ve Maliyet için Doğru Boyutu SeçmeTutorial

text-embedding-3-small Boyutları Açıklandı: Kalite ve Maliyet için Doğru Boyutu Seçme

text-embedding-3-small boyutlarına yönelik pratik bir rehber, 256, 512, 1024 ve 1536 boyutları arasında nasıl seçim yapacağınız.

Mar 27
Claude Code Kurulum ve Kullanım Kılavuzu - Yapay Zeka Programlama Asistanı KurulumuTutorial

Claude Code Kurulum ve Kullanım Kılavuzu - Yapay Zeka Programlama Asistanı Kurulumu

Claude Code, yapay zeka programlama asistanını kurmak ve yapılandırmak için eksiksiz kılavuz. Node.js kurulumunu yapmayı, API jetonlarını yapılandırmayı ve terminalinizde yapay zekayla kod yazmaya başlamayı öğrenin.

Jan 24
Gemini CLI Kullanıcı Rehberi - Terminalinizde Google AITutorial

Gemini CLI Kullanıcı Rehberi - Terminalinizde Google AI

Gemini CLI’yi, Google’ın açık kaynak komut satırı AI aracını kurma ve yapılandırma için eksiksiz rehber. Proxy kurmayı, yerleşik araçları kullanmayı ve Gemini 2.5 Pro ile iş akışlarını otomatikleştirmeyi öğrenin.

Jan 24
En İyi Yapay Zekâ Müzik Üreticileri 2026: Suno vs Udio vs Stable Audio KarşılaştırmasıTutorial

En İyi Yapay Zekâ Müzik Üreticileri 2026: Suno vs Udio vs Stable Audio Karşılaştırması

Doğru yapay zekâ müzik üreticisini seçmek bunaltıcı olabilir. Bu rehber, 2026'da kullanılabilen en iyi yapay zekâ müzik araçlarını, gerçek fiyatlandırma ve API erişim bilgileriyle birlikte Suno AI, Udio ve Stable Audio dâhil olmak üzere karşılaştırıyor.

Jan 23