LangChain Mimarisi ve LCEL
LangChain bileşenleri, LCEL boru söz dizimi, zincirler, çalıştırılabilir arayüzler, akışlı zincirler.
LangChain Mimarisi ve LCEL, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. 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.
LangChain Nedir?
LangChain, istemler, modeller, ayrıştırıcılar, getiriciler ve bellek gibi yeniden kullanılabilir parçaları birleştirerek LLM uygulamaları oluşturmanızı sağlayan bir çerçevedir. API çağrılarını elle birbirine bağlamak yerine, verileri bir bileşenden sonrakine aktaran zincirler oluşturursunuz.
pip install langchain langchain-openaiTemel Yapı Taşları
Hemen hemen her zincirde üç bileşen bulunur: girdiyi istem biçimine dönüştüren bir PromptTemplate, bir sohbet modeli (LLM) ve sonucu temizleyen bir çıktı ayrıştırıcısı. LangChain bunları bir işlem hattında birleştirir.
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParserİstem Şablonu Oluşturma
Bir istem şablonu, çalışma zamanında doldurulan yer tutucuları barındırır. {variable} söz dizimini kullanın. Zinciri bir sözlükle çağırdığınızda bu anahtarların yerine değerler yerleştirilir.
prompt = ChatPromptTemplate.from_template(
"Explain {topic} to a {audience} in two sentences."
)LCEL: Boru Sözdizimi
LCEL (LangChain İfade Dili), bileşenleri | boru işleciyle birleştirir. Her adımın çıktısı bir sonrakine aktarılır; bu akış, Unix işlem hattı gibi soldan sağa okunur.
model = ChatOpenAI(model="gpt-4o")
chain = prompt | model | StrOutputParser()StrOutputParser() Neden Kullanılır?
Bir sohbet modeli, düz bir dize yerine ileti nesnesi döndürür. StrOutputParser(), zincirin temiz bir dize üretmesi için .content metnini ayıklar. Bu olmadan size yapılandırılmış bir ileti döndürülür.
Zinciri Çağırma
Şablon değişkenlerini dolduran bir sözlük vererek zinciri chain.invoke() ile çalıştırın. Sonuç, ayrıştırılmış dize çıktısıdır.
result = chain.invoke({"topic": "vectors", "audience": "beginner"})
print(result)Zinciri Akışla Çalıştırma
Gerçek zamanlı çıktı için invoke yerine chain.stream() çağrısını kullanın. Bu yöntem, model bunları ürettikçe çıktı parçalarını veren bir üreteç döndürür; tıpkı ham API akışı gibi.
for chunk in chain.stream({"topic": "RAG", "audience": "engineer"}):
print(chunk, end="", flush=True)Birden Çok Girdiyi Toplu İşleme
Çok sayıda girdiyi chain.batch() ile verimli şekilde işleyin. Girdi sözlüklerinden oluşan bir liste verin; LangChain bunları eşzamanlı çalıştırır ve sonuç listesini aynı sırada döndürür.
inputs = [
{"topic": "loops", "audience": "kid"},
{"topic": "recursion", "audience": "kid"}
]
results = chain.batch(inputs)RunnablePassthrough
RunnablePassthrough, girdisini değiştirmeden iletir. Bir zincirin dönüştürülmüş bir değerin yanında özgün girdiyi de koruması gerektiğinde vazgeçilmezdir; bu durum, hem soruyu hem de getirilen bağlamı aktardığınız RAG uygulamalarında yaygındır.
from langchain_core.runnables import RunnablePassthrough
chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt | model | StrOutputParser()
)Sözlüklerle Birleştirme
Bir adım sözlük olduğunda her değer paralel olarak çalıştırılır ve sonuçlar sonraki adıma girdi olur. Böylece her anahtarı çalıştırılabilir bir bileşene veya doğrudan geçişe eşleyen ve getirme işlem hatlarını destekleyen çok girdili istemler oluşturulur.
parallel = {
"context": retriever,
"question": RunnablePassthrough()
}
# parallel feeds {"context": ..., "question": ...} downstreamLCEL Neden Önemlidir?
LCEL zincirleri akış, toplu işleme ve eşzamansız çalışma özelliklerini ücretsiz olarak sunar, okunması kolaydır ve Lego parçaları gibi kolayca birleştirilir. Aynı boru sözdizimi, tek satırlık bir istemden tam bir RAG sistemine kadar ölçeklenir.
Hızlı Kontrol
LCEL anlayışınızı sınayın.
Özet: Mimari ve LCEL
LangChain bileşenlerini boru işleciyle birleştirdiniz: prompt | model | StrOutputParser(). Zincirleri invoke ile çalıştırdınız, stream ile akış sağladınız ve batch ile çok sayıda girdiyi işlediniz. RunnablePassthrough ve sözlük birleştirme, RAG için çok girdili işlem hatları oluşturmanızı sağlar.
Sıkça Sorulan Sorular
“LangChain Mimarisi ve LCEL” dersi ücretsiz mi?
Evet — “LangChain Mimarisi ve LCEL” 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.
“LangChain Mimarisi ve LCEL” dersinde ne öğreneceğim?
LangChain bileşenleri, LCEL boru söz dizimi, zincirler, çalıştırılabilir arayüzler, akışlı zincirler. 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 1. dersidir.
“LangChain Mimarisi ve LCEL” 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
- LangChain Mimarisi ve LCEL
- Belge Yükleme, Bölme ve Gömme
- Vektör Depoları: Chroma ve FAISS
- Uçtan Uca RAG Soru-Cevap Sistemi Oluşturma