0Pricing
Learn AI with Python · Ders

Belge Yükleme, Bölme ve Gömme

PyPDFLoader, RecursiveCharacterTextSplitter, OpenAIEmbeddings, gömme stratejileri.

Belge Yükleme, Bölme ve Gömme, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

RAG Veri Alma İşlem Hattı

Bir LLM belgelerinizden yanıt verebilmeden önce bunları yüklemeniz, bölmeniz ve gömmeniz gerekir. Bu derste, her Retrieval-Augmented Generation sisteminin temelini oluşturan veri alma işlem hattı ele alınır.

pip install langchain-community pypdf langchain-openai

PDF Yükleme

PyPDFLoader, bir PDF'yi okur ve sayfa başına bir tane olacak şekilde Belge nesnelerinden oluşan bir liste döndürür. Her Belge'de page_content (metin) ve metadata (kaynak, sayfa numarası) bulunur.

from langchain_community.document_loaders import PyPDFLoader

loader = PyPDFLoader("handbook.pdf")
docs = loader.load()
print(len(docs), "pages")

Belgeler Neden Bölünür?

Sayfaların tamamı çoğu zaman gömmek veya bir isteme sığdırmak için fazla büyüktür. Bölme işlemi, metni daha küçük parçalara ayırır; böylece parçalar düzgün şekilde gömülür ve getirme işlemi tüm sayfa yerine yalnızca ilgili bölümü döndürür.

RecursiveCharacterTextSplitter

Önerilen bölücü RecursiveCharacterTextSplitter'dır. Önce paragraflarda, sonra cümlelerde ve son olarak kelimelerde bölmeyi dener; kelimelerin ortasından kesmek yerine parçaların anlamsal bütünlüğünü korur.

from langchain_text_splitters import RecursiveCharacterTextSplitter

splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)

chunk_size ve chunk_overlap

chunk_size, parça başına düşebilecek en fazla karakter sayısını belirler; chunk_overlap ise sınırların yakınındaki bağlamın kaybolmaması için komşu parçalar arasında bazı metinleri tekrarlar. 1000/200 ayarı yaygın bir başlangıç noktasıdır.

chunks = splitter.split_documents(docs)
print(len(chunks), "chunks")
print(chunks[0].page_content[:120])

Parça Boyutunu Ayarlama

Küçük parçalar hassas bir getirme sağlar, ancak çevredeki bağlamı kaçırabilir. Büyük parçalar bağlamı korur, ancak alakanın seyrelmesine ve daha fazla belirteç kullanılmasına neden olur. Parça boyutunun %10-20'si oranında örtüşme, sınırları birbirine bağlamak için iyi bir varsayılandır.

Gömme Vektörleri Nedir?

Gömme, metni anlamı yakalayan sabit uzunlukta bir sayılar vektörüne dönüştürür. Benzer metinler birbirine yakın vektörler üretir. Anahtar kelimeler yerine anlamsal benzerliğe göre arama yapmamızı sağlayan şey budur.

OpenAIEmbeddings

OpenAIEmbeddings ile gömmeler oluşturun. text-embedding-3-small modeli ucuz ve etkilidir. embed_query tek bir dizeyi, embed_documents ise bir listeyi gömer.

from langchain_openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings(model="text-embedding-3-small")
vector = embeddings.embed_query("How do I reset my password?")
print(len(vector))  # 1536

Bir Toplu Veriyi Gömme

Tüm parçalarınızı tek seferde gömün. Her parça, daha sonra hızlı benzerlik araması için bir vektör veritabanında depolayacağınız bir vektöre dönüşür.

texts = [c.page_content for c in chunks]
vectors = embeddings.embed_documents(texts)
print(len(vectors), "vectors of dim", len(vectors[0]))

Gömme Maliyetini Tahmin Etme

Gömme işlemleri belirteç başına ücretlendirilir. Tüm parçaların toplam belirteç sayısını tahmin edin, ardından bunu 1000 belirteç başına fiyatla çarpın. Gömme işleminden önce sayım yapmak, büyük veri derlemlerinde beklenmedik ücretleri önler.

import tiktoken
enc = tiktoken.get_encoding("cl100k_base")
total = sum(len(enc.encode(c.page_content)) for c in chunks)
price_per_1k = 0.00002
print("tokens:", total, "cost $:", total / 1000 * price_per_1k)

İşlem Hattı Özeti

Veri alma akışı şöyledir: belgeleri yükleyin, örtüşen parçalara bölün, her parçayı bir vektöre gömün ve (sonraki derste) bunları depolayın. Buradaki iyi parçalara ayırma ve maliyet bilinci, tüm RAG sisteminin kalitesini ve fiyatını belirler.

Hızlı Kontrol

Veri alma konusundaki bilginizi sınayın.

Özet: Yükleme, Bölme ve Gömme

Belgeleri yüklemek için PyPDFLoader, bunları parçalara ayırmak için chunk_size ve chunk_overlap ile birlikte RecursiveCharacterTextSplitter ve parçaları vektörlere dönüştürmek için OpenAIEmbeddings kullandınız. Ayrıca büyük bir veri derlemini işlemeden önce belirteç başına gömme maliyetini tahmin etmeyi öğrendiniz.

Sıkça Sorulan Sorular

“Belge Yükleme, Bölme ve Gömme” dersi ücretsiz mi?

Evet — “Belge Yükleme, Bölme ve Gömme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Belge Yükleme, Bölme ve Gömme” dersinde ne öğreneceğim?

PyPDFLoader, RecursiveCharacterTextSplitter, OpenAIEmbeddings, gömme stratejileri. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Belge Yükleme, Bölme ve Gömme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. LangChain Mimarisi ve LCEL
  2. Belge Yükleme, Bölme ve Gömme
  3. Vektör Depoları: Chroma ve FAISS
  4. Uçtan Uca RAG Soru-Cevap Sistemi Oluşturma
← Learn AI with Python Sayfasına Dön