Ana içeriğe atla

Weaviate Eğitimi: Vektör Aramanın Gücünü Açığa Çıkarma

Açık kaynaklı, gerçek zamanlı bir vektör arama motoru olan Weaviate’in işlevlerini, kapsamlı başlangıç rehberimizle keşfedin.
Güncel 3 Eki 2026  · 11 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Weaviate; veri nesnelerini ve vektör gömlemeleri depolamanıza, benzerlik ölçülerine göre sorgulamanıza olanak tanıyan açık kaynaklı, bulut-yerli, modüler ve gerçek zamanlı bir vektör arama motorudur. Bu eğitimde Weaviate ve temel kavramlarını inceleyecek, kurulumunu öğrenecek, bir şema oluşturacak, veri ekleyecek ve Weaviate’in GraphQL arayüzüyle veriyi sorgulayacağız. Ayrıca Weaviate’i Python ile nasıl kullanacağınızı kapsayacak ve şema tasarımı, veri içe aktarma ve sorgu optimizasyonu için en iyi uygulamalar ile ipuçlarını tartışacağız.

Weaviate nedir?

Weaviate, hem nesneleri hem de vektörleri depolayan, vektör aramayı birleştirmeye olanak tanıyan bir vektör veritabanıdır. Modüler, bulut-yerli ve gerçek zamanlı yapısıyla makine öğrenmesi modellerini ölçeklemek kolaydır. Weaviate; metin, görüntü ve diğer medya türleri için isteğe bağlı modüllerle gelir; görevinize ve verinize göre bunları seçebilirsiniz. Veri çeşitliliğine bağlı olarak birden fazla modül de kullanabilirsiniz.

Gömlemeleri Anlama

Metin, görüntü ve ses gibi yapılandırılmamış veriler önceden tanımlı bir formata sahip değildir; bu da geleneksel veritabanları ve yöntemlerin işlemesini zorlaştırır.

Bu verileri YZ ve makine öğrenmesi uygulamalarında kullanılabilir hale getirmek için, gömlemeler kullanılarak sayısal vektörlere dönüştürülür.

Gömlemeler, yüksek boyutlu verileri sıkıştırılmış sayısal biçimlere dönüştüren, YZ modellerinin verimli şekilde işlemesini sağlayan uzmanlaşmış sözlükler gibidir.

Veri boyutunu azaltmada ve geleneksel kodlama yöntemlerinin sınırlarını aşmakta kritik öneme sahiptirler; YZ’nin veri içindeki karmaşık ilişkileri ve bağlamı anlamasını sağlarlar.

Metin Gömme Modeli

Metin Gömme Modeli - Görsel Kaynağı

Vektör Veritabanlarını Anlama

Geleneksel veritabanları verileri tablolarda depolar ve SQL ile sorgulanabilir. Ancak SQL, metin veya görüntü gibi yapılandırılmamış verilerde arama yapmak için uygun değildir. Buna karşın, vektör veritabanları verileri vektör olarak depolar ve benzerlik ölçülerine göre sorgulanabilir.

Bu, anlamsal arama, soru-cevap ve üretken arama gibi görevlere çok uygundur. Vektörler, ML gömme modeli kullanılarak elde edilir. Metin, görüntü, ses, video vb. orijinal nesnenin sayısal temsilleridir.

Bir dil modelinin geniş metin doküman kümelerini analiz edip sınıflandırmak için kullanıldığı bir senaryoyu düşünün. Her doküman, anlamsal özü nü barındıran yüksek boyutlu bir vektöre dönüştürülebilir.

Bu vektörleri geleneksel bir veritabanında depolamak, benzerlik araması veya kümeleme gibi görevler için verimli olmayabilir.

İşte bu noktada bir vektör veritabanı işe yarar. Vektörleri depolamak ve en yakın komşuları bulma ya da vektörler arasında kosinüs benzerliği hesaplama gibi yüksek hızlı vektör işlemlerini yapmak üzere optimize edilmiştir.

Vektör veritabanı diyagramı

Görsel Kaynağı

Pinecone, Weaviate’e alternatif olarak çok bilinen bir başka vektör veritabanıdır. Pinecone hakkında daha fazla bilgi edinmek isterseniz, Pinecone ile Vektör Veritabanlarının Ustalığı Eğitimi’ne göz atın.

Weaviate Nasıl Kurulur

Weaviate’i kurmak için Docker Compose kullanabilir veya elle yükleyebilirsiniz. Kurulumu basitleştirdiği için önerilen yöntem Docker Compose’tur. Weaviate’i yükledikten sonra, basit bir sorgu çalıştırarak kurulumu doğrulayabilirsiniz.

Docker Compose için, Weaviate’ten bu yaml dosyasını indirin. Bu dosyayı aldıktan sonra, şu komutu çalıştırmanız yeterlidir:

docker compose up -d

Weaviate’i kullanmanın diğer seçenekleri şunlardır:

Weaviate’i Python’da kullanmak için, weaviate Python istemcisini pip ile yükleyebilirsiniz.

!pip install -U weaviate-client

Weaviate’te Temel Kavramlar

Veri nesnesi

Weaviate’te her veri öğesi bir “Sınıf” adı verilen bir gruba aittir ve “Özellikler” adı verilen belirli niteliklere sahiptir. Bu veri öğeleri (JSON dokümanları olarak temsil edilir) sınıf tabanlı koleksiyonlardır.

Her veri öğesi bir vektörle (makine öğrenmesi gömme modeli) temsil edilir. Her sınıf tabanlı koleksiyon, ortak bir şema ile tanımlanan aynı sınıfa ait nesneler içerir.

Modüller

Weaviate esnek bir şekilde inşa edilmiştir; verileri vektörlere dönüştürme veya yedekleme oluşturma gibi isteğe bağlı özellikler eklemenize olanak tanır.

Bu eklentiler olmadan, Weaviate’in temel sürümü vektör verileri için tasarlanmış bir veritabanı olarak hizmet verir.

Weaviate dönüştürücü diyagramı

Görsel Kaynağı

Depolama

Weaviate, verileri anında kaydeden ve yazılım ile donanım hatalarını yönetebilen güvenilir bir veritabanıdır.

Bir şeyi vektörlerle aradığınızda, Weaviate yalnızca bir tanımlayıcı (ID gibi) yerine size tam veri öğesini (diğer veritabanlarında bazen “doküman” denir) verir.

Hem düz hem de vektör tabanlı aramaları birlikte kullanırsanız, filtreler vektör aramasından önce uygulanır; böylece talep ettiğiniz tam sayıda sonuç almanız sağlanır. Bu, aramadan sonra filtreleme yapılan ve sonuç sayısının değişebildiği yaklaşımdan farklıdır.

Verileri ve vektörlerini, veritabanından okuma yaparken bile, serbestçe güncelleyebilir veya silebilirsiniz.

GraphQL

Weaviate ile RESTful API ve GraphQL API dahil olmak üzere API’leri aracılığıyla etkileşim kurabilirsiniz. Tüm programlama dillerinin istemci kütüphaneleri bu API özellikleriyle uyumludur.

GraphQL, yalnızca ihtiyacınız olan veriyi talep etmenize olanak tanıyan bir API sorgu dilidir. REST gibi geleneksel yöntemlere kıyasla veritabanlarıyla etkileşimi daha verimli ve esnek hale getirir.

GraphQL arayüzü birçok nedenle seçilmiştir; bunlar şunları içerir:

  • Weaviate içindeki verileri çapraz referanslarla bağlamaya olanak tanır; bu da GraphQL gibi grafik tabanlı bir sorgu dilini oldukça etkili kılar.
  • GraphQL aşırı ya da eksik veri çekmeyi ortadan kaldırır; yalnızca talep ettiğiniz bilgiyi sağlar ve performansı artırır.
  • Süreci basitleştirir ve hataya yol açma olasılığı daha düşüktür.

Weaviate’te Bir Sınıf Oluşturma

Her Weaviate nesnesi bir sınıfa aittir. Sınıfı elle oluşturabilir veya Weaviate’in Auto-schema özelliğini kullanabilirsiniz. Sınıfı elle oluşturduğunuzda, veri modelinin üzerinde daha fazla denetime sahip olursunuz.

Python istemci kütüphanesini kullanarak bir sınıf oluşturmak için:

class_name = "Item description"
class_object = {"class": class_name}
client.schema.create_class(class_object)  

Genellikle ek yapılandırmalar da belirtirsiniz; Weaviate.io’dan alınan daha gerçeğe yakın bir örnek şöyledir:

{
"class": "Article",
"vectorizer": "text2vec-cohere",
"vectorIndexConfig": {
"distance": "cosine",
},
"moduleConfig": {
"generative-openai": {}
},
"properties": [
{
"name": "title",
"dataType": ["text"]
},
{
"name": "chunk",
"dataType": ["text"]
},
{
"name": "chunk_no",
"dataType": ["int"]
},
{
"name": "url",
"dataType": ["text"],
"tokenization": "field"
},
],
}

text2vec-cohere adlı vektörleştirme modelinin ve cosine uzaklık ölçütünün tanımlandığına dikkat edin. Özelliklerin sözlük listesinden oluştuğuna da dikkat edin.

Weaviate’te Nesne Oluşturma

Nesne bir sınıfa aittir. Nesneler sınıf özelliklerini atlayabildiği gibi yeni özellikler de ekleyebilir. Aşağıda Article sınıfına bir nesne ekleme örneği bulunmaktadır.

uuid = client.data_object.create({
'question': 'question here ...',
'answer': 'answer here ...'
}, 'Article')

İsteğe bağlı olarak her nesneyi temsil eden bir vektör atayabilirsiniz. Bir vektör tanımlamazsanız, Weaviate varsayılan vektörleyicisini kullanır.

uuid = client.data_object.create(
data_object={
'question': 'question here ...',
'answer': 'answer here ...',
},
class_name='Article',
vector=[0.12345] * 1536

Python İstemcisi Kullanarak Weaviate’te Bir Vektör Veritabanı Oluşturma ve Kullanmanın Uçtan Uca Örneği

Bu örnek, Weaviate’in Python istemcisiyle bir sınıfı nasıl oluşturacağınızı ve ardından bu sınıfa nasıl nesne ekleyeceğinizi gösterir. Önce pip ile Python istemcisini yüklemelisiniz.

!pip install -U weaviate-client

Weaviate ile çalışmak için çalışan bir Weaviate örneğine sahip olmanız gerekir. Bunu kullanmanın iki yolu vardır: ilk olarak Weaviate bulut hizmetinde tam yönetilen barındırılan bir örnek kullanmak. Alternatif olarak, uygulamanızın arka planında çalışan Gömülü Weaviate’i kullanabilirsiniz.

# For using embedded
import weaviate
from weaviate.embedded import EmbeddedOptions
import json
import os


client = weaviate.Client(
    embedded_options=EmbeddedOptions(),
    additional_headers = {
        "X-OpenAI-Api-Key": "YOUR_OPENAI_KEY"
    }
)

Bir sınıf oluşturmak oldukça kolaydır:

class_obj = {
    "class": "Question",
    "vectorizer": "text2vec-openai",      
"moduleConfig": {
        "text2vec-openai": {},
        "generative-openai": {}
    }
}


client.schema.create_class(class_obj)

Vektörleyici None olarak ayarlanırsa, vektörleri kendiniz bir liste olarak sağlamanız gerekir.

Artık oluşturulan Question sınıfına toplu içe aktarma süreciyle nesneler ekleyebiliriz. JSON formatında Jeopardy S&C verisini kullanacağız. Görünümü şu şekildedir:

Veri Kaynağı (Kredi: Weaviate Resmi)

Veri Kaynağı (Kredi: Weaviate Resmi)

# Load data
import requests
url = 'https://raw.githubusercontent.com/weaviate-tutorials/quickstart/main/data/jeopardy_tiny.json'
resp = requests.get(url)
data = json.loads(resp.text)


# Configure a batch process
with client.batch(
    batch_size=100
) as batch:
    # Batch import all Questions
    for i, d in enumerate(data):
        print(f"importing question: {i+1}")


        properties = {
            "answer": d["Answer"],
            "question": d["Question"],
            "category": d["Category"],
        }


        client.batch.add_data_object(
            properties,
            "Question",
        )

Bu örnek, Weaviate dokümanları kullanılarak yeniden üretilmiştir.

Weaviate İçin En İyi Uygulamalar ve İpuçları

Weaviate’i etkili bir şekilde kullanmak için bazı yararlı ipuçlarına derinlemesine bakalım. İster şemanızı tasarlıyor, ister veri içe aktarıyor, ister sorguları optimize ediyorsunuz; bu en iyi uygulamalar Weaviate’in yeteneklerinden en iyi şekilde yararlanmanıza yardımcı olacaktır.

Şema tasarımı

  • Şemanızı esnek ve ölçeklenebilir olacak şekilde tasarlayın. Böylece şemayı değiştirmenize gerek kalmadan yeni özellikler ekleyebilir ve mevcutlarını değiştirebilirsiniz.
  • Her öge ve eylem için eşsiz tanımlayıcılar kullanın. Bu, veriyi sorgulamayı kolaylaştırır ve yinelenmeleri önler.
  • Ögelerin ve eylemlerin özelliklerini tanımlamak için anlamsal türler kullanın. Bu, veriyi sorgulamayı kolaylaştırır ve şema genelinde tutarlılığı sağlar.

Veri İçe Aktarma

  • Veriyi verimli bir şekilde eklemek için toplu içe aktarma işlevini kullanın. Bu, büyük miktarda veriyi tek seferde eklemenizi sağlar ve performans sorunlarını önler.
  • Veri eklemek için RESTful API’yi kullanın. Bu, veri içe aktarma sürecini otomatikleştirmenize ve diğer araçlarla entegre etmenize olanak tanır.
  • JSON veya CSV gibi desteklenen veri formatlarını kullanın. Bu, verinin doğru şekilde içe aktarılmasını sağlar ve hataları önler.

Sorgu Optimizasyonu

  • Veriyi sorgulamak için Weaviate’in GraphQL arayüzünü kullanın. Bu, karmaşık sorgular gerçekleştirmenizi ve veriyi belirli kriterlere göre filtrelemenizi sağlar.
  • Her sorgunun döndürdüğü veri miktarını sınırlandırmak için sayfalandırma kullanın. Bu, performansı iyileştirir ve sunucu yükünü azaltır.
  • Sık erişilen verileri depolamak için önbellekleme kullanın. Bu, performansı iyileştirir ve veriyi getirmek için gereken sorgu sayısını azaltır.

ChromaDB, veri bilimi topluluğunda popüler başka bir açık kaynak vektör veritabanıdır. Chroma DB ile metin dokümanlarını kolayca yönetebilir, metni gömlemelere dönüştürebilir ve benzerlik aramaları yapabilirsiniz. ChromaDB hakkında daha fazla bilgi edinmek istiyorsanız, Chroma DB Eğitimi’ne göz atın.

Sonuç

Weaviate Eğitimi, açık kaynaklı, bulut-yerli, gerçek zamanlı bir vektör arama motoru olan Weaviate’i anlama ve kullanmaya yönelik kapsamı bir rehber sunar. Blog; Weaviate’in ne olduğunun temellerinden ve geleneksel veritabanlarından nasıl farklılaştığından, kurulum ve etkili kullanıma dair ayrıntılara kadar geniş bir konu yelpazesini kapsar.

Weaviate, yapılandırılmamış verileri vektör gömlemeleri aracılığıyla işleyebilme becerisiyle öne çıkar; bu da onu makine öğrenmesi ve YZ uygulamaları için güçlü bir araç yapar. Modüler mimarisi esneklik sağlar ve özel ihtiyaçlarınıza göre isteğe bağlı modülleri seçmenize izin verir. Blog, ayrıca gömlemelerin önemine de değinerek, yüksek boyutlu verileri YZ modellerinin kolayca işleyebileceği bir formata nasıl dönüştürdüğünü açıklar.

Weaviate hakkında öğrenmeye devam etmek isterseniz, Python ile Veri Bilimi için Vektör Veritabanları webinarımıza göz atın.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Veri Bilimci, PyCaret'in Kurucusu ve Yaratıcısı

Konular
Yapay Zeka

Bugün YZ ile Çalışmaya Başlayın!

Kurs

Üretken Yapay Zeka Kavramları

2 sa
121.2K
Üretken yapay zekâyı sorumlu kullanmaya başlayın. Üretken yapay zekâ modellerinin nasıl geliştirildiğini ve gelecekte toplumu nasıl etkileyeceğini öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör