Ana içeriğe atla

LangChain ile LLM Uygulamaları Nasıl Geliştirilir - Eğitim

Gelişmiş yapay zeka uygulamaları geliştirmek için açık kaynaklı bir Python çerçevesi olan LangChain ile Büyük Dil Modellerinin henüz keşfedilmemiş potansiyelini keşfedin.
Güncel 16 Nis 2026  · 12 dk. oku

OpenAI’nin GPT-3’ü, Google’ın BERT’i ve Meta’nın LLaMA’sı gibi büyük dil modellerinin (LLM’ler) yetenekleri; pazarlama içeriği ve veri bilimi kodundan şiire kadar farklı türlerde metinler oluşturmayı mümkün kılarak çeşitli sektörleri dönüştürüyor. Kullanıcı dostu sohbet arayüzü sayesinde ChatGPT büyük ilgi görmüş olsa da, LLM’lerden farklı yazılım uygulamalarına entegre ederek yararlanmanın sayısız, hâlâ değerlendirilmemiş yolu var.

Üretken Yapay Zeka ve LLM’lerin dönüştürücü gücü sizi de etkiliyorsa, bu eğitim tam size göre. Burada, GPT gibi Büyük Dil Modellerine dayalı uygulamalar geliştirmek için açık kaynaklı bir Python çerçevesi olan LangChain’i inceliyoruz.

LangChain ile yapay zeka uygulamaları geliştirme hakkında daha fazla bilgiyi LangChain & OpenAI API ile Çok Modlu Yapay Zeka Uygulamaları Geliştirme - Kodlayarak Öğrenin içeriğimizde bulabilir, Whisper konuşmadan-yazıya yapay zekâsıyla YouTube video içeriğini nasıl yazıya dökeceğinizi ve ardından içerikle ilgili soruları sormak için GPT’yi nasıl kullanacağınızı keşfedebilirsiniz.

Büyük Dil Modelleri (LLM) nedir?

Büyük Dil Modelleri (LLM’ler), insan benzeri metni anlamak ve üretmek üzere tasarlanmış gelişmiş yapay zeka sistemleridir. Bu modeller, çok büyük veri kümeleri üzerinde eğitilerek karmaşık örüntüleri kavramayı, dilin inceliklerini anlamayı ve tutarlı yanıtlar üretmeyi öğrenir. LLM’ler; dil çevirisi, metin tamamlama, özetleme ve hatta sohbet etkileşimleri gibi çeşitli dil görevlerini yerine getirebilir. GPT bir LLM örneğidir.

LLM’ler, Üretken Yapay Zeka türlerinden biridir. Üretken Yapay Zeka hakkında daha fazla bilgi edinmek ve yaratıcılığınızı nasıl artırabileceğini öğrenmek isterseniz, Üretken Yapay Zeka ile Yaratıcılığınızı Artırın başlıklı blog yazımızı ve Üretken Yapay Zeka Devriminin İçinde adlı podcast’imizi inceleyin. Ayrıca Büyük Dil Modelleri Kavramları adlı yakında başlayacak kursumuza da kayıt olabilirsiniz.

LangChain’e Giriş

LangChain, büyük dil modelleri (LLM’ler) ile desteklenen uygulamaların geliştirilmesini kolaylaştırmak için tasarlanmış açık kaynaklı bir çerçevedir. LLM odaklı uygulamaların kurulumunu basitleştiren bir dizi araç, bileşen ve arayüz sunar. LangChain ile dil modelleriyle etkileşimleri yönetmek, farklı bileşenleri sorunsuzca birbirine bağlamak ve API’ler ile veritabanları gibi kaynakları dahil etmek çok daha kolay hale gelir. Veri Mühendisliği ve Veri Uygulamaları için LangChain hakkında ayrı bir yazıda daha fazla bilgi bulabilirsiniz. 

LangChain platformu, geliştiricilerin uygulamalarına gömebileceği bir API koleksiyonuyla birlikte gelir; böylece her şeyi sıfırdan inşa etmeye gerek kalmadan dil işleme yeteneklerini katmayı mümkün kılar. Bu nedenle LangChain, uzmanlık yelpazesindeki her seviyeden geliştirici için LLM tabanlı uygulamalar oluşturma sürecini verimli biçimde basitleştirir.

Sohbet robotları, sanal asistanlar, dil çeviri araçları ve duygu analizi araçları gibi uygulamalar, LLM destekli uygulamalara örnek olarak verilebilir. Geliştiriciler, LangChain’den yararlanarak özgün ihtiyaçlara yönelik, özel dil modeli tabanlı uygulamalar geliştirir.

Doğal dil işlemedeki sürekli ilerlemeler ve daha geniş benimsenme ile bu teknolojinin potansiyel kullanım alanlarının neredeyse sınırsız olması beklenmektedir. İşte LangChain’in dikkat çekici bazı özellikleri:

1. Özel gereksinimlerinize uygun şekilde uyarlanabilir istemler

2. İleri kullanım senaryoları için zincir halkası bileşenleri oluşturma

3. Veri artırma için modelleri entegre etme ve GPT ile HuggingFace Hub gibi üst düzey dil modeli yeteneklerine erişme

4. Özel ihtiyaçlar için karıştırıp eşleştirilebilen esnek bileşenler

5. Daha yüksek doğruluk ve kullanıcı memnuniyeti için bağlamı kurup yönlendirmeye yönelik bağlam yönetimi

Python’da LangChain Kurulumu

Python’da LangChain’i kurmak oldukça basittir. Pip veya conda ile kurabilirsiniz.

pip ile kurulum

pip install langchain

conda ile kurulum

install langchain -c conda-forge

Bu işlem, LangChain’in temel gereksinimlerini kuracaktır. LangChain’in asıl faydası, farklı model sağlayıcıları, veri depoları vb. ile entegre edildiğinde ortaya çıkar.

Varsayılan olarak, bu entegrasyonlar için gereken bağımlılıklar kurulumda DAHİL değildir. Tüm bağımlılıkları kurmak için aşağıdaki komutu çalıştırabilirsiniz:

pip install langchain[all]

Son seçenek ise kütüphaneyi kaynaktan derlemektir. Bu durumda projeyi GitHub deposundan klonlayabilirsiniz.

Ortam kurulumu

LangChain kullanmak genellikle çeşitli model sağlayıcıları, veri depoları, API’ler ve benzeri bileşenlerle entegrasyon gerektirir. Her entegrasyonda olduğu gibi, LangChain’in çalışabilmesi için uygun ve ilgili API anahtarlarını sağlamalıyız. Bunu yapmanın iki yolu vardır:

1. Anahtarı bir ortam değişkeni olarak ayarlamak

OPENAI_API_KEY="..."

Bir ortam değişkeni ayarlamayı tercih etmiyorsanız, OpenAI LLM sınıfını başlatırken openai_api_key adlı parametre üzerinden anahtarı doğrudan iletebilirsiniz:

2. Anahtarı ilgili sınıfta doğrudan ayarlamak

from langchain.llms import OpenAI

llm = OpenAI(openai_api_key="...")

LangChain’in Temel Bileşenleri

LangChain, esneklik ve modülerliğe verdiği önemle öne çıkar. Doğal dil işleme hattını ayrı bileşenlere ayırarak geliştiricilerin iş akışlarını ihtiyaçlarına göre uyarlamalarını sağlar. Bu uyarlanabilirlik, LangChain’i farklı senaryo ve sektörlerde yapay zeka uygulamaları inşa etmek için ideal kılar.

Bileşenler ve zincirler

LangChain’de bileşenler, dil işleme hattında belirli işlevleri yerine getiren modüllerdir. Bu bileşenler, duygusal analiz, niyet tanıma ve yanıt üretim modüllerinin yer aldığı bir müşteri hizmetleri sohbet botu zinciri gibi, özelleştirilmiş iş akışları için "zincirler" halinde bağlanabilir.

İstem şablonları

İstem şablonları, zincirler genelinde yeniden kullanılabilen, önceden tanımlanmış istemlerdir. Bu şablonlar, belirli "değerler" yerleştirilerek dinamik ve uyarlanabilir hâle getirilebilir. Örneğin, bir kullanıcının adını soran bir istem, belirli bir değer eklenerek kişiselleştirilebilir. Bu özellik, dinamik kaynaklara dayalı istemler üretmek için kullanışlıdır.

Vektör depoları

Bunlar, gömlemeler aracılığıyla bilgiyi depolamak ve aramak için kullanılır; esasen belgelerin anlamlarının sayısal temsillerini analiz eder. VectorStore, bu gömlemeler için bir depolama alanı görevi görerek, anlamsal benzerliğe dayalı verimli arama imkânı sunar.

Dizinler ve getiriciler

Dizinler, modelin eğitim verilerine ilişkin ayrıntıları ve metaveriyi depolayan veritabanları gibi davranırken; getiriciler (retriever), bu dizinde belirli bilgileri hızla arar. Bu, modele bağlam ve ilişkili bilgiler sağlayarak yanıtlarını iyileştirir.

Çıktı ayrıştırıcıları

Çıktı ayrıştırıcıları, model tarafından üretilen yanıtları yönetmek ve iyileştirmek için devreye girer. İstenmeyen içeriği çıkarabilir, çıktı biçimini özelleştirebilir veya yanıta ek veriler ekleyebilirler. Böylece, çıktı ayrıştırıcıları; dil modelinin yanıtlarından JSON nesneleri gibi yapılandırılmış sonuçlar elde etmeye yardımcı olur.

Örnek seçiciler

LangChain’deki örnek seçiciler, modelin eğitim verilerinden uygun örnekleri belirlemeye yarar; bu da oluşturulan yanıtların doğruluğunu ve alâkasını artırır. Bu seçiciler, belirli örnek türlerini tercih edecek şekilde ayarlanabilir veya ilgisiz olanları filtreleyebilir; böylece kullanıcı girdisine dayalı, özelleştirilmiş bir yapay zeka yanıtı sağlar.

Aracılar

Aracılar, belirli bir kullanım durumu için kendi istemleri, hafızası ve zinciri olan özgün LangChain örnekleridir. Web, mobil ve sohbet botları dâhil olmak üzere çeşitli platformlarda dağıtılabilir ve geniş bir kitleye hitap eder.

LangChain’de Bir Dil Modeli Uygulaması Nasıl Kurulur

LangChain, OpenAI, Cohere ve Hugging Face gibi çeşitli dil modeli sağlayıcılarıyla arayüz oluşturmak için tasarlanmış bir LLM sınıfı sunar. Bir LLM’in en temel işlevi metin üretmektir. Bir dize istem alıp çıktıyı döndüren bir uygulamayı LangChain ile oluşturmak son derece basittir.

API_KEY ="..."

from langchain.llms import OpenAI

llm = OpenAI(model_name="text-ada-001", openai_api_key=API_KEY)

print(llm("Tell me a joke about data scientist"))

Çıktı:

>>> "What do you get when you tinker with data? A data scientist!"

Yukarıdaki örnekte OpenAI’nin text-ada-001 modelini kullanıyoruz. Bunu HuggingFace’teki açık kaynak modellerden biriyle değiştirmek isterseniz, yapmanız gereken ufak bir değişikliktir:

API_KEY ="..."

from langchain import HuggingFaceHub

llm = HuggingFaceHub(repo_id = "google/flan-t5-xl", huggingfacehub_api_token = API_KEY)

print(llm("Tell me a joke about data scientist"))

Hugging Face hub belirteci kimliğini HF hesabınızdan alabilirsiniz.

Birden fazla isteminiz varsa, generate yöntemini kullanarak bir listeyi tek seferde gönderebilirsiniz:

llm_response = llm.generate(['Tell me a joke about data scientist',

'Tell me a joke about recruiter',

'Tell me a joke about psychologist'])

Çıktı:

Bu, LangChain kullanarak oluşturabileceğiniz en basit uygulamadır. Bir istem alır, bunu seçtiğiniz bir dil modeline gönderir ve yanıtı döndürür. `temperature` gibi kontrol edebileceğiniz birçok parametre vardır. Temperature parametresi çıktının rastgeleliğini ayarlar ve varsayılan olarak 0,7’dir.

LangChain’de LLM’ler için İstem Şablonlarını Yönetme

LLM’lerin kendine özgü API’leri vardır. İstemleri doğal dilde girmek sezgisel görünse de, gerçekte bir LLM’den istenen çıktıyı elde etmek için istemi biraz ayarlamak gerekir. Bu ayarlama süreci, prompt mühendisliği olarak bilinir. İyi bir istem elde ettiğinizde, bunu başka amaçlar için bir şablon olarak kullanmak isteyebilirsiniz.

LangChain’deki bir PromptTemplate, şablonlama kullanarak bir istem oluşturmanıza olanak tanır. Bu, aynı istem taslağını birden çok yerde kullanmak, ancak bazı değerleri değiştirmek istediğinizde kullanışlıdır.

USER_INPUT = 'Paris'

from langchain.llms import OpenAI

from langchain import PromptTemplate

llm = OpenAI(model_name="text-davinci-003", openai_api_key=API_KEY)

template = """ I am travelling to {location}. What are the top 3 things I can do while I am there. Be very specific and respond as three bullet points """

prompt = PromptTemplate(

input_variables=["location"],

template=template,

)

final_prompt = prompt.format(location=USER_INPUT )

print(f"LLM Output: {llm(final_prompt)}")

Çıktı:

1. Climb the Eiffel Tower and take in the breathtaking views of the city

2. Enjoy a romantic cruise along the River Seine and admire the beautiful architecture along the riverbanks

3. Explore the Louvre and admire the world-renowned works of art on display

Artık bu istemi başka bir şehir için yeniden kullanmak isterseniz yalnızca USER_INPUT değişkenini değiştirmeniz yeterlidir. Ben bunu şimdi Paris’ten Cancun, Mexico’ya çevirdim. Çıktının nasıl değiştiğine bakın:

Çıktı:

1. Relax on the Beach: Enjoy the white sand beaches and crystal-clear waters of the Caribbean Sea.

2. Explore the Mayan Ruins: Visit ancient archaeological sites such as Chichen Itza, Tulum, and Coba to learn about the history and culture of the Mayans.

3. Take a Food Tour: Taste the traditional flavors and learn about the local cuisine by taking a food tour of Cancun.

Çok Adımlı İş Akışlarında LLM ve İstemleri Birleştirme

LangChain bağlamında zincirleme, bir uygulama oluşturmak için LLM’lerin diğer unsurlarla entegre edilmesi anlamına gelir. Bazı örnekler şunlardır:

  • Birden fazla LLM’i sıralı biçimde birleştirmek; ilk LLM’in çıktısını ikinci LLM için girdi olarak kullanmak (bu bölüme bakın)
  • LLM’leri istem şablonlarıyla entegre etmek
  • Soru yanıtlama gibi amaçlarla LLM’leri haricî verilerle birleştirmek
  • Sohbet geçmişi gibi uzun süreli bellekle LLM’leri birleştirmek

İlk senaryoya bir örnek görelim: Burada ilk LLM’in çıktısını ikinci LLM için girdi olarak kullanacağız.

from langchain.llms import OpenAI

from langchain.chains import LLMChain, SimpleSequentialChain

from langchain import PromptTemplate

llm = OpenAI(model_name="text-davinci-003", openai_api_key=API_KEY)

# first step in chain

template = "What is the most popular city in {country} for tourists? Just return the name of the city"

first_prompt = PromptTemplate(

input_variables=["country"],

template=template)

chain_one = LLMChain(llm = llm, prompt = first_prompt)

# second step in chain

second_prompt = PromptTemplate(

input_variables=["city"],

template="What are the top three things to do in this: {city} for tourists. Just return the answer as three bullet points.",)

chain_two = LLMChain(llm=llm, prompt=second_prompt)

# Combine the first and the second chain

overall_chain = SimpleSequentialChain(chains=[chain_one, chain_two], verbose=True)

final_answer = overall_chain.run("Canada")

Çıktı:

Bu örnekte iki bileşenli bir zincir oluşturuyoruz. İlk bileşen, kullanıcının girdiği belirli bir ülkeye karşılık gelen en popüler şehri belirlemekten sorumludur. İkinci bileşen ise, o şehri ziyaret eden turistler için yapılabilecek en iyi üç etkinlik veya görülecek yer hakkında bilgi sağlamaya odaklanır.

LangChain ile uygulama geliştirmeye dair daha ileri düzey kavramları öğrenmek isterseniz, DataCamp’teki LangChain ve GPT ile Yapay Zeka Uygulamaları Geliştirme canlı dersine göz atın.

Sonuç ve İleri Öğrenme

Daha çok kısa bir süre önce, ChatGPT’nin etkileyici yetenekleri hepimizi büyülüyordu. Ancak manzara hızla değişti ve artık LangChain gibi yeni geliştirici araçlarına erişebiliyor; kişisel dizüstü bilgisayarlarımızda yalnızca birkaç saat içinde benzer derecede dikkat çekici prototipler oluşturabiliyoruz.

Açık kaynaklı bir Python çerçevesi olan LangChain, LLM’ler (Large Language Models) tarafından desteklenen uygulamalar geliştirmeyi mümkün kılar. Bu çerçeve, çok sayıda temel modele esnek bir arayüz sunar; istem yönetimini kolaylaştırır ve (yazım anı itibarıyla) aracılar üzerinden istem şablonları, ek LLM’ler, haricî veriler ve diğer araçlar gibi bileşenler için bir merkez görevi görür.

Üretken Yapay Zeka ve LLM alanındaki tüm gelişmelere ayak uydurmaya çalışıyorsanız, LangChain ve GPT ile Yapay Zeka Uygulamaları Geliştirme webinarımıza göz atın. Burada, LangChain kullanarak yapay zeka uygulamaları geliştirmenin temellerini, bir yapay zeka uygulamasını nasıl yapılandıracağınızı ve yüksek performans için metin verisini nasıl gömeceğinizi öğreneceksiniz. Ayrıca, farklı üretken yapay zeka araç kategorilerini, kullanım alanlarını ve çeşitli sektörlerdeki etkilerini keşfetmek için üretken yapay zeka araçları manzarası adlı ipucu sayfamıza göz atabilirsiniz. Son olarak, diğer güçlü araçları tanımak için en iyi açık kaynak LLM’ler listemizi inceleyin.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

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

SSS

LangChain nedir?

LangChain, büyük dil modelleri (LLM’ler) ile desteklenen uygulamaların geliştirilmesini kolaylaştırmak için tasarlanmış açık kaynaklı bir çerçevedir. LLM odaklı uygulamaların kurulmasını; araçlar, bileşenler ve arayüzler sağlayarak basitleştirir.

LangChain kullanımı ücretsiz mi?

Evet, LangChain ücretsiz ve açık kaynaklı bir çerçevedir; ancak bazı LLM’leri kullanmak abonelik gerektirebilir.

LangChain farklı model sağlayıcılarıyla çalışabilir mi?

Evet, LangChain; OpenAI, Cohere ve Hugging Face gibi çeşitli dil modeli sağlayıcılarıyla uyumludur ve uygulama geliştirmede esneklik sağlar.

LangChain’i OpenAI modelleriyle nasıl kullanırım?

LangChain’i kurduktan sonra, OpenAI API anahtarınızı ayarlayıp sağlanan arayüzleri kullanarak OpenAI modelleriyle entegre edebilirsiniz.

LangChain’de istem şablonlarını nasıl yönetirim?

LangChain, istem şablonlarını yönetmek için PromptTemplate kullanır; böylece girdi değişkenleri değiştirilerek belirli kullanım durumlarına uyarlanabilen dinamik ve yeniden kullanılabilir istemler oluşturulabilir.

LangChain’de zincirleme nedir?

Zincirleme, bir uygulama oluşturmak için LLM’lerin diğer unsurlarla entegre edilmesine verilen addır; örneğin birden çok LLM’i ardışık biçimde birleştirmek, LLM’leri istem şablonlarıyla entegre etmek veya haricî verileri dahil etmek gibi.

LangChain çeşitli kaynaklardaki belge verilerini işleyebilir mi?

Evet, LangChain; metin, CSV, PDF dosyaları ve Slack ile Figma gibi platformlar dâhil olmak üzere birden çok veri kaynağı için belge yükleyicilerini destekler ve bunları LLM uygulamalarına dahil edebilir.

Konular

Bu kurslarla yapay zekayı öğrenin!

Kurs

Deploying AI into Production with FastAPI

4 sa
3.9K
Learn how to use FastAPI to develop APIs that support AI models, built to meet real-world demands.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow