LangChain Expression Language (LCEL), kısaca deklaratif bir yapay zeka iş akışı orkestrasyon yöntemidir ve birden çok işlem adımının kolayca bir zincirde birleştirildiği bir yöntemdir. Bu nedenle, LCEL ile tanımlanan iş akışları LangChain'de "Zincirler" olarak adlandırılır. En basit "prompt + LLM" zincirinden (Language Model) yüzlerce adımdan oluşan en karmaşık zincirlere kadar çeşitli zincirler bulunmaktadır.
LangChain Expression Language'ın özellikleri şunlardır:
-
Akış İşleme Desteği: LCEL kullanarak zincirler oluştururken, LLM modeli tarafından döndürülen içeriği hızlı bir şekilde elde etmek için, LCEL ayrıca akış işleme desteği sağlar, karakter karakter içerik almayı sağlayarak, adeta ChatGPT gibi etkiler elde edilir.
-
Asenkron Desteği: LCEL kullanılarak oluşturulan herhangi bir zincir, hem senkron hem de asenkron API'lerle kullanılabilir. Asenkron API'leri kullanmanın amacı performansı artırmak ve daha yüksek eşzamanlı istekleri desteklemektir.
-
Paralel İşlem Desteği: LCEL zincirinizin paralel olarak yürütülebilecek adımlar içermesi durumunda (örneğin, birden çok kaynaktan belge alıyorsanız), bunları hem senkron hem de asenkron arabirimler için otomatik olarak yürütürüz ve minimal gecikme sağlarız.
-
Tekrar Deneme ve Geri Alma: LCEL zincirinin herhangi bir bölümü için tekrar deneme ve geri alma yapılandırılabilir.
-
Ara Sonuçlara Erişim Desteği: Karmaşık iş akışı zincirleri için, hata ayıklama sırasında farklı görev adımları arasında ara sonuçları inceleyebilme istenir.
-
Giriş ve Çıkış Modları: Zincir yapısına dayalı olarak giriş ve çıkış modları çıkarsanır, her LCEL zinciri için Pydantic ve JSONSchema şemaları sağlanır. Bu, giriş ve çıkış doğrulaması için kullanılabilir ve LangServe'ın bir parçasıdır.
-
LangSmith İzleme Hizmeti ile Entegrasyon Desteği: Zincirler karmaşık hale geldikçe, her adımda neler olduğunu doğru bir şekilde anlamak giderek daha önemli hale gelir. LCEL ile tüm adımlar otomatik olarak LangSmith'e kaydedilir ve maksimum gözlemlenebilirlik ve hata ayıklama sağlanır.
-
LangServe Dağıtım Desteği: LCEL kullanılarak oluşturulan herhangi bir zincir, LangServe kullanılarak kolayca dağıtılabilir.