Ana içeriğe atla

LangGraph Eğitimi: LangGraph Nedir ve Nasıl Kullanılır?

LangGraph, LangChain ekosistemi içinde yer alan ve birden fazla LLM aracısını (veya zincirleri) yapılandırılmış ve verimli bir şekilde tanımlamak, koordine etmek ve yürütmek için bir çerçeve sunan bir kütüphanedir.
Güncel 12 May 2026  · 12 dk. oku

Karmaşık, çok aracılı bir büyük dil modeli (LLM) uygulaması geliştirdiğinizi hayal edin. Heyecan verici, ancak beraberinde bazı zorluklar da getiriyor: çeşitli aracılarının durumunu yönetmek, etkileşimlerini koordine etmek ve hataları etkili şekilde ele almak. İşte bu noktada LangGraph yardımcı olabilir.

LangGraph, bu zorlukları doğrudan ele almak üzere tasarlanmış, LangChain ekosistemi içinde yer alan bir kütüphanedir. LangGraph, birden fazla LLM aracısını (veya zincirlerini) yapılandırılmış bir şekilde tanımlamak, koordine etmek ve yürütmek için bir çerçeve sunar.

Aracı çalışma zamanlarını geliştirmek için kritik olan döngüsel grafikler oluşturmayı mümkün kılarak geliştirme sürecini basitleştirir. LangGraph ile sağlam, ölçeklenebilir ve esnek çok aracılı sistemleri kolayca inşa edebiliriz.

LangChain ekosistemi hakkında daha fazla bilgi edinmek isterseniz, bu LangChain’e giriş yazısını öneririm. Aşağıda LangGraph video eğitimimizi de izleyebilirsiniz.

LangGraph Nedir?

LangGraph, LLM’lerden yararlanan durum bilgili, çok aktörlü uygulamaları olabildiğince kolay oluşturmayı sağlar. LangChain’in yeteneklerini genişleterek, gelişmiş aracı çalışma zamanları geliştirmek için hayati önem taşıyan döngüsel grafikleri oluşturma ve yönetme becerisini kazandırır. LangGraph’in temel kavramları şunlardır: grafik yapısı, durum yönetimi ve koordinasyon.

Grafik yapısı

Uygulamanızı yönlendirilmiş bir grafik olarak düşünün. LangGraph’te her düğüm bir LLM aracısını, kenarlar ise bu aracılar arasındaki iletişim kanallarını temsil eder. Bu yapı, her aracının belirli görevleri yerine getirip gerektiğinde bilgiyi diğer aracılara aktardığı, net ve yönetilebilir iş akışları sağlar.

Durum yönetimi

LangGraph’in öne çıkan özelliklerinden biri otomatik durum yönetimidir. Bu özellik, birden çok etkileşim boyunca bilgiyi izlememizi ve kalıcı kılmamızı mümkün kılar. Aracılar görevlerini yerine getirirken durum dinamik olarak güncellenir; böylece sistem bağlamı korur ve yeni girdilere uygun şekilde yanıt verir.

Koordinasyon

LangGraph, aracılarının doğru sırayla yürütülmesini ve gerekli bilginin sorunsuzca değiş tokuş edilmesini sağlar. Bu koordinasyon, ortak bir hedefe ulaşmak için birden çok aracının birlikte çalışması gereken karmaşık uygulamalarda hayati önem taşır. Veri akışını ve işlemlerin sıralamasını yöneterek, LangGraph geliştiricilerin aracı koordinasyonunun incelikleri yerine uygulamalarının üst düzey mantığına odaklanmasına olanak tanır.

Neden LangGraph?

Yukarıda belirttiğim gibi, LangGraph karmaşık LLM uygulamalarıyla çalışan geliştiriciler için çeşitli önemli avantajlar sunar. İşte LangGraph’in gerçek dünyadaki bazı faydaları.

Basitleştirilmiş geliştirme

LangGraph, durum yönetimi ve aracı koordinasyonuyla ilgili karmaşıklıkları soyutlar. Bu da geliştiricilerin veri tutarlılığını ve doğru yürütme sırasını garanti eden altta yatan mekanizmaları dert etmeden iş akışlarını ve mantıklarını tanımlayabileceği anlamına gelir. Bu basitleştirme, geliştirme sürecini hızlandırır ve hata olasılığını azaltır. Gerçek bir oyun değiştirici!

Esneklik

LangGraph ile geliştiriciler kendi aracı mantıklarını ve iletişim protokollerini tanımlama esnekliğine sahiptir. Bu da belirli kullanım senaryolarına uyarlanmış, yüksek derecede özelleştirilmiş uygulamalara olanak tanır. İster çeşitli kullanıcı isteklerini karşılayabilen bir sohbet botuna, ister karmaşık görevleri yerine getiren çok aracılı bir sisteme ihtiyaç duyun, LangGraph tam da ihtiyacınız olanı inşa etmeniz için gerekli araçları sunar. Gücü size vermekle ilgilidir.

Ölçeklenebilirlik

LangGraph, büyük ölçekli çok aracılı uygulamaların yürütülmesini destekleyecek şekilde inşa edilmiştir. Sağlam mimarisi yüksek hacimli etkileşimleri ve karmaşık iş akışlarını kaldırabilir; böylece ihtiyaçlarınızla birlikte büyüyebilen ölçeklenebilir sistemlerin geliştirilmesini mümkün kılar. Bu da performans ve güvenilirliğin kritik olduğu kurumsal düzeydeki uygulamalar için uygundur.

Hata toleransı

Güvenilirlik, LangGraph’in tasarımında temel bir dikkattir. Kütüphane, hataları zarifçe ele almak için mekanizmalar içerir ve tek tek aracılar sorun yaşadığında bile uygulamanızın çalışmaya devam etmesini sağlar. Bu hata toleransı, karmaşık çok aracılı sistemlerin istikrarını ve sağlamlığını korumak için gereklidir. İçinizin rahat olması bir özellik uzağınızda.

LangGraph ile Başlarken

LangGraph’i nasıl kurabileceğimize ve temel kavramların neler olduğuna bakalım.

Kurulum

LangGraph’i kurmak için pip kullanabilirsiniz:

pip install -U langgraph

Temel Kavramlar

Düğümler: Düğümler, LangGraph’inizdeki iş birimlerini temsil eder. Genellikle belirli bir görevi yerine getiren Python fonksiyonlarıdır; örneğin:

  • Bir LLM ile etkileşim kurma
  • Bir aracı veya API çağırma
  • Bazı veri işlemleri yapma
  • Kullanıcı girdisi alma
  • İş mantığı yürütme

LangGraph’te düğümleri graph.add_node(name, value) söz dizimiyle ekleyebilirsiniz.

Kenarlar: Kenarlar, düğümler arasındaki iletişim kanallarıdır. Bilgi akışını ve yürütme sırasını tanımlarlar. Kenarları graph.add_edge(node1, node2) söz dizimiyle ekleyebilirsiniz.

Durum: Durum, grafikteki düğümler tarafından zaman içinde güncellenen merkezi bir nesnedir. Uygulamanızın dahili durumunu yönetir ve uygulamanın gereksinimlerine bağlı olarak üzerine yazılabilir veya genişletilebilir. Bu durum; şu gibi öğeleri tutabilir:

  • Sohbet geçmişi: Aracı ile kullanıcı arasındaki mesajların listesi.
  • Bağlamsal veriler: Mevcut görev veya etkileşimle ilgili bilgiler.
  • Dahili değişkenler: Aracının ilerlemesini ve davranışını izlemek için bayraklar, sayaçlar veya diğer değişkenler.

Basit Bir LangGraph Uygulaması Oluşturma

İşte LangGraph kullanarak temel bir sohbet botu uygulamasının adım adım oluşturulması.

Adım 1: StateGraph’i tanımlayın

StateGraph nesnesini sohbet botunu bir durum makinesi olarak yapılandırmak için tanımlayın. State, tek bir messages anahtarına sahip bir sınıf nesnesi olarak tanımlanır; türü List olup yeni mesajları üzerine yazmak yerine eklemek için add_messages() fonksiyonunu kullanır.

from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph
from langgraph.graph.message import add_messages
class State(TypedDict):
    # messages have the type "list".
    # The add_messages function appends messages to the list, rather than overwriting them
    messages: Annotated[list, add_messages]
graph_builder = StateGraph(State)

Adım 2: Bir LLM başlatın ve Sohbet Botu düğümü olarak ekleyin

Burada AzureChatOpenAI modelini başlatıyoruz ve durum mesajlarını girdi olarak alıp bir mesaj yanıtı üreten (ardından duruma eklenen) basit bir sohbet botu fonksiyonu oluşturuyoruz.

Bu sohbet botu fonksiyonu, grafiğe “chatbot” adlı bir düğüm olarak eklenir.

from langchain_openai import AzureChatOpenAI
llm = AzureChatOpenAI(
    openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"],
    azure_deployment=os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"],
)
def chatbot(state: State):
    return {"messages": [llm.invoke(state["messages"])]}
‘’’The first argument is the unique node name
# The second argument is the function or object that will be called whenever the node is used.’’’
graph_builder.add_node("chatbot", chatbot)

Adım 3: Kenarları ayarlayın

Basit bir sohbet botu oluşturduğumuz için, sürecin nerede başlayıp biteceğini belirtmek üzere chatbot düğümünü grafiğin hem giriş hem de bitiş noktası olarak ayarlıyoruz.

# Set entry and finish points
graph_builder.set_entry_point("chatbot")
graph_builder.set_finish_point("chatbot")

Adım 4: Grafiği Derleyin ve Görselleştirin

Grafiği derleyerek bir CompiledGraph nesnesi oluşturun ve isteğe bağlı olarak aşağıdaki kodla grafik yapısını görselleştirebilirsiniz:

graph = graph_builder.compile()
from IPython.display import Image, display
try:
    display(Image(graph.get_graph().draw_mermaid_png()))
except Exception:
    pass

Adım 5: Sohbet botunu çalıştırın

Son olarak, kullanıcıdan girdi istemek, bunu grafik üzerinden işlemek ve asistanın yanıtını yazdırmak için sürekli çalışan bir döngü uygularız. Döngü, kullanıcı "quit", "exit" veya "q" yazdığında sonlanır.

# Run the chatbot
while True:
    user_input = input("User: ")
    if user_input.lower() in ["quit", "exit", "q"]:
        print("Goodbye!")
        break
    for event in graph.stream({"messages": [("user", user_input)]}):
        for value in event.values():
            print("Assistant:", value["messages"][-1].content)

İleri Düzey LangGraph Özellikleri

Artık temelleri ele aldığığımıza göre, bazı ileri düzey özelliklere bakalım.

Özel düğüm türleri

LangGraph, karmaşık aracı mantığını uygulamak için özel düğüm türleri oluşturmanıza olanak tanır. Bu da uygulamanızın davranışı üzerinde esneklik ve kontrol sağlar.

from typing import Annotated
from langchain_anthropic import ChatAnthropic
from langgraph.graph import StateGraph
from langgraph.graph.message import add_messages
class MyCustomNode:
    def __init__(self, llm):
        self.llm = llm
    def __call__(self, state):
        # Implement your custom logic here
        # Access the state and perform actions
        messages = state["messages"]
        response = self.llm.invoke(messages)
        return {"messages": [response]}
graph_builder = StateGraph(State)
llm = ChatAnthropic(model="claude-3-haiku-20240307")
custom_node = MyCustomNode(llm)
graph_builder.add_node("custom_node", custom_node)

Burada, özel mantığı kapsülleyen ve LLM ile etkileşen bir MyCustomNode sınıfı tanımlıyoruz. Bu, karmaşık düğüm davranışlarını daha yapılandırılmış ve sürdürülebilir bir şekilde uygulamanın yolunu sunar.

Kenar türleri

LangGraph, düğümler arasındaki çeşitli iletişim örüntülerini ele almak için farklı kenar türlerini destekler. Faydalı türlerden biri, bir düğümün çıktısına göre karar verilmesine olanak tanıyan koşullu kenardır.

Koşullu bir kenar oluşturmak için üç bileşene ihtiyacınız vardır:

  1. Yukarı akış düğümü: Düğümün çıktısı bir sonraki adımı belirler.
  2. Bir fonksiyon: Bu fonksiyon yukarı akış düğümünün çıktısını değerlendirir ve yürütülecek bir sonraki düğümü belirleyerek kararı temsil eden bir dize döndürür.
  3. Bir eşleme: Bu eşleme, fonksiyonun olası sonuçlarını yürütülecek ilgili düğümlere bağlar.

İşte sözde kodla bir örnek:

graph.add_conditional_edge(
    "model",
    should_continue,
    {
        "end": END,
        "continue": "tools"
    }
)

Burada, “model” düğümü çağrıldıktan sonra, kullanıcının kararına bağlı olarak ya grafikten çıkabilir (“end”) ve kullanıcıya dönebiliriz ya da devam edip (“continue”) bir aracı çağırabiliriz!

Durum yönetimi

LangGraph, SQLite, PostgreSQL ve MongoDB gibi harici veritabanlarını veya Amazon S3, Google Cloud Storage ve Azure Blob Storage gibi bulut depolama çözümlerini kullanarak aracınızın durumunu saklama ve alma olanağı sunan güçlü durum yönetimi teknikleri sağlar; bu da güvenilirlik ve ölçeklenebilirlik kazandırır.

İşte durum yönetimi için bir SQLite veritabanı kullanmaya örnek:

from langgraph.checkpoint.sqlite import SqliteSaver
# Connect to the SQLite database
memory = SqliteSaver.from_conn_string(":memory:")
# Compile the graph with the checkpointer
graph = graph_builder.compile(checkpointer=memory)

Hata yönetimi

LangGraph ayrıca hata yönetimi için mekanizmalar sunar:

  • İstisnalar: Düğüm fonksiyonları yürütme sırasında hataları işaretlemek için istisna fırlatabilir. Grafiğinizin çökmesini önlemek için bu istisnaları yakalayıp ele alabilirsiniz.
  • Yeniden deneme mekanizmaları: Ağ sorunları veya API zaman aşımı gibi geçici hataları ele almak için düğümleriniz içinde yeniden deneme mantığı uygulayabilirsiniz.
  • Günlük kaydı: Hataları kaydetmek ve grafiğinizin yürütülmesini izlemek için günlüklemeyi kullanın.

LangGraph’in Gerçek Dünya Uygulamaları

LangGraph, çok çeşitli uygulamalar geliştirmek için kullanılabilir.

Sohbet botları

LangGraph, geniş bir yelpazede kullanıcı isteklerini karşılayabilen gelişmiş sohbet botları geliştirmek için idealdir. Birden fazla LLM aracısından yararlanarak bu botlar doğal dil sorgularını işleyebilir, doğru yanıtlar sağlayabilir ve farklı sohbet konuları arasında sorunsuzca geçiş yapabilir. Durumu yönetme ve etkileşimleri koordine etme becerisi, sohbet botunun bağlamı korumasını ve tutarlı bir kullanıcı deneyimi sunmasını sağlar.

Otonom aracılar

Otonom karar alma gerektiren uygulamalar için, LangGraph kullanıcı girdilerine ve önceden tanımlı mantığa dayalı olarak görevleri bağımsız şekilde yerine getirebilen aracılar oluşturmayı mümkün kılar.

Bu aracılar karmaşık iş akışlarını yürütebilir, diğer sistemlerle etkileşim kurabilir ve yeni bilgilere dinamik olarak uyum sağlayabilir. LangGraph’in yapılandırılmış çerçevesi, her aracının verimli ve etkili çalışmasını sağlar; bu da otomatik müşteri desteği, veri işleme ve sistem izleme gibi görevler için uygundur.

Çok Aracılı sistemler

LangGraph, birden fazla aracının ortak bir hedefe ulaşmak için iş birliği yaptığı uygulamalar inşa etmede mükemmeldir. Örneğin, bir tedarik zinciri yönetim sisteminde farklı aracılar stok yönetimini, sipariş işlemeyi ve teslimatların koordinasyonunu üstlenebilir. LangGraph’in koordinasyon yetenekleri, her aracının bilgiyi etkili şekilde paylaşarak ve senkronize biçimde karar alarak iletişim kurmasını sağlar. Bu da daha verimli operasyonlara ve genel sistem performansının iyileşmesine yol açar.

İş akışı otomasyon araçları

LangGraph ile iş süreçlerini ve iş akışlarını otomatikleştirmek kolaylaşır. Akıllı aracılar; belge işleme, onay iş akışları ve veri analizi gibi görevleri üstlenecek şekilde tasarlanabilir. Net iş akışları tanımlanarak ve LangGraph’in durum yönetiminden yararlanılarak, bu araçlar insan müdahalesi olmadan karmaşık eylem dizilerini yürüterek hataları azaltır ve verimliliği artırır.

Öneri sistemleri

Kişiselleştirilmiş öneri sistemleri, LangGraph’in yeteneklerinden büyük ölçüde faydalanabilir. Kullanıcı davranışını, tercihlerini ve bağlamsal verileri analiz etmek için birden fazla aracı kullanarak bu sistemler ürünler, içerikler veya hizmetler için kişiye özel öneriler sunabilir. LangGraph’in esnekliği, farklı veri kaynakları ve algoritmaların entegre edilmesine olanak tanıyarak önerilerin doğruluğunu ve ilgiliğini artırır.

Kişiselleştirilmiş öğrenme ortamları

Eğitim platformlarında, LangGraph bireysel öğrenme stillerine ve ihtiyaçlarına hitap eden uyarlanabilir öğrenme ortamları oluşturmak için kullanılabilir. Birden fazla aracı, öğrencinin ilerlemesini değerlendirebilir, özelleştirilmiş alıştırmalar sunabilir ve gerçek zamanlı geri bildirim sağlayabilir. LangGraph’in durum bilgili yapısı, sistemin her öğrenciye ait performans ve tercih bilgilerini tutmasını sağlayarak daha kişiselleştirilmiş ve etkili bir eğitim deneyimi sunar.

Sonuç

LangGraph, durumu yönetmek ve aracı etkileşimlerini koordine etmek için yapılandırılmış bir çerçeve sağlayarak karmaşık LLM uygulamalarının geliştirilmesini önemli ölçüde basitleştirir.

LangGraph için olası gelişmeler arasında diğer LangChain bileşenleriyle entegrasyon, yeni LLM modellerinin desteklenmesi ve akademiden daha gelişmiş aracı çalışma zamanlarının tanıtılması yer alır.

LangChain ekosistemi içinde uygulama geliştirme hakkında daha fazla bilgi edinmek isterseniz, LangChain ile LLM uygulamaları geliştirme kursunu öneririm.


Ryan Ong's photo
Author
Ryan Ong
LinkedIn
Twitter

Ryan, LLM'ler kullanarak yapay zeka uygulamaları geliştirme konusunda uzmanlaşmış kıdemli bir veri bilimcisidir. Imperial College London'da Doğal Dil İşleme ve Bilgi Grafiklerinde doktora adayıdır ve aynı kurumda Bilgisayar Bilimleri alanında yüksek lisansını tamamlamıştır. Veri bilimi dışında, haftalık Substack bülteni The Limitless Playbook'u yayımlar; burada dünyanın önde gelen düşünürlerinden uygulanabilir tek bir fikri paylaşır ve zaman zaman temel yapay zeka kavramları hakkında yazar.

Konular

Bu kurslarla yapay zekayı öğrenin!

Kurs

LangChain ile LLM Uygulamaları Geliştirme

3 sa
45.9K
LangChain'de LLM'leri, istemleri, zincirleri ve aracıları kullanarak yapay zeka destekli uygulamaları nasıl oluşturacağınızı keşfedin.
Ayrıntıları GörRight Arrow
Kursa Başla
Devamını GörRight Arrow