API ile embedding’ler

Metinleri vektöre dönüştürün ve kelimeye göre değil anlama göre arayın. Tek anahtar, OpenAI /v1/embeddings biçimi ve yalnızca girdi token’ları için rubleyle ödeme.

Embedding nedir

Embedding, bir metnin anlamını tanımlayan sayı listesidir (vektör). Model bir ifadeyi, paragrafı veya belgeyi okur ve birkaç yüzden birkaç bine kadar sayıdan oluşan bir vektör döndürür.

Anlamı benzer metinler, ortak kelimeleri olmasa bile benzer vektörler alır. “Ürünü nasıl iade ederim?” ile “İade ve değişim koşulları” birbirine yakın olur, “Krediyi nasıl geri öderim?” ise daha uzakta kalır. Yakınlık kosinüs benzerliğiyle ölçülür: 1’e ne kadar yakınsa anlam o kadar yakındır.

Vektörleri bir kez veritabanına (pgvector, Qdrant, Milvus, Elasticsearch, Redis) kaydeder, ardından kullanıcı sorgusuna en yakın olanları milisaniyeler içinde bulursunuz.

Embedding’ler ne işe yarar

  • Anlamsal arama

    Farklı ifade edilmiş sorguları ve yazım hatalarını anlayan bilgi tabanı, katalog veya doküman araması.

  • Sohbet botları için RAG

    Uygun belge parçalarını bulun ve dil modelinin verilerinize göre yanıt vermesi için ona iletin.

  • Öneriler

    Açıklamalarının anlamına göre benzer ürünler, makaleler ve sorular, elle etiketleme olmadan.

  • Kümeleme ve analiz

    Yorumları, destek taleplerini ve başvuruları konuya göre gruplayın, tekrarlayan sorunları bulun.

  • Sınıflandırma

    Bir talebin konusunu, duygusunu veya ilgili departmanını her sınıfın örneklerine yakınlığına göre belirleyin.

  • Yinelenenleri bulma

    Farklı kelimelerle yazılmış olsalar bile tekrarlanan ilanları, soruları ve belgeleri bulun.

Nasıl bağlanılır

  1. Kaydolun ve bakiyenizi yükleyin: embedding’ler istek başına kopeğin küçük bir kısmına mal olur.
  2. Profilinizde bir API anahtarı oluşturun. Anahtar yalnızca bir kez gösterilir, kaydedin.
  3. Base URL’yi ve anahtarı OpenAI SDK’sında veya OpenAI API’sini destekleyen herhangi bir uygulamada belirtin ve metinleri /v1/embeddings adresine gönderin.

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

İstek örnekleri
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=["Ürünü nasıl iade ederim?", "İade ve değişim koşulları"],
)
print(len(result.data[0].embedding), result.usage.total_tokens)
Yanıt örneği
{
  "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 }
}

Tek istekte 2048 metne kadar gönderebilirsiniz. dimensions parametresi destekleyen modellerde vektörü kısaltır, encoding_format: base64 ise yanıtı küçültür.

15 satırda anlamsal arama

Belge vektörlerini bir kez alın, ardından sorgu vektörünü onlarla karşılaştırın.

import numpy as np
from openai import OpenAI

client = OpenAI(base_url="https://sujik.ru/v1", api_key="sk-sujik-...")
docs = ["İade ve değişim koşulları", "...", "..."]

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(["Ürünü nasıl iade ederim?"])[0]
scores = doc_vectors @ query  # unit vectors: dot product = cosine
best = int(scores.argmax())
print(docs[best], round(float(scores[best]), 3))

Modeller ve fiyatlar

Fiyat 1 milyon girdi token’ı içindir. API üzerinden sitedeki teste göre %10 daha ucuz.

Fiyatlar şu anda yüklenemedi. Güncel liste fiyatlar sayfasında.

Tüm fiyatlar

İpuçları

  • Yalnızca aynı modelin vektörlerini karşılaştırın: farklı modellerin uzayları farklıdır.
  • Daha isabetli arama için uzun belgeleri küçük bir örtüşmeyle 200–800 token’lık parçalara bölün.
  • Model değiştirdiğinizde dizini yeniden hesaplayabilmek için her vektörün yanında kaynak metni ve model id’sini saklayın.
  • Kısa bir vektör (dimensions 256–1024) neredeyse hiç kalite kaybı olmadan veritabanında yer kazandırır.

Sık sorulan sorular

Embedding’ler ne kadar?

Yalnızca girdi token’ları için model fiyatı üzerinden ödersiniz. Bin kısa ifade genellikle bir rubleden azdır. Model hata döndürürse ücret bakiyenize iade edilir.

OpenAI için yazdığım kod çalışır mı?

Evet. Uç nokta OpenAI /v1/embeddings ile uyumludur: base URL’yi ve anahtarı değiştirin, kodun geri kalanı ve resmi SDK’lar değişmeden çalışır.

Hangi modeli seçmeliyim?

Text Embedding 3 Small çoğu görev için hızlı ve ucuz bir modeldir. Text Embedding 3 Large ve Gemini Embedding karmaşık metinlerde ve farklı dillerde daha isabetlidir.

Embedding’ler Türkçe ile çalışır mı?

Evet, tüm modeller çok dillidir: aynı dizinde Türkçe, İngilizce ve diğer dilleri karıştırabilirsiniz.

Ücretsiz limitler harcanır mı?

Hayır. Embedding’ler bakiyeden ödenir, ücretsiz üretimler ve abonelikler bunlara harcanmaz.

API ile embedding: arama ve RAG için | SUJIK AI