RAG Nedir? Geri Almayla Artırılmış Üretim Bir Çalışma Örneğiyle Açıklanıyor

  1. Ana sayfa
  2. Blog
  3. Yapay Zeka

Yapay Zeka

RAG Nedir? Geri Almayla Artırılmış Nesil Bir Çalışma Örneğiyle Açıklanıyor

RAG, bir yapay zeka modelinin yalnızca bellek yerine kendi belgelerinizden yanıt vermesine olanak tanır. İşlem hattının nasıl çalıştığını öğrenin, sade Python’da küçük bir sürümü çalıştırın ve gerçek sistemlerin neden başarısız olduğunu ve bunların nasıl test edileceğini görün.

9 dk okuma
RAG nedir? Geri almayla artırılmış nesil, çalışan bir örnekle açıklandı

Önemli noktalar

  • RAG ilk önce ilgili bilgiyi bulur, onu isteme ekler ve ardından modelden buna göre yanıt vermesini ister.
  • Bir dil modelini özel veya sık değişen verilere bağlamanın olağan yoludur.
  • Çoğu kalite sorunu modelde değil, erişim ve veri hazırlama aşamasında başlar.
  • RAG, uydurma yanıtları azaltır ancak ortadan kaldırmaz, bu nedenle test etmeniz gerekir.

Genel bir yapay zeka asistanına şirketinizin geri ödeme politikasını sorun, o yalnızca tahminde bulunabilir. Belgelerinizi hiç görmedi. Almayla artırılmış oluşturmanın kısaltması olan RAG, doğru bilgiyi arayıp bunu soruyla birlikte modele vererek bu sorunu çözer.

Bu kılavuz her aşamayı sade bir dille açıklıyor, ardından yalnızca Python’un standart kütüphanesini kullanarak küçük bir versiyon oluşturuyor. Bu kodu Python 3.13’te çalıştırdık ve gösterilen puanlar bu çalıştırmadan geliyor. Herhangi bir dil modeli kullanmadığından, geri getirme ve hızlı oluşturma işlemlerini gösterir ve son yanıt adımını test etmedik.

RAG nedir?

Erişimle artırılmış nesil, bir arama adımını bir dil modeliyle birleştiren bir tekniktir. Bir soru geldiğinde sistem bir bilgi kaynağı arar, en iyi sonuçları istemlere ekler ve modelden bu materyale göre yanıt vermesini ister.

Açık kitaplı bir sınav düşünün. Kapalı kitaplı bir öğrenci hafızasına güvenir ve kendinden emin bir şekilde yanlış hatırlayabilir. Açık kitap öğrencisi ilk önce doğru sayfaya bakabilir. RAG, modele bu kitabı verir ve aynı zamanda hangi sayfayı kullandığını göstermesini sağlar.

RAG’ın çözdüğü sorun

Bir dil modelinin iş kullanımı açısından kendi başına üç sınırı vardır:

  • Özel verilerinizi bilmiyor. Politikalarınız, biletleriniz ve sözleşmeleriniz eğitiminin bir parçası değildi.
  • Bilgisinin bir sınırı vardır. Bu sabah değiştirdiğiniz bir fiyattan haberi olamaz.
  • Cevaplar icat edebilir. Emin olmadığınızda makul ancak yanlış bir şey üretebilir.

RAG bu üçüne de hitap eder ve hiçbir şeyi yeniden eğitmeniz gerekmez. Bir belgeyi güncelleyin, yeniden dizinleyin ve bir sonraki yanıt onu kullanabilir.

RAG nasıl çalışır, adım adım

Bir RAG sisteminin iki boru hattı vardır. Biri verilerinizi önceden hazırlar, diğeri ise her soru için çalışır.

Dizin oluşturma: verilerinizi hazırlama

  1. Yükle: PDF’lerden, wiki’lerden, veritabanlarından veya destek taleplerinden içerik toplayın.
  2. Temizleyin ve parçalayın: Önemsizleri kaldırın, ardından belgeleri küçük bölümlere ayırın.
  3. Yerleştirme: her bir pasajı, yerleştirme adı verilen ve anlamını yakalayan bir sayı listesine dönüştürür.
  4. Depolama: yerleştirmeleri aranabilir bir dizine, genellikle bir vektör veritabanına kaydeder.

Sorgulama: Bir soruyu yanıtlamak

  1. Geri alma: soruyu yerleştirin ve anlam açısından en yakın pasajları bulun.
  2. Augment: bu pasajları istemin içine ekleyin.
  3. Oluştur: model, bu bağlamı kullanarak bir yanıt yazar.

Alma işleminde vektörlerin kullanılması gerekmez. Verileriniz için doğru bilgiyi hangisi bulursa bu, bir anahtar kelime araması veya hatta bir SQL sorgusu olabilir.

Küçük bir çalışma örneği

Hareketli parçaları net bir şekilde görebilmeniz için burada kütüphanesi olmayan küçük bir av köpeği var. Metni kelime sayısı olarak temsil eder, gerçek yerleştirmeler için çok daha basit bir alternatiftir ve kosinüs ölçüsünü kullanarak benzerliği puanlar.

import math, re
from collections import Counter

DOCS = {
    "refunds": "Refunds are paid within 7 days to the original payment method.",
    "shipping": "Standard shipping takes 3 to 5 working days across India.",
    "warranty": "All keyboards include a 2 year warranty against defects.",
}

def vectorize(text):
    return Counter(re.findall(r"[a-z0-9]+", text.lower()))

def similarity(a, b):
    dot = sum(a[word] * b[word] for word in a)
    size = math.sqrt(sum(v * v for v in a.values()))
    size *= math.sqrt(sum(v * v for v in b.values()))
    return dot / size if size else 0

def retrieve(question, k=1):
    q = vectorize(question)
    scored = [(similarity(q, vectorize(t)), name) for name, t in DOCS.items()]
    return sorted(scored, reverse=True)[:k]

def build_prompt(question):
    (score, name), = retrieve(question)
    return (
        "Answer using only the context. If it is not there, say you do not know.\n"
        f"Context: {DOCS[name]}\n"
        f"Question: {question}"
    )

Geri ödemeler hakkında soru sormak doğru pasajı bulur ve şu istemi oluşturur:

print(retrieve("How many days until refunds are paid?"))
# [(0.4558..., 'refunds')]

print(build_prompt("How many days until refunds are paid?"))
# Answer using only the context. If it is not there, say you do not know.
# Context: Refunds are paid within 7 days to the original payment method.
# Question: How many days until refunds are paid?

Eksiksiz bir sistemde artık bu istemi bir dil modeline göndereceksiniz. Önemli ayrıntı, yanıt eksik olduğunda kabul etme talimatıdır; bunun hakkında daha fazla bilgiyi hızlı mühendislik kılavuzumuzda bulabilirsiniz.

Örneğimizin kaçırdığı şey

Şimdi aynı anlama gelen ancak farklı kelimeler kullanan bir soru deneyin:

print(retrieve("When can I get my money back?", k=3))
# [(0.0, 'warranty'), (0.0, 'shipping'), (0.0, 'refunds')]

Her puan sıfırdır çünkü soru hiçbir belgeyle hiçbir kelimeyi paylaşmaz. “Para iadesi”, bir insana geri ödeme anlamına gelir, ancak kelime sayıları bunu söyleyemez. Bu tek çıktı, gerçek sistemlerin neden benzer anlamlara sahip metinlerin ortak kelimeler olmasa bile benzer sayılarla sonuçlanacağı şekilde tasarlanmış yerleştirmeleri kullandığını açıklamaktadır.

Ancak yerleştirmelerin her şeyi çözdüğünü varsaymayın. Anahtar kelime aramasının çok iyi şekilde üstesinden geldiği ürün kodları ve hata numaraları gibi kesin terimlerle uğraşabilirler. Bu nedenle birçok üretim sistemi, iki yaklaşımı birleştiren karma aramayı kullanır.

Parçalama: insanların hafife aldığı adım

Dosyaların tamamı çok uzun olduğundan ve alınması kesin olmadığından belgeler parçalara bölünür. Seçtiğiniz boyut gerçek bir ödünleşim gerektirir:

Parça boyutu Avantaj Risk
Çok küçük Hassas eşleşmeler Bir kuralın hangi ürüne uygulanacağı gibi bağlamı kaybeder
Çok büyük Bağlamı korur Anlamı sulandırır ve istemin daha fazlasını kullanır
Yapıya göre bölünmüş Başlıklara ve bölümlere saygı duyar Daha temiz kaynak belgelere ihtiyaç var

Parçalar arasında bir miktar örtüşme olan birkaç yüz kelime ortak bir başlangıç noktasıdır, ancak bunu test edilecek ilk tahmin olarak değerlendirin. Mümkün olduğunda başlıklar gibi doğal sınırlar boyunca bölün. Sonuçları filtreleyebilmeniz ve kaynaklardan alıntı yapabilmeniz için belge başlığı, tarih ve departman gibi meta verileri de ekleyin.

Erişimi iyileştirme

Yanıtlar yetersiz olduğunda, denemeye en değer yükseltmeler kabaca şu şekildedir:

  • Verileri temizleyin. Önce güncel olmayan ve yinelenen belgeleri kaldırın. Hiçbir algoritma çelişkili kaynakları düzeltmez.
  • Karma aramayı kullanın. Anlam temelli ve anahtar kelime sonuçlarını birleştirin.
  • Yeniden sıralama ekleyin. Daha fazla aday getirin, ardından bunları alaka düzeyine göre yeniden sıralamak için özel bir model kullanın.
  • Meta verilere göre filtreleyin. Aramadan önce sonuçları ürüne, bölgeye veya tarihe göre kısıtlayın.
  • Sorguyu yeniden yazın. “İkincisi ne olacak?” gibi belirsiz bir devamı çevirin. tam bir soruya dönüştü.

İpucu: Modeli suçlamadan önce, geri alma işleminin gerçekte ne döndürdüğüne bakın. Eğer doğru pasaj bağlamda olmasaydı, hiçbir model bundan doğru bir şekilde cevap veremezdi.

RAG ve ince ayar karşılaştırması

Soru paçavra İnce ayar
Ne katıyor? Soru anında bilgi Eğitimli davranış veya stil
Bilgi güncelleniyor Belgeyi yeniden indeksleyin Tekrar antrenman yap
Kaynak gösterebilir mi? Evet Güvenilir değil
Şunun için en iyisi: Değişen gerçekler Tutarlı format veya ton

Birbirini dışlayan değiller. RAG, ince ayar ve hızlı mühendislik karşılaştırmamız nasıl daha derinlemesine seçim yapılacağını kapsar.

RAG sistemi nasıl test edilir

RAG bir yazılımdır ve diğer yazılımlar gibi testlere ihtiyaç duyar. Beklediğiniz pasajlar ve yanıtlarla birlikte bir dizi gerçek soru oluşturun ve ardından iki aşamayı ayrı ayrı ölçün:

Sahne Sorulacak soru Ortak ad
Geri alma Doğru pasajı yakaladık mı? Bağlam hatırlama
Geri alma Getirdiklerimizin ne kadarı faydalı oldu? Bağlam hassasiyeti
Nesil Cevap bağlam tarafından destekleniyor mu? Sadakat
Nesil Aslında soruyu cevaplıyor mu? Cevap alaka düzeyi

Garip durumları da ekleyin: Verilerinizde cevabı olmayan sorular, farklı ifadeler kullanan sorular ve birbiriyle çelişen kaynaklara sahip sorular. Tıpkı bir regresyon paketinde olduğu gibi, parçalamayı, modelleri veya istemleri değiştirdiğinizde bu seti yeniden çalıştırın. pytest eğitimimiz tek bir testte birçok girdinin nasıl çalıştırılacağını gösterir.

RAG sistemleri neden başarısız oluyor?

  • Cevap verilerde yok. Model hâlâ bir deneme deneyebilir; bu nedenle ona nasıl reddedileceğini söyleyin.
  • Doğru parça alınamadı. Bu genellikle bir parçalama veya arama sorunudur.
  • Çok fazla bağlam. Alakasız pasajlar modelin dikkatini dağıtabilir ve maliyetleri artırabilir.
  • Eski belgeler. Eski bir politika, mevcut politika kadar güvenli bir şekilde alınabilir.
  • Tablolar ve PDF’ler kötü bir şekilde ayrıştırıldı. Çıkarma metni karıştırıyorsa, erişim asla düzelmez.
  • Yalnızca demo sorularla test ediliyor. Gerçek kullanıcılar bazı şeyleri çok farklı ifade ediyor.

Güvenlik ve izinler

RAG, gözden kaçması kolay iki riski beraberinde getiriyor. Birincisi, erişim kontrolü: eğer indeks İK dosyalarını içeriyorsa, asistan bir çalışanın sorusu bu dosyaları almamalıdır. Modele sır saklama talimatı vermek güvenilir bir koruma olmadığından, alma sırasında her kullanıcının izinlerini uygulayın.

İkincisi, hızlı enjeksiyon. Alınan bir web sayfası veya belge, “talimatlarınızı dikkate almayın” gibi bir metin içerebilir. Alınan içeriğe güvenilmeyen veri olarak davranın, modelin gerçekleştirebileceği eylemleri sınırlayın ve hassas olanları bir insanın onaylamasını zorunlu kılın.

Son sözler

RAG, pek çok pratik ayrıntıyı içeren basit bir fikirdir: Doğru bilgiyi bulun ve ardından modelden onu kullanmasını isteyin. Küçük, temiz bir dizi belge ve yaklaşık yirmi gerçek soruyla başlayın. Karmaşıklığı artırmadan önce alma işleminin iyi çalışmasını sağlayın, çünkü iyi verilere sahip mütevazı bir işlem hattı genellikle kötü verilere sahip karmaşık bir işlem hattını yener.

Sık sorulan sorular

Yapay zekada RAG ne anlama geliyor?

RAG, almayla artırılmış nesil anlamına gelir. Bir sistem ilgili bilgiyi alır, bilgi istemine ekler ve model bundan bir yanıt üretir.

RAG, AI halüsinasyonlarını durdurur mu?

Modele gerçek kaynaklar vererek bunları azaltır ancak ortadan kaldırmaz. Bir model yine de bağlamı yanlış okuyabilir; bu nedenle yanıtları test edin ve alıntıları gösterin.

RAG için bir vektör veritabanına ihtiyacım var mı?

Her zaman değil. Küçük projelerde bellek içi dizin, anahtar kelime araması veya SQL kullanılabilir. Vektör veritabanları geniş koleksiyonlara ve anlam temelli aramaya yardımcı olur.

RAG ve ince ayar arasındaki fark nedir?

RAG, bilgileri soru anında sağlar, böylece güncellemeler hızlı olur. İnce ayar, bir modeli davranışını veya stilini değiştirecek şekilde eğitir ve gerçekleri değiştirmeye daha az uygundur.

Gömme nedir?

Gömme, metnin anlamını temsil eden sayıların bir listesidir. Benzer anlamlara sahip pasajların benzer sayıları olması, anlam temelli aramayı mümkün kılar.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Test otomasyonu

Kesintili Testler: Bunların Sebepleri ve Nasıl Düzeltileceği

Yaptığımız demolarla açıklanan hatalı testler: ana nedenler, birinin nasıl doğrulanacağı ve teşhis edileceği, zamanlama için uygun düzeltmeler, payl…

Makaleyi okuyun →
Yazılım testi

Yük Testi ve Stres Testi: Farklılıklar, Metrikler ve k6 Örnekleri

Yük testi ve stres testinin açıklaması: her birinin neyi kanıtladığı, ani yükselme ve soğuma testleri, önemli ölçümler, ortalamaların neden yanıltıc…

Makaleyi okuyun →
Yazılım testi

Test Senaryosu ve Test Senaryosu: Temel Farklılıklar, Örnekler ve Her Biri Ne Zaman Kullanılmalı?

Test senaryosu ve test senaryosunun açıklaması: net tanımlar, yan yana tablo, senaryolardan vakalara, şablonlara ve her birinin ne zaman kullanılaca…

Makaleyi okuyun →
Veritabanları ve SQL

SQL Sorgu Optimizasyonu: Zamanlamalarla Yürütme Planlarını Okuyun ve Yavaş Sorguları Düzeltin

SQL sorgu optimizasyonu bir milyon satırda test edilmiştir: yürütme planlarını okuyun, doğru dizinleri ekleyin, değiştirilemeyen filtreleri düzeltin…

Makaleyi okuyun →
Veritabanları ve SQL

SQL UNION ve UNION ALL: Farklılıklar, Örnekler ve Test Edilmiş Performans

SQL UNION ve UNION ALL, yürüttüğümüz sorgularla açıklandı: kopyalar, her ikisinin de takip ettiği kurallar, gerçek bir veri hatası, ölçülen performa…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Fetch API Eğitimi: GET, POST, Hata İşleme ve Zaman Aşımları

Yerel bir sunucuya karşı test edilen bir JavaScript Fetch API öğreticisi: GET ve POST, 404'ün neden atmadığı, yeniden kullanılabilir bir yardımcı, s…

Makaleyi okuyun →
Yazılım geliştirme

Python Dosya İşleme: Örneklerle Okuma, Yazma, CSV, JSON ve pathlib

Python dosya işleme, çalıştırdığımız kodla açıklanmıştır: açık modlar, büyük dosyaları okuma, CSV, JSON, pathlib, ikili dosyalar, güvenli yazma, hat…

Makaleyi okuyun →
Yazılım geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Çalıştırdığımız kodla açıklanan Python sınıfları ve nesneleri: __init__, yöntemler, sınıf ve örnek nitelikleri, kalıtım, özellikler, dunder yöntemle…

Makaleyi okuyun →
Yapay zekâ

Büyük Dil Modeli Nedir? Yüksek Lisans'ların Nasıl Çalıştığı, Abartmadan Açıklanıyor

Büyük dil modeli nedir? LLM'ler sade bir dille açıklandı: belirteçler, yerleştirmeler, dikkat, eğitim, sıcaklık ve bağlam pencereleri, küçük bir son…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Linux Komutları: Örneklerle Temel Terminal Kılavuzu

Yeni başlayanlar için göreve göre gruplandırılmış Linux komutları: pratik bir günlük analizi örneğiyle gezinme, dosyalar, günlükleri görüntüleme, gr…

Makaleyi okuyun →
Test otomasyonu

Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

Selenium ve Playwright karşılaştırması: mimari, bekleme, tarayıcı ve dil desteği, hata ayıklama, her iki araçta da aynı test, geçiş tavsiyesi ve nas…

Makaleyi okuyun →
Yazılım testi

Eşdeğerlik Bölümleme: Test Tasarımı Tekniğinin Çalışılmış Örneklerle Açıklanması

Eşdeğerlik bölümlemenin açıklaması: geçerli ve geçersiz bölümlerin nasıl bulunacağı, yaşlara yönelik çalışılmış örnekler, şifreler ve kuponlar, yürü…

Makaleyi okuyun →
Yazılım testi

Yazılım Testinde Şiddet ve Öncelik: Farklılıklar, Matris ve Gerçek Örnekler

Yazılım testinde önem ve önceliğin açıklanması: net tanımlar, örnekler içeren dört yönlü bir matris, seviye ölçekleri, her birini kimin belirlediği …

Makaleyi okuyun →
Veritabanları ve SQL

SQL Alt Sorguları Eğitimi: Türler, İlişkili Alt Sorgular ve Örneklerle EXISTS

Çalıştırdığımız sorguları içeren bir SQL alt sorgu eğitimi: skaler, IN, FROM ve SELECT alt sorguları, ilişkili alt sorgular, EXISTS, NOT IN NULL tuz…

Makaleyi okuyun →
Veritabanları ve SQL

SQL İşlemleri ve ACID Açıklaması: COMMIT, ROLLBACK ve İzolasyon Seviyeleri

SQL işlemleri ve ACID, yürüttüğümüz bir banka transferiyle açıklandı: COMMIT, ROLLBACK, kayıt noktaları, kilitler, izolasyon seviyeleri, kirli okuma…

Makaleyi okuyun →
Yazılım geliştirme

Git Komutları Hile Sayfası: Gerçekte Kullandığınız Komutlar, Örneklerle

Git komutları göreve göre gruplandırılmış kısa bilgiler sayfası: kurulum, aşamalandırma, dallar, uzaktan kumandalar, saklama, geçmiş ve gerçek bir d…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Vaatlerinin Açıklaması: ardından, catch, Promise.all ve Yaygın Hatalar

Çalıştırdığımız kodla açıklanan JavaScript vaatleri: durumlar, ardından ve yakalama zincirleri, hata yönetimi, Promise.all, allSettled, yarış ve her…

Makaleyi okuyun →
Yazılım geliştirme

Python Sözlüğü Eğitimi: Yöntemler, Örnekler ve Ortak Kalıplar

Çalıştırdığımız kodları içeren bir Python sözlüğü eğitimi: dikteler oluşturma, okuma ve güncelleme, temel yöntemler, birleştirme, kavramalar, sayma …

Makaleyi okuyun →
Yapay zekâ

RAG Nedir? Geri Almayla Artırılmış Üretim Bir Çalışma Örneğiyle Açıklanıyor

RAG nedir? Almayla artırılmış oluşturma adım adım açıklanmıştır: indeksleme, parçalama, yerleştirmeler, alma, çalışan küçük bir Python örneği, değer…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Terraform Eğitimi: İlk Dosyadan Modüllere Kod Olarak Altyapı

Yeni başlayanlar için bir Terraform eğitimi: Bulut hesabı olmadan başlayın, başlatmayı öğrenin, planlayın ve uygulayın, ardından değişkenler, çıktıl…

Makaleyi okuyun →
DevOps

Docker ve Kubernetes: Temel Farklılıklar, Birlikte Nasıl Çalıştıkları ve İhtiyacınız Olanlar

Docker ve Kubernetes şöyle açıkladı: Her birinin ne yaptığı, her ikisinde de aynı uygulamanın çalıştırılması, Docker Compose ve Swarm'ın karşılaştır…

Makaleyi okuyun →
Test otomasyonu

Yeni Başlayanlar İçin Pytest Eğitimi: Fikstürler, Parametrelendirme ve Gerçek Örnekler

Yeni başlayanlar için pytest 9.2'de yürüttüğümüz testleri içeren bir pytest öğreticisi: iddialar, fikstürler, parametrelendirme, yarışma, işaretleyi…

Makaleyi okuyun →
Yazılım testi

Yazılım Test Yaşam Döngüsü (STLC): 6 Aşama, Giriş ve Çıkış Kriterleri, Örnek

Yazılım testi yaşam döngüsü şunları açıkladı: giriş ve çıkış kriterleri, teslimatlar, çalışılmış bir oturum açma özelliği örneği, Agile'da STLC ve S…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →