Giriş

LangChain, büyük modellere dayalı yapay zeka uygulamalarını geliştirmek için modüller ve araçlar sağlayan açık kaynaklı bir Python yapay zeka uygulama geliştirme çerçevesidir. LangChain aracılığıyla geliştiriciler, metin oluşturma, soru cevaplama, çeviri ve diyalog gibi görevleri tamamlamak için Büyük Dil Modelleri (LLM'ler) ile kolayca entegre olabilirler. LangChain, AI uygulama geliştirme engelini azaltır ve herkesin LLM'ye dayalı kendi yaratıcı uygulamalarını oluşturmasına izin verir.

LangChain'in Özellikleri:

  • LLM ve Prompt: LangChain, tüm LLM büyük model API'larını soyutlar, büyük modellere tek bir erişim API'sini birleştirir ve bir prompt şablon yönetim mekanizması sağlar.
  • Chain: LangChain, bazı yaygın senaryoları hazır modüller halinde kapsar, örneğin bağlamsal soru cevaplama sistemleri, SQL sorgularının doğal dilde oluşturulması vb. Adına "Chain" denir çünkü bu görevleri uygulama süreci adım adım bir iş akışına benzer şekilde yürütülür.
  • LCEL: LangChain Expression Language (LCEL), LangChain'in yeni sürümünün temel özelliğidir ve iş akışı orkestrasyon sorunlarını çözmek için kullanılır. LCEL ifadeleri aracılığıyla AI görev işleme akışını esnek bir şekilde özelleştirebiliriz, yani "Chain"i esnek bir şekilde özelleştirebiliriz.
  • Arama Artırılmış Oluşturma (RAG): Büyük Dil Modelleri (LLM'ler) yeni bilgileri anlamaz ve yeni sorulara yanıt veremez, bu nedenle LLM'ye yeni bilgiler ekleyerek üretilen içeriğin kalitesini artırabiliriz. Bu mod RAG modu (Retrieval Artırılmış Üretim) olarak adlandırılır.
  • Ajanlar: Büyük Dil Modelleri (LLM'ler) tabanlı tasarım deseni, LLM'nin doğal dil anlama ve akıl yürütme yeteneklerini (LLM beyni olarak) kullanarak kullanıcı gereksinimlerine dayalı görevleri otomatik olarak tamamlamak için harici sistemleri ve cihazları bir araya getiren ajanlar. Örneğin, bir kullanıcı "yarın izin al" dediğinde, Büyük Dil Modeli (LLM) otomatik olarak izin sistemini çağırır ve bir izin başvurusu başlatır.
  • Model Bellek: Büyük Dil Modeline (LLM) önceki sohbet içeriğini hatırlama yeteneği olan model belleğe izin verir.

LangChain Çerçeve Bileşenleri

LangChain Çerçeve Bileşenleri

LangChain çerçevesi, LangChain kütüphaneleri, resmi AI görev şablonları ve LangChain tarafından tanımlanmış zincirleri REST API'leri olarak yayınlayabilen FastAPI'ye dayalı LangServe ve LangChain hata ayıklama ve görev izleme işlemlerini destekleyen bulut hizmeti olan LangSmith gibi çeşitli bileşenlerden oluşur.

LangChain Kütüphanesi (Kütüphaneler)

LangChain kütüphanesi kendisi birkaç farklı paketten oluşur.

  • langchain-core: Temel soyutlamalar ve LangChain ifade dili.
  • langchain-community: Genellikle LangChain ile entegre edilmiş üçüncü taraf bağlantıları içerir.
  • langchain: Başlıca zincirleri, ajanları ve geri getirme stratejilerini içerir.

Langchain Görev İşleme Akışı

Yukarıdaki görselde olduğu gibi, LangChain, prompt'ları işlemek için bir prompt şablon yönetim araç seti sağlar. Ardından prompt'ları büyük modele ileterek ve nihayetinde büyük model tarafından döndürülen sonuçları işleyerek büyük modelin kapsüllemesini sağlar.

LangChain'ın büyük modeli (LLM) kapsüllemesi genellikle LLM ve Sohbet Modeli olmak üzere iki tür içerir.

  • LLM - Bir metin girdisi alır ve bir metin sonucu döndürür.
  • Sohbet Modeli - Diyalog senaryoları için özel olarak tasarlanmış diyalog modelleridir. Bu modeller, bir dizi diyalog mesajı alabilir ve konuşmalı bir biçimde diyalog mesajları döndürebilir.

Temel Kavramlar

1. LLM'ler

LangChain tarafından kapsüllenmiş temel modeller, bir metin girdisi alır ve bir metin sonucu döndürür.

2. Sohbet Modelleri

Sohbet modelleri (veya diyalog modelleri), LLM'lerin aksine özellikle diyalog senaryoları için tasarlanmıştır. Bu modeller, bir dizi diyalog mesajı alabilir ve konuşmalı bir biçimde diyalog mesajları döndürebilir.

3. Mesajlar

Sohbet modellerindeki mesaj içeriğini ifade eder. Mesaj tipleri arasında İnsanMesajı, AIMesajı, SistemMesajı, FonksiyonMesajı ve AraçMesajı bulunur.

4. Prompt'lar

LangChain, prompt yönetimi için özel olarak kullanılan bir dizi aracı kapsar ve prompt içeriğini kolayca biçimlendirmemizi sağlar.

5. Çıkış Ayrıştırıcılar

Yukarıdaki görselde belirtildiği gibi, LangChain, büyük modelden (LLM) döndürülen metin içeriğini özel çıkış ayrıştırıcıları kullanarak biçimlendirebilir, örneğin JSON ayrıştırma veya LLM çıkışını bir Python nesnesine dönüştürme gibi.

5. Veri Kurtarıcılar

Büyük model (LLM) içine özel verilerin kolayca aktarılmasını ve model yanıtlarının kalitesini arttırmayı amaçlayan LangChain, belge verilerinin yükleme, bölme, depolama ve geri alma işlemlerini kolaylaştıran bir geri alma çerçevesi (Veri Kurtarıcıları) kapsüller.

6. Vektör Depoları

Özel veriler için anlamsal benzerlik aramalarını desteklemek için, LangChain çeşitli vektör veritabanlarını destekler.

7. Ajanlar

Genellikle büyük model (LLM) ile tasarlanmış uygulamalar için, ajanlar kullanıcı girişine dayalı olarak otomatik olarak dış sistemleri ve donanım cihazlarını çağırarak kullanıcı görevlerini tamamlar. Bu, büyük model (LLM) merkezli bir tasarım desenidir.

Uygulama Senaryoları

  • Sohbet Botları: Akıllı sohbet asistanları, müşteri hizmetleri sohbet botları ve konuşma botları oluşturma.
  • Bilgi Tabanı Soru-Cevap: Bilgi grafikleri ile entegre olarak açık alan soru-cevap hizmetleri sağlama.
  • Akıllı Yazma: Makale yazma, yaratıcı yazma ve metin özetleme gibi.