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.
- 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
- Yükle: PDF’lerden, wiki’lerden, veritabanlarından veya destek taleplerinden içerik toplayın.
- Temizleyin ve parçalayın: Önemsizleri kaldırın, ardından belgeleri küçük bölümlere ayırın.
- Yerleştirme: her bir pasajı, yerleştirme adı verilen ve anlamını yakalayan bir sayı listesine dönüştürür.
- Depolama: yerleştirmeleri aranabilir bir dizine, genellikle bir vektör veritabanına kaydeder.
Sorgulama: Bir soruyu yanıtlamak
- Geri alma: soruyu yerleştirin ve anlam açısından en yakın pasajları bulun.
- Augment: bu pasajları istemin içine ekleyin.
- 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
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.
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 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 →DevOpsAçı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ştirmeAPI 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 otomasyonuPython'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 testiKod 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 SQLSQL'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 SQLAçı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ştirmeTypeScript 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ştirmePython *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ştirmePython 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 →DevOpsDocker 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 otomasyonuTDD 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 testiKullanı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 SQLAçı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 SQLSQL 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ştirmeJWT 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ştirmeJavaScript 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ştirmePython 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 →DevOpsMavi-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 otomasyonuKesintili 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 testiYü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 testiTest 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 SQLSQL 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 SQLSQL 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ştirmeJavaScript 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ştirmePython 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ştirmePython 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 →DevOpsYeni 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 otomasyonuSelenyum 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 testiEş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 testiYazı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 SQLSQL 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 SQLSQL İş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ştirmeGit 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ştirmeJavaScript 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ştirmePython 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 →DevOpsYeni 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 →DevOpsDocker 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 otomasyonuYeni 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 testiYazı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ştirmeGit 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ştirmePython 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 SQLSQL 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 →